# How to connect Attio to Claude Cowork

```json
{
  "title": "How to connect Attio to Claude Cowork",
  "toolkit": "Attio",
  "toolkit_slug": "attio",
  "framework": "Claude Cowork",
  "framework_slug": "claude-cowork",
  "url": "https://composio.dev/toolkits/attio/framework/claude-cowork",
  "markdown_url": "https://composio.dev/toolkits/attio/framework/claude-cowork.md",
  "updated_at": "2026-05-12T10:02:10.594Z"
}
```

## Introduction

Cowork is Anthropic's AI agent for knowledge work. Think of it as Claude Code for everything else. It works autonomously with your computer, local files, and applications to accomplish complex tasks.
This guide walks you through the easiest and most secure way to connect your Attio account to Cowork via Composio Connect, enabling it to add a meeting note to John Smith’s record, find all companies added this week, list recent notes for Acme Corp, and more such actions on your behalf without compromising your account security.

## Also integrate Attio with

- [ChatGPT](https://composio.dev/toolkits/attio/framework/chatgpt)
- [Antigravity](https://composio.dev/toolkits/attio/framework/antigravity)
- [OpenAI Agents SDK](https://composio.dev/toolkits/attio/framework/open-ai-agents-sdk)
- [Claude Agent SDK](https://composio.dev/toolkits/attio/framework/claude-agents-sdk)
- [Claude Code](https://composio.dev/toolkits/attio/framework/claude-code)
- [Codex](https://composio.dev/toolkits/attio/framework/codex)
- [Cursor](https://composio.dev/toolkits/attio/framework/cursor)
- [VS Code](https://composio.dev/toolkits/attio/framework/vscode)
- [OpenCode](https://composio.dev/toolkits/attio/framework/opencode)
- [OpenClaw](https://composio.dev/toolkits/attio/framework/openclaw)
- [Hermes](https://composio.dev/toolkits/attio/framework/hermes-agent)
- [CLI](https://composio.dev/toolkits/attio/framework/cli)
- [Google ADK](https://composio.dev/toolkits/attio/framework/google-adk)
- [LangChain](https://composio.dev/toolkits/attio/framework/langchain)
- [Vercel AI SDK](https://composio.dev/toolkits/attio/framework/ai-sdk)
- [Mastra AI](https://composio.dev/toolkits/attio/framework/mastra-ai)
- [LlamaIndex](https://composio.dev/toolkits/attio/framework/llama-index)
- [CrewAI](https://composio.dev/toolkits/attio/framework/crew-ai)

## Connect Attio to Claude Cowork

### Connecting Attio to Claude Cowork
1. Open Customize
In Claude Desktop, click Customize in the left sidebar, then select Connectors and click the + icon at the top.
2. Add the Composio MCP server
Click Add custom connector and paste in the Composio MCP server URL:

```bash
https://connect.composio.dev/mcp
```

## What is Claude Cowork?

Claude Cowork is Anthropic's agent for general knowledge work. It can use your computer, files, and connected applications to complete longer-running tasks across your work tools.
With Composio Connect, Cowork can securely access apps like Attio through MCP without you sharing account credentials directly with the agent.

## What is the Attio MCP server, and what's possible with it?

The Attio MCP server is an implementation of the Model Context Protocol that connects your AI agent and assistants like Claude, Cursor, etc directly to your Attio account. It provides structured and secure access to your team’s relationship and workflow data, so your agent can perform actions like creating records, managing notes, searching your CRM, and organizing lists on your behalf.
- Automated record management: Effortlessly create, update, or permanently delete records for people, companies, deals, and more in your Attio workspace.
- Smart note taking and retrieval: Let your agent create, list, or delete notes attached to any record, keeping important context and meeting details organized for your team.
- Powerful object and list navigation: Retrieve and explore all available objects or lists within your workspace, making it easy for your AI to understand and organize your CRM structure.
- Advanced record search and filtering: Find specific CRM records either by unique ID or by searching with custom attributes, ensuring your agent surfaces the right data when you need it.
- Comprehensive workspace insight: Get detailed information about object types and their attributes, so your AI-powered workflows always use the right fields and relationships.

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `ATTIO_ASSERT_COMPANY` | Assert Company (Create or Update) | Creates or updates a company record in Attio using a unique attribute to search for existing companies. If a company is found with the same value for the matching attribute, that company will be updated. If no company is found, a new one will be created. Use this when you prefer to update records on conflicts. |
| `ATTIO_ASSERT_PERSON` | Assert Person Record | Tool to create or update person records using a unique attribute to search for existing people. Use when you want to ensure a person exists with specific details without creating duplicates. |
| `ATTIO_ASSERT_USER_RECORD` | Assert User Record (Create or Update) | Creates or updates a user record in Attio using a unique attribute to search for existing users. If a user is found with the same value for the matching attribute, that user will be updated. If no user is found, a new one will be created. Use this to ensure user records exist without duplicates. |
| `ATTIO_ASSERT_WORKSPACE` | Assert Workspace (Create or Update) | Creates or updates a workspace record in Attio using a unique attribute to search for existing workspaces. If a workspace is found with the same value for the matching attribute, that workspace will be updated. If no workspace is found, a new one will be created. |
| `ATTIO_CREATE_ATTRIBUTE` | Create Attribute | Tool to create a new attribute on an object or list in Attio. Use when you need to add custom fields to track additional information. For record-reference types, you can establish bidirectional relationships by supplying a relationship object. |
| `ATTIO_CREATE_COMMENT` | Create Comment | Tool to create a new comment on a thread, record, or list entry in Attio. Use when you need to add a comment to an existing conversation, a record (like a person, company, or deal), or a list entry. |
| `ATTIO_CREATE_COMPANY` | Create Company | Creates a new company record in Attio. This endpoint will throw an error on conflicts of unique attributes like domains. If you prefer to update company records on conflicts, use the Assert company record endpoint instead. Note: The logo_url attribute cannot currently be set via the API. |
| `ATTIO_CREATE_DEAL_RECORD` | Create Deal Record | Tool to create a new deal record in Attio. Use when you need to track a new sales opportunity or deal. This endpoint will throw an error on conflicts of unique attributes. Minimal requirement is providing at least one attribute value. |
| `ATTIO_CREATE_LIST` | Create List | Tool to create a new list in Attio. Use when you need to organize records into custom lists. Once created, add attributes using the Create Attribute API and add records using the Create Entry API. New lists must have either workspace_access set to 'full-access' or one or more workspace_member_access with 'full-access' level. |
| `ATTIO_CREATE_NOTE` | Create Note | This tool creates a new note on a given record in Attio. The note can be attached to any record type (like person, company, or deal) and includes a title and content. It requires parameters such as parent_object, parent_record_id, title, and content, with an optional created_at timestamp. |
| `ATTIO_CREATE_OBJECT` | Create Object | Tool to create a new custom object in your Attio workspace. Use when you need to add a new object type beyond the standard objects (people, companies, deals, users, workspaces). Requires api_slug (snake_case identifier), singular_noun, and plural_noun. |
| `ATTIO_CREATE_PERSON` | Create Person | Creates a new person record in Attio. This endpoint will throw an error on conflicts of unique attributes like email_addresses. If you prefer to update person records on conflicts instead, use the Assert person record endpoint. Note: The avatar_url attribute cannot currently be set via the API. |
| `ATTIO_CREATE_RECORD` | Create Record | This tool creates a new record in Attio for a specified object type (people, companies, deals, users, workspaces, etc.). It requires the object type and a values dictionary containing the attributes for the new record. IMPORTANT: Different object types have different attributes. For example: - 'people' object uses: name, email_addresses, phone_numbers, primary_location, job_title, etc. - 'users' object uses: primary_email_address, user_id, person, workspace - 'companies' object uses: name, domains, description, etc. Always verify the correct attribute names for your target object type before creating records. Use the List Attributes API or check your workspace to see available attributes for each object type. |
| `ATTIO_CREATE_SELECT_OPTION` | Create Select Option | Tool to add a new select option to a select or multiselect attribute in Attio. Use when you need to add a new choice to an existing select field. |
| `ATTIO_CREATE_STATUS` | Create Status | Tool to add a new status to a status attribute on either an object or a list. Use when you need to create a new status option for status attributes. Company and person objects do not support status attributes at this time. |
| `ATTIO_CREATE_TASK` | Create Task | Tool to create a new task in Attio. Use when you need to add a task with content and optional deadline, assignees, or linked records. Note: Tasks can only be created from plaintext without record reference formatting. |
| `ATTIO_CREATE_USER_RECORD` | Create User Record | Creates a new user record in Attio. User records represent workspace members or users in the system. Requires primary_email_address, user_id, and workspace_id. Optionally link to an existing person record. Note: Required attributes may vary based on workspace configuration - check the List Attributes action if you encounter missing_value errors. |
| `ATTIO_CREATE_WEBHOOK` | Create Webhook | Tool to create a webhook and subscribe to events in Attio. Use when you need to set up a new webhook endpoint to receive real-time event notifications. Returns the webhook configuration including a one-time signing secret for verifying event authenticity. |
| `ATTIO_CREATE_WORKSPACE_RECORD` | Create Workspace Record | Creates a new workspace record in Attio. The workspace_id field is required and must be unique. This endpoint will throw an error on conflicts of unique attributes. Use when you need to create a new workspace entry in your Attio workspace. |
| `ATTIO_DELETE_COMMENT` | Delete Comment | Tool to delete a comment by its comment_id. Use when you need to remove a comment from Attio. If the comment is at the head of a thread, all messages in the thread are also deleted. The operation is permanent and cannot be undone. |
| `ATTIO_DELETE_COMPANY` | Delete Company | Tool to delete a company record from Attio by its record_id. Use when you need to permanently remove a company record. The deletion is irreversible and cannot be recovered. |
| `ATTIO_DELETE_DEAL` | Delete Deal | Tool to delete a deal record from Attio by its record_id. Use when you need to permanently remove a deal record. The deletion is irreversible and cannot be recovered. |
| `ATTIO_DELETE_ENTRY` | Delete List Entry | Tool to delete a single list entry by its entry_id in Attio. Use when you need to remove an entry from a specific list. The operation is permanent and cannot be undone. |
| `ATTIO_DELETE_NOTE` | Delete Note | This tool allows users to delete a specific note in Attio by its ID. It is implemented via DELETE https://api.attio.com/v2/notes/{note_id} and handles note deletion by validating the provided note_id. It complements ATTIO_CREATE_NOTE functionality, providing complete note management capabilities within the Attio platform. |
| `ATTIO_DELETE_PERSON` | Delete Person | Tool to delete a person record from Attio by its record_id. Use when you need to permanently remove a person record. The deletion is irreversible and cannot be recovered. |
| `ATTIO_DELETE_RECORD` | Delete Record | This tool allows you to delete a record from Attio permanently. The deletion is irreversible, and the data will eventually be removed from the system. |
| `ATTIO_DELETE_TASK` | Delete Task | Tool to delete a task by its task_id. Use when you need to remove a task from Attio. The operation is permanent and cannot be undone. |
| `ATTIO_DELETE_USER` | Delete User | Tool to delete a user record from Attio by its record_id. Use when you need to permanently remove a user record. The deletion is irreversible and cannot be recovered. |
| `ATTIO_DELETE_WEBHOOK` | Delete Webhook | Tool to delete a webhook by its webhook_id. Use when you need to remove a webhook subscription from Attio. The operation is permanent and cannot be undone. |
| `ATTIO_DELETE_WORKSPACE_RECORD` | Delete Workspace Record | Tool to delete a workspace record from Attio by its record_id. Use when you need to permanently remove a workspace record. The deletion is irreversible and cannot be recovered. |
| `ATTIO_FIND_RECORD` | Find Record | This tool allows users to find a record in Attio by either its unique ID or by searching using unique attributes. It provides two methods: one for directly retrieving a record by its ID with the GET /v2/objects/{object}/records/{record_id} endpoint, and another for searching by attributes using the POST /v2/objects/{object}/records/query endpoint. |
| `ATTIO_GET_ATTRIBUTE` | Get Attribute Details | Tool to get information about a single attribute on either an object or a list. Use when you need detailed information about a specific attribute's configuration, type, or metadata. |
| `ATTIO_GET_COMMENT` | Get Comment | Tool to get a single comment by its comment_id in Attio. Use when you need to retrieve detailed information about a specific comment, including its content, author, thread, and resolution status. |
| `ATTIO_GET_COMPANY` | Get Company | Tool to get a single company record by its record_id in Attio. Use when you need to retrieve detailed information about a specific company. Returns all attribute values for the company with temporal and audit metadata. |
| `ATTIO_GET_DEAL_RECORD` | Get Deal Record | Tool to get a single deal record by its record_id in Attio. Use when you need to retrieve detailed information about a specific deal. Returns all attribute values for the deal with temporal and audit metadata. |
| `ATTIO_GET_LIST` | Get List | Tool to retrieve details of a single list in your Attio workspace. Use when you need to get information about a specific list by its UUID or slug. |
| `ATTIO_GET_LIST_ENTRY` | Get List Entry | Tool to get a single list entry by its entry_id. Use when you need to retrieve detailed information about a specific entry in an Attio list. |
| `ATTIO_GET_NOTE` | Get Note | Tool to get a single note by its note_id in Attio. Use when you need to retrieve detailed information about a specific note, including its title, content (plaintext and markdown), tags, and creator information. |
| `ATTIO_GET_OBJECT` | Get Object | Tool to get a single object by its object_id or slug. Use to retrieve detailed schema information about a specific object type in the Attio workspace. Also use as a prerequisite validation step before calling ATTIO_FIND_RECORD, ATTIO_LIST_RECORDS, or ATTIO_CREATE_RECORD — attribute slugs must exactly match what this tool returns. The returned schema defines required attributes for record creation; omitting them causes invalid_request_error with code missing_value (HTTP 400). Custom attributes (e.g., industry, category) vary by object type — verify their presence and data type here before building filters or record values. |
| `ATTIO_GET_RECORD_ENTRIES` | List Record Entries | Tool to list all entries, across all lists, for which a record is the parent. Use when you need to find which lists a specific record belongs to. Returns list IDs, slugs, entry IDs, and creation timestamps. |
| `ATTIO_GET_SELF` | Get Current Token Info | Tool to identify the current access token, the workspace it is linked to, and any permissions it has. Use when you need to verify token validity or retrieve workspace information associated with the current authentication. |
| `ATTIO_GET_TASK` | Get Task | Tool to get a single task by its task_id in Attio. Use when you need to retrieve detailed information about a specific task, including its content, deadline, assignees, and linked records. |
| `ATTIO_GET_V2_TASKS` | List Tasks | Tool to list all tasks in the workspace. Use when you need to retrieve tasks, optionally filtering by assignee, completion status, or linked records. Results are sorted by creation date from oldest to newest by default. |
| `ATTIO_GET_WEBHOOK` | Get Webhook | Tool to get a single webhook by its webhook_id in Attio. Use when you need to retrieve detailed information about a specific webhook configuration. Returns the webhook's target URL, event subscriptions, status, and metadata. |
| `ATTIO_GET_WORKSPACE_MEMBER` | Get Workspace Member | Tool to get a single workspace member by their workspace_member_id. Use when you need details about a specific workspace member, including their name, email, access level, and avatar. |
| `ATTIO_GET_WORKSPACE_RECORD` | Get Workspace Record | Tool to get a single workspace record by its record_id. Use when you need to retrieve detailed information about a specific workspace. Returns all attribute values for the workspace record with temporal and audit metadata. |
| `ATTIO_LIST_ATTRIBUTE_OPTIONS` | List Attribute Options | Tool to list all select options for a particular attribute on either an object or a list. Use when you need to discover available options for select or status type attributes. |
| `ATTIO_LIST_ATTRIBUTES` | List Attributes | Tool to list the attribute schema for an Attio object or list (including slugs, types, select/status config) to enable correct filtering and writes. Use when you need to discover what attributes exist on an object or list, their types, and their configuration (e.g., available options for select/status attributes). Returns attributes in UI sort order. |
| `ATTIO_LIST_ATTRIBUTE_STATUSES` | List Attribute Statuses | Tool to list all statuses for a particular status attribute on either an object or a list. Use when you need to discover available statuses for a status attribute, including their IDs, titles, and configuration. |
| `ATTIO_LIST_CALL_RECORDINGS` | List Call Recordings | Tool to list all call recordings for a meeting in Attio. Use when you need to retrieve call recordings associated with a specific meeting. This endpoint is in beta. |
| `ATTIO_LIST_COMPANIES` | List Companies | Tool to list company records in Attio with optional filtering and sorting. Use when you need to retrieve company records based on criteria like domain, name, or description. |
| `ATTIO_LIST_COMPANY_ATTRIBUTE_VALUES` | List Company Attribute Values | Tool to get all values for a given attribute on a company record. Historic values can be queried using the show_historic query param. Historic values cannot be queried on COMINT or enriched attributes. Some attributes are subject to billing status and may return an empty array. |
| `ATTIO_LIST_COMPANY_RECORD_ENTRIES` | List Company Record Entries | Tool to list all entries across all lists for which a company record is the parent in Attio. Use when you need to see which lists a particular company record belongs to. Returns list information and entry IDs for each list the company appears in. |
| `ATTIO_LIST_DEAL_ENTRIES` | List Deal Entries | Tool to list all entries across all lists for which a deal record is the parent in Attio. Use when you need to see which lists a particular deal record belongs to. Returns list information and entry IDs for each list the deal appears in. |
| `ATTIO_LIST_DEAL_RECORD_ATTRIBUTE_VALUES` | List Deal Record Attribute Values | Tool to retrieve all values for a specified attribute on a deal record in Attio. Use when you need to see current or historic values for a specific deal attribute. Historic values can be queried using show_historic param but cannot be queried on COMINT or enriched attributes. |
| `ATTIO_LIST_DEAL_RECORDS` | List Deal Records | Tool to list deal records in Attio with the option to filter and sort results. Use when you need to retrieve deal records based on filter criteria or sorting requirements. |
| `ATTIO_LIST_LIST_ENTRY_ATTRIBUTE_VALUES` | List List Entry Attribute Values | Tool to retrieve all values for a specified attribute on a list entry in Attio. Use when you need to see the history of values for a specific attribute on a list entry. Can return only active values or include all historical values sorted chronologically. |
| `ATTIO_LIST_LISTS` | List Lists | This tool retrieves all lists available in the Attio workspace, sorted as they appear in the sidebar. Returns list metadata only (names, IDs, configuration) — not the records/entries within those lists. To fetch actual list entries, use ATTIO_FIND_RECORD with appropriate filters. This tool is a prerequisite for many list-related operations. Requires the list_configuration:read permission scope. |
| `ATTIO_LIST_MEETINGS` | List Meetings | Tool to list all meetings in the workspace using a deterministic sort order. Use when you need to retrieve meetings, optionally filtering by participants, linked records, or time ranges. This endpoint is in beta. |
| `ATTIO_LIST_NOTES` | List Notes | Lists notes in Attio. Can list all notes in the workspace, or filter by parent object type and/or specific record. Notes are returned in reverse chronological order (newest first). |
| `ATTIO_LIST_OBJECTS` | List Objects | This tool retrieves a list of all available objects (both system-defined and user-defined) in the Attio workspace via GET /v2/objects, returning key metadata including slugs and IDs for each object. Call this tool first before ATTIO_LIST_RECORDS, ATTIO_FIND_RECORD, or ATTIO_CREATE_RECORD to discover valid object slugs — hardcoded slugs may not exist across workspaces. Concepts like tasks may be modeled as deals or custom objects rather than dedicated types, so confirm the correct object type before proceeding. Attribute values in responses can be arrays of time-bounded entries rather than simple scalars; downstream code must handle nested structures. |
| `ATTIO_LIST_PEOPLE_ATTRIBUTE_VALUES` | List People Attribute Values | Tool to get all values for a given attribute on a person record. Use when you need to retrieve current or historic values for a specific person attribute. Historic values can be queried using the show_historic param but cannot be queried on COMINT or enriched attributes (returns 400 error). |
| `ATTIO_LIST_PEOPLE_RECORD_ENTRIES` | List People Record Entries | Tool to list all entries across all lists for which a person record is the parent in Attio. Use when you need to see which lists a particular person record belongs to. Returns list information and entry IDs for each list the person appears in. |
| `ATTIO_LIST_RECORD_ATTRIBUTE_VALUES` | List Record Attribute Values | Tool to retrieve all values for a specified attribute on a record in Attio. Use when you need to see the history of values for a specific attribute. Can return only active values or include historical values. Historic values cannot be queried on COMINT or enriched attributes. |
| `ATTIO_LIST_RECORDS` | List Records | This tool lists records from a specific object type in Attio. It provides simple pagination support and returns records in creation order (oldest first). For complex filtering, use the FindRecord action instead. Standard object types include: people, companies, deals, users, workspaces. If you get a 404 error, verify the object type exists using the List Objects action first. Response attribute values are returned as arrays of time-bounded objects under a `values` map (e.g., `values['name']`), not simple scalars — handle arrays, nested objects, and empty arrays accordingly. Select attributes are accessed via `option.title`; currency, stage, and select fields may be null or empty arrays. Access records via `data.data` in the response. |
| `ATTIO_LIST_THREADS` | List Threads | Tool to list threads of comments on a record or list entry in Attio. Use when you need to view all comment threads associated with a specific record or list entry. Threads contain one or more comments sorted chronologically. |
| `ATTIO_LIST_USER_RECORD_ENTRIES` | List User Record Entries | Tool to list all entries across all lists for which a user record is the parent in Attio. Use when you need to see which lists a particular user record belongs to. Returns list information and entry IDs for each list the user appears in. |
| `ATTIO_LIST_USER_RECORDS` | List User Records | Tool to list user records in Attio with optional filtering and sorting. Use when you need to retrieve workspace members or user records based on specific criteria. |
| `ATTIO_LIST_WEBHOOKS` | List Webhooks | Tool to get all webhooks in your Attio workspace. Use when you need to retrieve a list of configured webhooks, their subscriptions, and statuses. Supports pagination via limit and offset parameters. |
| `ATTIO_LIST_WORKSPACE_MEMBERS` | List Workspace Members | Tool to list workspace members (actors) so agents can reliably assign owners and resolve workspace-member IDs even when the optional Users standard object is disabled. Use when writing or assigning actor-reference attributes (e.g., record/list entry owners) that require referenced_actor_type=workspace-member and an actor id. |
| `ATTIO_LIST_WORKSPACE_RECORD_ATTRIBUTE_VALUES` | List Workspace Record Attribute Values | Tool to retrieve all values for a specified attribute on a workspace record in Attio. Use when you need to see the history of values for a specific attribute on a workspace record. Can return only active values or include all historical values sorted chronologically. |
| `ATTIO_LIST_WORKSPACE_RECORD_ENTRIES` | List Workspace Record Entries | Tool to list all entries across all lists for which a workspace record is the parent in Attio. Use when you need to see which lists a particular workspace record belongs to. Returns list information and entry IDs for each list the workspace appears in. |
| `ATTIO_LIST_WORKSPACE_RECORDS` | List Workspace Records | Tool to list workspace records with filtering and sorting options. Use when you need to retrieve workspace-level records from Attio. Records are returned based on the filters and sorts provided. Requires record_permission:read and object_configuration:read scopes. |
| `ATTIO_PATCH_RECORD` | Patch Record | Tool to update people, companies, and other records by record_id using PATCH method. For multiselect attributes, values supplied will be prepended to existing values. Use PUT endpoint to overwrite or remove multiselect values. |
| `ATTIO_PATCH_V2_LISTS_LIST_ENTRIES_ENTRY_ID` | Update List Entry by Entry ID | Tool to update list entries by entry_id in Attio. Use when you need to modify attribute values on existing list entries. For multiselect attributes, the values supplied will be created and prepended to existing values. Use the PUT endpoint to overwrite or remove multiselect attribute values. |
| `ATTIO_PEOPLE_GET_PERSON` | Get Person | Tool to get a single person record by its record_id in Attio. Use when you need to retrieve detailed information about a specific person. Returns all attribute values for the person with temporal and audit metadata. |
| `ATTIO_PEOPLE_LIST_PERSONS` | List Person Records | Tool to list person records from Attio with optional filtering and sorting. Use when you need to retrieve people based on specific criteria or get a paginated list of all people. |
| `ATTIO_POST_V2_LISTS_LIST_ENTRIES` | Create List Entry | Tool to add a record to a list as a new list entry in Attio. Use when you need to organize records into specific lists. This endpoint will throw on conflicts of unique attributes. Multiple list entries are allowed for the same parent record. |
| `ATTIO_POST_V2_LISTS_LIST_ENTRIES_QUERY` | List List Entries | Tool to list entries in a given list, with the option to filter and sort results. Use when you need to retrieve records that belong to a specific list with optional filtering and sorting. |
| `ATTIO_POST_V2_OBJECTS_OBJECT_RECORDS_QUERY` | List Records with Query | Tool to list people, company or other records in Attio with the option to filter and sort results. Use when you need to retrieve records based on complex filter criteria or sorting requirements. |
| `ATTIO_PUT_V2_LISTS_LIST_ENTRIES` | Assert List Entry by Parent | Tool to create or update a list entry for a given parent record in Attio. If an entry with the specified parent record is found, that entry will be updated. If no such entry is found, a new entry will be created instead. For multiselect attributes, all values will be either created or deleted as necessary to match the list of values supplied in the request. |
| `ATTIO_PUT_V2_LISTS_LIST_ENTRIES_ENTRY_ID` | Update List Entry by Entry ID (PUT) | Tool to update list entries by entry_id in Attio using PUT method. Use when you need to completely replace attribute values on existing list entries. For multiselect attributes, the values supplied will overwrite/remove the list of values that already exist (if any). Use the PATCH endpoint to add multiselect attribute values without removing those that already exist. |
| `ATTIO_PUT_V2_OBJECTS_OBJECT_RECORDS` | Assert Record (Create or Update) | Tool to create or update people, companies and other records in Attio using a matching attribute. Use when you want to avoid duplicate records - if a record with the same value for the matching attribute is found, it will be updated; otherwise a new record is created. If you want to avoid matching and always create new records, use the Create Record endpoint instead. |
| `ATTIO_PUT_V2_OBJECTS_OBJECT_RECORDS_RECORD_ID` | Put Record (Overwrite) | Tool to update people, companies, and other records by record_id using PUT method. For multiselect attributes, values supplied will overwrite/remove existing values. Use PATCH endpoint to append without removing. |
| `ATTIO_QUERY_RECORDS` | Query Records | Tool to query records for a specific Attio object using server-side filtering operators and sorting. Use when you need to retrieve records based on complex filter criteria (e.g., 'get all agreements where product=X and status in Y') rather than simple listing or ID-based lookup. This avoids downloading large pages and filtering locally, which is slow and costly. |
| `ATTIO_SEARCH_RECORDS` | Search Records | Tool to fuzzy search for records across multiple objects in Attio. Use when you need to find records by name, domain, email, phone number, or social handle. This endpoint is in beta and returns eventually consistent results. Matching strategy follows the in-product search approach. |
| `ATTIO_UPDATE_ATTRIBUTE` | Update Attribute | Tool to update an existing attribute by its attribute_id or slug. Use when you need to modify attribute properties such as title, description, validation rules, or configuration settings. |
| `ATTIO_UPDATE_COMPANY` | Update Company | Tool to update a company record in Attio by its record_id. Use when you need to modify company attributes like name, description, domains, or team. For multiselect attributes, values are prepended to existing values. Note: logo_url cannot be updated via API. |
| `ATTIO_UPDATE_DEAL_RECORD` | Update Deal Record | Tool to update an existing deal record in Attio by record ID. Uses PATCH to partially update only the provided fields, leaving other fields unchanged. |
| `ATTIO_UPDATE_LIST` | Update List | Tool to update an existing list in Attio. Use when you need to modify list properties like name, api_slug, or permissions. Lists must have either workspace_access set to 'full-access' or one or more workspace_member_access with 'full-access' level. Changing the parent object of a list is not possible through the API. |
| `ATTIO_UPDATE_OBJECT` | Update Object | Tool to update a single object's configuration in Attio. Use when you need to modify an object's API slug, singular noun, or plural noun. Standard objects (people, companies, deals, users, workspaces) and custom objects can be updated. |
| `ATTIO_UPDATE_PERSON` | Update Person | Tool to update a person record in Attio by its record_id. Use when you need to modify person attributes like name, email, job title, or phone numbers. For multiselect attributes, values are prepended to existing values. Note: avatar_url cannot be updated via API. |
| `ATTIO_UPDATE_RECORD` | Update Record | This tool updates an existing record in Attio for a specified object type (people, companies, deals, users, workspaces, etc.). It uses PATCH to partially update only the provided fields, leaving other fields unchanged. |
| `ATTIO_UPDATE_SELECT_OPTION` | Update Select Option | Tool to update an existing select option for a select or multiselect attribute in Attio. Use when you need to rename an option or archive it. Archived options are hidden from selection but preserve historical data for records that used them. |
| `ATTIO_UPDATE_STATUS` | Update Status | Tool to update a status on a status attribute on either an object or a list in Attio. Use when you need to modify status properties like title, celebration settings, target time, or archive status. Company and person objects do not support status attributes at this time. |
| `ATTIO_UPDATE_TASK` | Update Task | Tool to update an existing task in Attio by its task_id. Use when you need to modify a task's deadline, completion status, linked records, or assignees. Only these four fields can be updated via this endpoint. |
| `ATTIO_UPDATE_USER_RECORD` | Update User Record | Tool to update a user record in Attio by its record_id. Use when you need to modify user attributes like user_id, primary_email_address, person, or workspace references. Attributes not included in the request will remain unchanged. |
| `ATTIO_UPDATE_WEBHOOK` | Update Webhook | Tool to update a webhook's target URL and/or event subscriptions. Use when you need to modify an existing webhook configuration in Attio. |
| `ATTIO_UPDATE_WORKSPACE_RECORD` | Update Workspace Record | Tool to update a workspace record by ID using PATCH method. Only the attributes provided in the request will be updated; other attributes remain unchanged. |

## Supported Triggers

None listed.

## Creating MCP Server - Stand-alone vs Composio SDK

The Attio MCP server connects Claude Cowork to your Attio account through Composio. Once connected, Cowork can use the available Attio tools and triggers to complete tasks on your behalf.

## Complete Code

None listed.

## How to build Attio MCP Agent with another framework

- [ChatGPT](https://composio.dev/toolkits/attio/framework/chatgpt)
- [Antigravity](https://composio.dev/toolkits/attio/framework/antigravity)
- [OpenAI Agents SDK](https://composio.dev/toolkits/attio/framework/open-ai-agents-sdk)
- [Claude Agent SDK](https://composio.dev/toolkits/attio/framework/claude-agents-sdk)
- [Claude Code](https://composio.dev/toolkits/attio/framework/claude-code)
- [Codex](https://composio.dev/toolkits/attio/framework/codex)
- [Cursor](https://composio.dev/toolkits/attio/framework/cursor)
- [VS Code](https://composio.dev/toolkits/attio/framework/vscode)
- [OpenCode](https://composio.dev/toolkits/attio/framework/opencode)
- [OpenClaw](https://composio.dev/toolkits/attio/framework/openclaw)
- [Hermes](https://composio.dev/toolkits/attio/framework/hermes-agent)
- [CLI](https://composio.dev/toolkits/attio/framework/cli)
- [Google ADK](https://composio.dev/toolkits/attio/framework/google-adk)
- [LangChain](https://composio.dev/toolkits/attio/framework/langchain)
- [Vercel AI SDK](https://composio.dev/toolkits/attio/framework/ai-sdk)
- [Mastra AI](https://composio.dev/toolkits/attio/framework/mastra-ai)
- [LlamaIndex](https://composio.dev/toolkits/attio/framework/llama-index)
- [CrewAI](https://composio.dev/toolkits/attio/framework/crew-ai)

## Related Toolkits

- [Hubspot](https://composio.dev/toolkits/hubspot) - HubSpot is an all-in-one marketing, sales, and customer service platform. It lets teams nurture leads, automate outreach, and track every customer interaction in one place.
- [Pipedrive](https://composio.dev/toolkits/pipedrive) - Pipedrive is a sales management platform offering pipeline visualization, lead tracking, and workflow automation. It helps sales teams keep deals moving forward efficiently and never miss a follow-up.
- [Salesforce](https://composio.dev/toolkits/salesforce) - Salesforce is a leading CRM platform that helps businesses manage sales, service, and marketing. It centralizes customer data, enabling teams to drive growth and build strong relationships.
- [Apollo](https://composio.dev/toolkits/apollo) - Apollo is a CRM and lead generation platform that helps businesses discover contacts and manage sales pipelines. Use it to streamline customer outreach and track your deals from one place.
- [Acculynx](https://composio.dev/toolkits/acculynx) - AccuLynx is a cloud-based roofing business management software for contractors. It streamlines project tracking, lead management, and document sharing.
- [Addressfinder](https://composio.dev/toolkits/addressfinder) - Addressfinder is a data quality platform for verifying addresses, emails, and phone numbers. It helps you ensure accurate customer and contact data every time.
- [Affinity](https://composio.dev/toolkits/affinity) - Affinity is a relationship intelligence CRM that helps private capital investors find, manage, and close more deals. It streamlines deal flow and surfaces key connections to help you win opportunities.
- [Agencyzoom](https://composio.dev/toolkits/agencyzoom) - AgencyZoom is a sales and performance platform built for P&C insurance agencies. It helps agents boost sales, retain clients, and analyze producer results in one place.
- [Bettercontact](https://composio.dev/toolkits/bettercontact) - Bettercontact is a smart contact enrichment tool for finding emails and phone numbers. It helps boost lead generation with automated, waterfall search across multiple sources.
- [Blackbaud](https://composio.dev/toolkits/blackbaud) - Blackbaud provides cloud-based software for nonprofits, schools, and healthcare institutions. It streamlines fundraising, donor management, and mission-driven operations.
- [Brilliant directories](https://composio.dev/toolkits/brilliant_directories) - Brilliant Directories is an all-in-one platform for building and managing online membership communities and business directories. It streamlines listings, member management, and engagement tools into a single, easy interface.
- [Capsule crm](https://composio.dev/toolkits/capsule_crm) - Capsule CRM is a user-friendly CRM platform for managing contacts and sales pipelines. It helps businesses organize relationships and streamline their sales process efficiently.
- [Centralstationcrm](https://composio.dev/toolkits/centralstationcrm) - CentralStationCRM is an easy-to-use CRM software focused on collaboration and long-term customer relationships. It helps teams manage contacts, deals, and communications all in one place.
- [Clientary](https://composio.dev/toolkits/clientary) - Clientary is a platform for managing clients, invoices, projects, proposals, and more. It streamlines client work and saves you serious admin time.
- [Close](https://composio.dev/toolkits/close) - Close is a CRM platform built for sales teams, combining calling, email automation, and predictive dialers. It streamlines sales workflows and boosts productivity with all-in-one communication tools.
- [Dropcontact](https://composio.dev/toolkits/dropcontact) - Dropcontact is a B2B email finder and data enrichment service for professionals. It delivers verified email addresses and enriches contact info with up-to-date data.
- [Dynamics365](https://composio.dev/toolkits/dynamics365) - Dynamics 365 is Microsoft's platform combining CRM, ERP, and productivity apps. It streamlines sales, marketing, service, and operations in one place.
- [Espocrm](https://composio.dev/toolkits/espocrm) - EspoCRM is an open-source web application for managing customer relationships. It helps businesses organize contacts, track leads, and streamline their sales process.
- [Fireberry](https://composio.dev/toolkits/fireberry) - Fireberry is a CRM platform that streamlines customer and sales management. It helps businesses organize contacts, automate sales, and integrate with other business tools.
- [Firmao](https://composio.dev/toolkits/firmao) - Firmao is a business information platform offering company, industry, and market data. Use it to quickly research firms and gain competitive market insights.

## Frequently Asked Questions

### What are the differences in Tool Router MCP and Attio MCP?

With a standalone Attio MCP server, the agents and LLMs can only access a fixed set of Attio tools tied to that server. However, with the Composio Tool Router, agents can dynamically load tools from Attio and many other apps based on the task at hand, all through a single MCP endpoint.

### Can I use Tool Router MCP with Claude Cowork?

Yes, you can. Claude Cowork fully supports MCP integration. You get structured tool calling, message history handling, and model orchestration while Tool Router takes care of discovering and serving the right Attio tools.

### Can I manage the permissions and scopes for Attio while using Tool Router?

Yes, absolutely. You can configure which Attio scopes and actions are allowed when connecting your account to Composio. You can also bring your own OAuth credentials or API configuration so you keep full control over what the agent can do.

### How safe is my data with Composio Tool Router?

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Attio data and credentials are handled as safely as possible.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
