{
  "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": "meeting-prep",
      "name": "Meeting Prep",
      "description": "Produce a pre-meeting brief by synthesizing email, Slack, calendar, prior meeting transcripts, and saved notes into one cross-platform context pack.",
      "tags": ["meeting-prep", "briefing", "calendar", "meetings", "cross-platform"],
      "examples": [
        "Prep me for my 2pm customer call with Acme.",
        "What changed since my last 1:1 with Sarah?",
        "Brief me on the board meeting tomorrow."
      ],
      "inputModes": ["text/plain"],
      "outputModes": ["text/plain", "application/json"],
      "securityRequirements": [
        {
          "attroveOAuthBearer": []
        },
        {
          "attroveUserApiKey": [],
          "attroveUserId": []
        }
      ]
    },
    {
      "id": "thread-discover-and-analyze",
      "name": "Thread Discover & Analyze",
      "description": "Find the Slack, email, and meeting threads relevant to a topic and return a narrative analysis grounded in the messages — covering decisions, action items, blockers, and participants — with cross-platform source attribution.",
      "tags": ["threads", "slack", "email", "analysis", "action-items", "decisions", "blockers"],
      "examples": [
        "Threads about PR #197.",
        "Everything discussed about the Acme renewal last quarter.",
        "The decision trail behind the launch delay."
      ],
      "inputModes": ["text/plain"],
      "outputModes": ["text/plain", "application/json"],
      "securityRequirements": [
        {
          "attroveOAuthBearer": []
        },
        {
          "attroveUserApiKey": [],
          "attroveUserId": []
        }
      ]
    },
    {
      "id": "entity-context",
      "name": "Entity Context",
      "description": "Return what's known about a person, company, or project across email, Slack, calendar, and meetings — a single answer drawn from sources already unified by Attrove's cross-platform people graph at ingestion time.",
      "tags": ["entity-resolution", "people-graph", "cross-platform", "contact", "relationship"],
      "examples": [
        "What has Sarah Chen been working on this quarter?",
        "Everything we know about Acme Corp.",
        "Context on the Project Atlas initiative."
      ],
      "inputModes": ["text/plain"],
      "outputModes": ["text/plain", "application/json"],
      "securityRequirements": [
        {
          "attroveOAuthBearer": []
        },
        {
          "attroveUserApiKey": [],
          "attroveUserId": []
        }
      ]
    },
    {
      "id": "extract-structured",
      "name": "Extract Structured Intelligence",
      "description": "Run an extraction-shaped query (action items, decisions, blockers, commitments) over a scoped window of communication. Returns an enumerated, citation-grounded text answer plus the source ids consulted across Slack, email, calendar, meetings, and notes.",
      "tags": ["extraction", "action-items", "decisions", "blockers", "structured", "cross-platform"],
      "examples": [
        "Extract action items and decisions from the engineering channel in the last 7 days.",
        "What blockers came up in Tuesday's planning meeting?",
        "Commitments I made to customers this month."
      ],
      "inputModes": ["text/plain"],
      "outputModes": ["text/plain", "application/json"],
      "securityRequirements": [
        {
          "attroveOAuthBearer": []
        },
        {
          "attroveUserApiKey": [],
          "attroveUserId": []
        }
      ]
    },
    {
      "id": "query-communication-context",
      "name": "Query Communication Context",
      "description": "Catch-all natural-language Q&A over a user's email, Slack, calendar, meetings, and notes. Use only when no specialized skill fits.",
      "tags": ["email", "chat", "calendar", "meetings", "notes", "rag", "fallback"],
      "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": []
        }
      ]
    }
  ]
}
