Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/dvlpjrs/guMCP/llms.txt

Use this file to discover all available pages before exploring further.

The Attio server provides comprehensive access to your Attio CRM, enabling you to manage companies, contacts, and lists through the MCP protocol.

Authentication

This server uses OAuth 2.0 authentication. You’ll need:
  • An Attio account and API access
  • An Attio OAuth App key with appropriate permissions:
    • Reading companies and contacts
    • Writing companies and contacts
    • Managing lists
Refer to the Attio API documentation for setup instructions.

Local Setup

Create local_auth/oauth_configs/attio/oauth.json:
{
  "client_id": "xxxxxxxxxxxxxxxxxxxxx",
  "client_secret": "xxxxxxxxxxxxxxxxxxxxx",
  "redirect_uri": "http://xxxxxxxxxxxxx"
}
Run authentication:
python src/servers/attio/main.py auth

Resources

The server exposes these resources:
URIDescription
attio:///collections/companiesCompanies collection (up to 50 records)
attio:///collections/peoplePeople/contacts collection (up to 50 records)
attio:///lists/{list_id}Records from a specific list

Tools

Company Management

Search for companies in Attio by name.Parameters:
  • query (string, required): Search query to match company names
Example:
{
  "query": "Acme Corp"
}
Implementation: Uses Attio’s query API with a $contains filter on the name field. Returns up to 50 matching companies.
Retrieve detailed information about a specific company.Parameters:
  • id (string, required): Company ID
Example:
{
  "id": "comp_123abc"
}
Create a new company record in Attio.Parameters:
  • name (string, required): Company name
  • domain (string, optional): Company domain
  • attributes (object, optional): Additional attributes as key-value pairs
Example:
{
  "name": "Acme Corporation",
  "domain": "acme.com",
  "attributes": {
    "industry": "Technology",
    "employee_count": 500
  }
}
Note: Domains are stored as an array in Attio.
Update an existing company’s attributes.Parameters:
  • id (string, required): Company ID
  • attributes (object, required): Attributes to update as key-value pairs
Example:
{
  "id": "comp_123abc",
  "attributes": {
    "employee_count": 750,
    "status": "active"
  }
}

Contact Management

Search for contacts by name or email.Parameters:
  • query (string, required): Search query
Example:
{
  "query": "john.doe@example.com"
}
Implementation: Searches both full name and email address fields using $or and $contains operators.
Retrieve detailed information about a specific contact.Parameters:
  • id (string, required): Contact ID
Example:
{
  "id": "person_456def"
}
Create a new contact in Attio.Parameters:
  • email (string, required): Contact email address
  • first_name (string, optional): First name
  • last_name (string, optional): Last name
  • company_id (string, optional): Company ID to associate with
  • attributes (object, optional): Additional attributes
Example:
{
  "email": "john.doe@acme.com",
  "first_name": "John",
  "last_name": "Doe",
  "company_id": "comp_123abc"
}
Note: Names are structured with full_name, first_name, and last_name fields.
Update an existing contact’s attributes.Parameters:
  • id (string, required): Contact ID
  • attributes (object, required): Attributes to update
Example:
{
  "id": "person_456def",
  "attributes": {
    "job_title": "Senior Engineer"
  }
}

List Management

Retrieve all available lists in your Attio workspace.Parameters: NoneReturns: Array of lists with ID and title information.
Read all records from a specific list.Parameters:
  • list_id (string, required): List ID
Example:
{
  "list_id": "list_789ghi"
}
Add a company or contact record to a list.Parameters:
  • list_id (string, required): List ID
  • record_id (string, required): Record ID to add
  • record_type (string, required): Type of record - either company or contact
Example:
{
  "list_id": "list_789ghi",
  "record_id": "comp_123abc",
  "record_type": "company"
}

API Reference

Base URL: https://api.attio.com/v2 All requests use Bearer token authentication. The server automatically handles token management through the OAuth flow.

Error Handling

The server provides detailed error messages for:
  • Missing required parameters
  • Invalid record IDs
  • API authentication failures
  • Network errors
Errors are returned as text content with appropriate status codes from the Attio API.

Build docs developers (and LLMs) love