attio-mcp

philglazer/attio-mcp

3.2

If you are the rightful owner of attio-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.

The Attio MCP Server is a production-quality Model Context Protocol server designed for Attio CRM, enabling AI assistants like Claude to interact with Attio workspaces.

Tools
5
Resources
0
Prompts
0

Attio MCP Server

A production-quality Model Context Protocol (MCP) server for Attio CRM. Enables Claude and other AI assistants to interact with your Attio workspace - search companies and people, access meeting transcripts, read notes, and more.

Features

  • 🏢 Company & People Management: Search, fetch, and explore company/people records
  • 📞 Meeting & Transcripts: Access meeting data and call transcripts
  • 📝 Notes & Comments: Read and create notes on any record
  • 📋 Lists: Query list entries and manage workflows
  • 🔍 Smart Search: Fuzzy search across companies, people, and deals
  • Performance: Built-in rate limiting, caching, and retry logic
  • 🔐 Multi-workspace: Support for multiple Attio workspaces
  • 🎯 Best Practices: Follows MCP specification and SDK patterns

Installation

Quick Start (npx)

The easiest way to use this MCP server with Claude Code:

claude mcp add --transport stdio attio -- npx -y attio-mcp

Then set your Attio API token in the environment config.

Local Installation

npm install -g attio-mcp

Or clone and build from source:

git clone https://github.com/philglazer/attio-mcp.git
cd attio-mcp
npm install
npm run build

Configuration

Get Your Attio API Token

  1. Go to Attio Settings > API
  2. Create a new API token with the required scopes:
    • record_permission:read-write
    • object_configuration:read
    • meeting:read
    • call_recording:read
    • note:read-write

Environment Variables

Create a .env file or set environment variables:

# Required
ATTIO_API_TOKEN=your_token_here

# Optional
MCP_MODE=stdio          # or "http" for remote server
PORT=3000              # For HTTP mode
LOG_LEVEL=info         # debug, info, warn, error
ATTIO_MAX_CONCURRENCY=4

Usage

With Claude Code

Add to your Claude Code MCP configuration:

stdio mode (recommended for local use):

{
  "mcpServers": {
    "attio": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "attio-mcp"],
      "env": {
        "ATTIO_API_TOKEN": "your_token_here"
      }
    }
  }
}

HTTP mode (recommended for team/remote use):

{
  "mcpServers": {
    "attio": {
      "type": "http",
      "url": "http://localhost:3000/mcp"
    }
  }
}

Standalone

stdio mode:

npm run dev:stdio

HTTP mode:

npm run dev:http

Available Tools

Companies

  • search_companies - Search companies by name or domain
  • get_company - Get detailed company information
  • get_company_context - Get company with related people, notes, and meetings (returns resource links)

People

  • search_people - Search people by name, email, or company
  • get_person - Get detailed person information

Meetings & Transcripts

  • list_meetings - List meetings by company, person, or date range
  • get_meeting - Get meeting details
  • list_meeting_recordings - List call recordings for a meeting
  • get_meeting_transcript - Fetch call transcript (supports pagination)

Notes

  • list_notes - List notes by parent record (company, person, meeting)
  • create_note - Create a new note (requires confirmation)

Lists

  • get_list - Get list metadata
  • list_list_entries - Query entries in a list

Deals

  • search_deals - Search deals by company, stage, or query

Resources

The server exposes Attio data as MCP resources with URI scheme:

  • attio://companies/{company_id}
  • attio://companies/{company_id}/people
  • attio://companies/{company_id}/notes
  • attio://people/{person_id}
  • attio://meetings/{meeting_id}
  • attio://meetings/{meeting_id}/transcript/{call_recording_id}
  • attio://deals/{deal_id}

Resources provide fetchable context for large datasets (like transcripts) without overwhelming the tool response.

Example Conversations

"Show me all companies in the agriculture sector"

Claude will use: search_companies(q="agriculture")

"Get the latest call transcript for Teays River"

Claude will:
1. search_companies(domain="teaysinvestments.com")
2. list_meetings(company_id="...")
3. get_meeting_transcript(meeting_id="...", call_recording_id="...")

"Summarize recent interactions with ACME Corp"

Claude will:
1. search_companies(domain="acme.com")
2. get_company_context(company_id="...") → returns resource links
3. Fetch resources for meetings, notes, transcripts as needed

Development

Project Structure

attio-mcp/
├── src/
│   ├── server.ts              # Main entry point, transport setup
│   ├── attio/
│   │   ├── client.ts          # Attio API client with rate limiting
│   │   └── types.ts           # TypeScript types for Attio data
│   ├── tools/
│   │   ├── companies.ts       # Company-related tools
│   │   ├── people.ts          # People-related tools
│   │   ├── meetings.ts        # Meeting tools
│   │   ├── transcripts.ts     # Transcript tools
│   │   ├── notes.ts           # Note tools
│   │   ├── lists.ts           # List tools
│   │   └── deals.ts           # Deal tools
│   ├── resources/
│   │   └── registry.ts        # Resource templates and materializers
│   └── logging/
│       └── logger.ts          # Pino logger (stderr only)
├── package.json
├── tsconfig.json
└── README.md

Testing

Use the MCP Inspector to test tools interactively:

npx @modelcontextprotocol/inspector npx -y attio-mcp

Build

npm run build

Best Practices

  • Large Results: Tools return resource links for large datasets (transcripts, long lists)
  • Progress: Long-running operations emit progress notifications
  • Caching: Built-in LRU cache with 60s TTL for read operations
  • Rate Limits: Respects Attio's 100 rps (reads) and 25 rps (writes) limits
  • Error Handling: Automatic retry with exponential backoff for 429/5xx
  • Security: Logs to stderr only, never exposes tokens

Contributing

Contributions welcome! Please open an issue or PR.

License

MIT

Links