Skip to main content
Glama
Attio Simple MCP Server
by mlemos

Attio Simple MCP Server

An MCP (Model Context Protocol) server that integrates Attio CRM with AI clients like Claude Code, Claude Desktop, ChatGPT, Windsurf, and Cursor.

This template was created by Manoel Lemos as a shortcut for people interested in deploying Attio MCP servers.

Features

  • 14 Tools for managing companies, people, and notes in Attio

  • Schema Discovery - Dynamically discover your workspace's objects and attributes

  • Type-Safe - Full TypeScript with auto-generated Attio API types

Related MCP server: Attio MCP Server

Available Tools

Category

Tools

Schema

get_workspace_schema

Companies

search_companies, get_company, create_company, update_company, manage_company_domains

People

search_people, get_person, create_person, update_person, manage_person_emails, manage_person_tags

Notes

create_note, get_note

Quick Start

1. Install Dependencies

npm install

2. Configure Environment

cp .env.example .env

Edit .env and add your Attio API key:

ATTIO_API_KEY="your_api_key_here"
ATTIO_WORKSPACE_SLUG="your-workspace-slug"  # Optional: for web URLs

Get your API key from Attio Settings > Developers > API Keys.

3. Build

npm run build

4. Configure Your AI Client

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):

{
  "mcpServers": {
    "attio": {
      "command": "node",
      "args": ["/absolute/path/to/attio-mcp/dist/index.js"],
      "env": {
        "ATTIO_API_KEY": "your_api_key_here",
        "ATTIO_WORKSPACE_SLUG": "your-workspace-slug"
      }
    }
  }
}

Claude Code

claude mcp add attio node /absolute/path/to/attio-mcp/dist/index.js

Adding Custom Objects

This template includes tools for standard Attio objects (companies, people). To add tools for your custom objects:

  1. Use get_workspace_schema to discover your workspace's objects and attributes

  2. Copy an existing tool (e.g., search-companies.ts) as a template

  3. Modify the API endpoint, fields, and types for your custom object

  4. Register the new tool in src/tools/index.ts

Development

npm run dev          # Watch mode
npm run build        # Build
npm test             # Run tests
npm run test:watch   # Watch tests

License

MIT

Available Tools

14 tools
create_companyA

Create a new company in Attio CRM. Only the company name is required. Optionally provide domains, description, and LinkedIn URL. Returns the created company record including the new record_id.

Inputs: name (required), domains, description, linkedin.

create_noteB

Create a new note attached to a record in Attio CRM. Notes can be attached to people, companies, or any other object type. Supports plaintext and markdown formatting.

Inputs: parent_object (required), parent_record_id (required), title (required), content (required), +1 more.

create_personA

Create a new person in Attio CRM. You must provide at least one name field (first_name, last_name, or full_name) or at least one email address. All fields are optional, but you need either a name or email to identify the person. Returns the created person record including the new record_id.

Inputs: first_name, last_name, full_name, email_addresses, +3 more.

get_companyA

Get complete details of a company by record_id. Returns all attributes. Set include_all=true to also fetch notes, tasks, comment threads, meetings, and list entries, or use individual flags (include_notes, include_tasks, etc.).

Inputs: record_id (required), include_notes, include_tasks, include_threads, +3 more.

get_noteA

Get a single note by ID from Attio CRM. Returns the full note details including title, content, parent record information, and creation metadata.

Inputs: note_id (required).

get_personA

Get complete details of a person by record_id. Returns all attributes. Set include_all=true to also fetch notes, tasks, comment threads, meetings, and list entries, or use individual flags (include_notes, include_tasks, etc.).

Inputs: record_id (required), include_notes, include_tasks, include_threads, +3 more.

get_workspace_schemaA

Get Attio workspace schema. Default returns summary with key fields and select options. Use scope="full" for all fields, or scope="object"/"list" for specific items with all fields.

Inputs: scope, object_slug, list_slug, force_reload.

