Give Claude, Cursor, ChatGPT, and other AI tools direct access to your users' Gmail, Slack, and Calendar through the Model Context Protocol. Zero custom code required.
Choose your AI client to get started. HTTP transport handles authentication automatically via OAuth 2.1; stdio transport uses environment variables.
{
"mcpServers": {
"attrove": {
"type": "streamable-http",
"url": "https://api.attrove.com/mcp"
}
}
}
{
"mcpServers": {
"attrove": {
"type": "streamable-http",
"url": "https://api.attrove.com/mcp"
}
}
}
{
"mcpServers": {
"attrove": {
"command": "npx",
"args": ["-y", "@attrove/mcp@latest"],
"env": {
"ATTROVE_SECRET_KEY": "sk_...",
"ATTROVE_USER_ID": "your-user-id"
}
}
}
}
claude mcp add attrove -- npx -y @attrove/mcp@latest
Then set environment variables in your shell:
export ATTROVE_SECRET_KEY="sk_..."
export ATTROVE_USER_ID="your-user-id"
Required for stdio transport (Cursor, Claude Code). HTTP transport handles authentication via OAuth 2.1 automatically.
| Variable | Description | Notes |
|---|---|---|
ATTROVE_SECRET_KEY |
Your Attrove API key |
Required
Secret
Starts with sk_
|
ATTROVE_USER_ID |
User ID to scope API calls |
Required
UUID from user provisioning |
Five tools are available to AI assistants. All tools are read-only and only access data the user has explicitly connected.
Ask a question and get an AI-generated answer from the user's connected accounts (Gmail, Slack, Calendar). Returns answers with optional source citations.
| Parameter | Type | Description |
|---|---|---|
query Required |
string | The question to ask about the user's context |
integration_ids Optional |
string[] | Filter to specific integration IDs (int_xxx) |
include_sources Optional |
boolean | Include source snippets in the response (default: false) |
Semantic search across the user's connected services. Returns matching messages grouped by conversation without AI summarization.
| Parameter | Type | Description |
|---|---|---|
query Required |
string | The search query (semantic, not keyword-based) |
after_date Optional |
string | Only include messages after this date (YYYY-MM-DD) |
before_date Optional |
string | Only include messages before this date (YYYY-MM-DD) |
sender_domains Optional |
string[] | Filter by sender email domains (e.g., ["acme.com"]) |
include_body_text Optional |
boolean | Include message body text preview, truncated to 200 chars (default: true) |
List calendar events from connected calendar accounts (e.g., Google Calendar). Returns event details including attendees, location, and meeting links.
| Parameter | Type | Description |
|---|---|---|
start_date Optional |
string | Start of date range (YYYY-MM-DD) |
end_date Optional |
string | End of date range (YYYY-MM-DD) |
limit Optional |
number | Max events to return (default: 25, max: 100) |
List meetings with AI-generated summaries and action items from connected meeting platforms (Google Meet, Zoom, Teams).
| Parameter | Type | Description |
|---|---|---|
start_date Optional |
string | Start of date range (YYYY-MM-DD) |
end_date Optional |
string | End of date range (YYYY-MM-DD) |
provider Optional |
string | Filter by provider: google_meet, zoom, or teams |
limit Optional |
number | Max meetings to return (default: 10, max: 50) |
List the user's connected integrations and their current status. Useful for checking what data sources are available before running queries.
| Parameter | Type | Description |
|---|---|---|
| No parameters required | ||
Returns integration ID, provider name (gmail, slack, google_calendar, etc.), and connection status (connected, disconnected, expired, error, pending).