{
  "name": "Attrove",
  "description": "Communication intelligence for AI products. Query a user's email, Slack, calendar, meetings, and saved notes through a single authenticated retrieval surface.",
  "version": "1.0.0",
  "documentationUrl": "https://attrove.com/llms-full.txt",
  "iconUrl": "https://attrove.com/favicon.png",
  "provider": {
    "organization": "Attrove",
    "url": "https://attrove.com"
  },
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "extendedAgentCard": false
  },
  "defaultInputModes": ["text/plain"],
  "defaultOutputModes": ["text/plain", "application/json"],
  "securitySchemes": {
    "attroveOAuthBearer": {
      "httpAuthSecurityScheme": {
        "description": "OAuth Bearer token for end-users authenticating as themselves. OAuth resource discovery is available at https://api.attrove.com/.well-known/oauth-protected-resource.",
        "scheme": "Bearer",
        "bearerFormat": "JWT"
      }
    },
    "attroveUserApiKey": {
      "apiKeySecurityScheme": {
        "description": "Per-user sk_ bearer token for server-scoped access. Send the value as Authorization: Bearer sk_....",
        "location": "header",
        "name": "Authorization"
      }
    },
    "attroveUserId": {
      "apiKeySecurityScheme": {
        "description": "Required alongside an sk_ token to scope server-driven requests to an Attrove user.",
        "location": "header",
        "name": "X-Attrove-User-Id"
      }
    }
  },
  "securityRequirements": [
    {
      "attroveOAuthBearer": []
    },
    {
      "attroveUserApiKey": [],
      "attroveUserId": []
    }
  ],
  "supportedInterfaces": [
    {
      "url": "https://api.attrove.com/a2a/v1",
      "protocolBinding": "HTTP+JSON",
      "protocolVersion": "1.0"
    }
  ],
  "skills": [
    {
      "id": "query-communication-context",
      "name": "Query Communication Context",
      "description": "Answer natural-language questions over a user's email, chat, calendar, meetings, and indexed notes with source grounding from Attrove.",
      "tags": ["email", "chat", "calendar", "meetings", "notes", "rag"],
      "examples": [
        "What did Sarah say about the Q4 budget?",
        "Summarize the engineering meeting from Tuesday.",
        "What calendar events do I have this afternoon?"
      ],
      "inputModes": ["text/plain"],
      "outputModes": ["text/plain", "application/json"],
      "securityRequirements": [
        {
          "attroveOAuthBearer": []
        },
        {
          "attroveUserApiKey": [],
          "attroveUserId": []
        }
      ]
    },
    {
      "id": "meeting-prep",
      "name": "Prepare Meeting Context",
      "description": "Synthesize recent messages, meetings, and calendar events to prepare a concise meeting brief for an end user.",
      "tags": ["meeting-prep", "briefing", "calendar", "timeline"],
      "examples": [
        "Prep me for my 2pm customer call.",
        "What changed since my last 1:1 with Sarah?"
      ],
      "inputModes": ["text/plain"],
      "outputModes": ["text/plain", "application/json"],
      "securityRequirements": [
        {
          "attroveOAuthBearer": []
        },
        {
          "attroveUserApiKey": [],
          "attroveUserId": []
        }
      ]
    },
    {
      "id": "timeline-synthesis",
      "name": "Synthesize Communication Timelines",
      "description": "Combine cross-source conversations into a single narrative timeline so downstream agents can reason over what happened and when.",
      "tags": ["timeline", "search", "synthesis", "context"],
      "examples": [
        "Show me the timeline for the launch discussion.",
        "Trace every conversation about the pricing change."
      ],
      "inputModes": ["text/plain"],
      "outputModes": ["text/plain", "application/json"],
      "securityRequirements": [
        {
          "attroveOAuthBearer": []
        },
        {
          "attroveUserApiKey": [],
          "attroveUserId": []
        }
      ]
    }
  ]
}