manage_company_domainsC

Manage domains on a company. Supports four operations: "set" (replace all domains), "add" (append new domains), "remove" (delete specific domains), and "clear" (remove all domains).

Inputs: record_id (required), operation (required), domains.

manage_person_emailsC

Manage email addresses on a person. Supports four operations: "set" (replace all emails), "add" (append new emails), "remove" (delete specific emails), and "clear" (remove all emails).

Inputs: record_id (required), operation (required), email_addresses.

manage_person_tagsA

Manage tags on a person. Supports four operations: "set" (replace all tags), "add" (append new tags), "remove" (delete specific tags), and "clear" (remove all tags). Tags are auto-created if they don't exist in the workspace.

Inputs: record_id (required), operation (required), tags.

search_companiesA

Search for companies in Attio CRM. Supports filtering by text (name or domain) and date ranges. Supports sorting by various fields. All filters are optional. Returns company details including name, domains, description, LinkedIn URL, web_url, and created_at.

Inputs: query, created_after, created_before, sort_by, +2 more.

search_peopleB

Search for people in Attio CRM. Supports filtering by text (name or email), company, tags, and date ranges. Supports sorting by various fields. All filters are optional. Returns person details including name, email addresses, description, LinkedIn URL, tags, web_url, and created_at.

Inputs: query, company_id, tags, tags_exclude, +5 more.

update_companyA

Update an existing company in Attio CRM by record ID. You can update name, description, and/or LinkedIn URL. Only provided fields will be updated; omitted fields remain unchanged. To manage domains, use add_company_domain and remove_company_domain tools instead. Returns the updated company record.

Inputs: record_id (required), name, description, linkedin.

update_personA

Update an existing person in Attio CRM by record ID. You can update name fields (first_name, last_name, full_name), description, and/or LinkedIn URL. Only provided fields will be updated; omitted fields remain unchanged. To manage email addresses, use add_person_email and remove_person_email tools instead. Returns the updated person record.

Inputs: record_id (required), first_name, last_name, full_name, +2 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.8/5.0

    Scored across 14 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose with no ambiguity. For example, create_company, get_company, update_company, and search_companies are well-differentiated, and manage_company_domains handles specific domain operations without overlapping with update_company. The descriptions reinforce these distinctions, making misselection unlikely.

    Naming Consistency5/5

    Tool names follow a consistent verb_noun pattern throughout, such as create_company, get_person, search_people, and update_company. The manage_* tools also adhere to this pattern, and there are no deviations in naming conventions, ensuring predictability and readability.

    Tool Count5/5

    With 14 tools, the server is well-scoped for CRM operations, covering companies, people, notes, and schema. Each tool earns its place by providing specific functionality without redundancy, such as separate tools for creation, retrieval, updating, searching, and managing attributes like domains and emails.

    Completeness4/5

    The tool set offers comprehensive CRUD and lifecycle coverage for companies and people, including creation, retrieval, updating, searching, and attribute management. Minor gaps include the lack of delete operations for companies, people, or notes, but agents can likely work around this by using other methods or the server's inherent limitations.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables AI assistants to interact with Attio CRM through natural language, providing comprehensive CRM management including companies, people, lists, tasks, pipelines, and batch operations with advanced filtering capabilities.
      1,923 npm
      Apache 2.0
    • F
      license
      Not graded
      quality
      Not graded
      maintenance
      Enables AI assistants to interact with Attio CRM through natural language, providing complete access to companies, people, deals, tasks, lists, notes, and records with advanced search, batch operations, and relationship management.
      1,923 npm
      -
    • A
      license
      Not graded
      quality
      D
      maintenance
      Provides seamless access to the Attio API for AI assistants like Claude and Cursor, enabling interaction with objects, records, tasks, notes, and more through human-readable tools.
      36 npm
      7
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables AI assistants to interact with Attio CRM via natural language, supporting management of companies, people, tasks, notes, and lists.
      36 npm
      MIT