Connect your AI Agents to Attio in minutes

Available tools
list_entries
Query entries of a list with pagination. Use list_lists to find valid list slugs. Supports limit and offset for pagination.
get_entry
Get a single list entry by ID. Use list_entries to find valid entry IDs.
create_entry
Add a record to a list as a new entry. Requires parent_object slug and parent_record_id. Use list_records or search_records to find record IDs.
delete_entry
Remove an entry from a list. This does not delete the underlying record. Use list_entries to find valid entry IDs.
list_lists
List all lists in the Attio workspace. Lists are collections of records (e.g. sales pipeline, hiring pipeline).
get_list
Get a single list definition by slug or ID. Use list_lists to find valid slugs.
create_list
Create a new list. Requires a name and parent_object (e.g. 'people', 'companies'). Use list_objects to find valid parent objects.
list_notes
List all notes in the workspace with pagination. Notes are attached to records. Use limit and offset for pagination.
get_note
Get a single note by ID. Use list_notes to find valid note IDs.
create_note
Create a note attached to a record. Requires parent_object slug and parent_record_id. Use list_records or search_records to find record IDs.
delete_note
Delete a note by ID. This action is irreversible. Use list_notes to find valid note IDs.
list_objects
List all objects in the Attio workspace (e.g. people, companies, deals). Returns object definitions with slugs and display names.
get_object
Get a single object definition by slug or ID. Use list_objects to find valid slugs (e.g. 'people', 'companies').
list_attributes
List all attributes of an object or list. Set target to 'objects' or 'lists' and target_id to the slug/ID. Use list_objects or list_lists to find valid IDs.
list_records
Query records of an object with optional filtering and sorting. Use list_attributes to find valid attribute slugs for filters. Supports pagination via limit and offset.
get_record
Get a single record by ID. Use list_records or search_records to find valid record IDs.
create_record
Create a new record on an object. Use list_attributes to find writable attribute slugs and expected value formats.
update_record
Update an existing record's attribute values. Only provided attributes are updated. Use list_attributes to find writable attribute slugs.
delete_record
Delete a record by ID. This action is irreversible. Use list_records or search_records to find valid record IDs.
assert_record
Upsert a record: create if no match exists, update if a record matches on the matching_attribute. Useful for deduplication (e.g. matching_attribute='email_addresses').
search_records
Search records across one or more objects by text query. Returns matching records with display text. Limit results with the limit parameter (max 25).
list_tasks
List all tasks in the workspace with pagination. Tasks can be linked to records and assigned to workspace members.
get_task
Get a single task by ID. Use list_tasks to find valid task IDs.
create_task
Create a new task. Optionally link to records and assign to workspace members. Use list_workspace_members to find valid assignee IDs.
update_task
Update a task's content, deadline, completion status, linked records, or assignees. Only provided fields are updated.
delete_task
Delete a task by ID. This action is irreversible. Use list_tasks to find valid task IDs.
validate_credential
Validate Attio credentials by making a test API call. Returns success status and message.
list_webhooks
List all webhooks registered in the workspace. Shows target URLs, subscriptions, and status.
create_webhook
Create a webhook to receive event notifications. Provide a target_url and subscriptions with event types (e.g. 'record.created', 'record.updated').
delete_webhook
Delete a webhook by ID. This stops all event delivery to the webhook URL. Use list_webhooks to find valid IDs.
list_workspace_members
List all members of the Attio workspace. Returns names, emails, and access levels. Useful for finding assignee IDs for tasks.

How to set up Merge Agent Handler
In an mcp.json file, add the configuration below, and restart Cursor.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "url": "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
5 "headers": {
6 "Authorization": "Bearer yMt*****"
7 }
8 }
9 }
10}
11Open your Claude Desktop configuration file and add the server configuration below. You'll also need to restart the application for the changes to take effect.
Make sure Claude is using the Node v20+.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "command": "npx",
5 "args": [
6 "-y",
7 "mcp-remote@latest",
8 "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
9 "--header",
10 "Authorization: Bearer ${AUTH_TOKEN}"
11 ],
12 "env": {
13 "AUTH_TOKEN": "yMt*****"
14 }
15 }
16 }
17}Open your Windsurf MCP configuration file and add the server configuration below.
Click on the refresh button in the top right of the Manage MCP server page or in the top right of the chat box in the box icon.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "command": "npx",
5 "args": [
6 "-y",
7 "mcp-remote@latest",
8 "https://ah-api.merge.dev/api/v1/tool-packs/<tool-pack-id>/registered-users/<registered-user-id>/mcp",
9 "--header",
10 "Authorization: Bearer ${AUTH_TOKEN}"
11 ],
12 "env": {
13 "AUTH_TOKEN": "<ah-production-access-key>"
14 }
15 }
16 }
17 }In Command Palette (Cmd+Shift+P on macOS, Ctrl+Shift+P on Windows), run "MCP: Open User Configuration".
You can then add the configuration below and press "start" right under servers. Enter the auth token when prompted.
Learn more in the official documentation ↗
1{
2 "inputs": [
3 {
4 "type": "promptString",
5 "id": "agent-handler-auth",
6 "description": "Agent Handler AUTH_TOKEN", // "yMt*****" when prompt
7 "password": true
8 }
9 ],
10 "servers": {
11 "agent-handler": {
12 "type": "stdio",
13 "command": "npx",
14 "args": [
15 "-y",
16 "mcp-remote@latest",
17 "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
18 "--header",
19 "Authorization: Bearer ${input:agent-handler-auth}"
20 ]
21 }
22 }
23}FAQs on using Merge's Attio MCP server
FAQs on using Merge's Attio MCP server
What is an Attio MCP?
It's an MCP server that connects your agents to Attio's CRM platform via tools. Your agents can invoke these tools to create and update records for people, companies, and deals, search across your workspace, log notes, manage tasks, and more.
Attio offers an official MCP server, but you can also use one from a third-party platform, like Merge Agent Handler.
How can I use the Attio MCP server?
The use cases naturally depend on the agent you've built, but here are a few common ones:
- Automated record creation from inbound signals: When a new lead fills out a form or surfaces in an enrichment tool, an agent creates the corresponding person and company records in Attio, populates the relevant attributes, and adds them to the right list for the sales team to work
- Deal updates after external events: When a contract is signed in a document tool or a payment clears in a billing system, an agent finds the associated deal record in Attio, updates the stage, and logs a note summarizing what happened and when
- Cross-tool follow-up task generation: After a customer support ticket is resolved in a help desk tool, an agent creates a follow-up task in Attio on the linked company record, assigned to the account owner, to check in with the customer within the week
- Pipeline hygiene on a schedule: Each week, an agent searches Attio for deal records that haven't been updated in over 10 days, compiles the stale opportunities into a summary, and posts it to the sales Slack channel for the team to action
What are popular tools for Attio's MCP server?
Here are some of the most commonly used tools:
search_records: searches across records in an Attio workspace using filters on object type, attributes, or text. Use this when an agent needs to locate a specific company, person, or deal before updating it or associating it with another record
create_record: creates a new record in Attio for a specified object type like person, company, or deal. Call this when an agent is ingesting data from an external source and needs to establish the CRM record before further enrichment or routing
update_record: modifies the attributes of an existing Attio record. Good for workflows that sync status changes, enrichment data, or lifecycle signals from other tools back into the CRM
create_note: adds a note to a record in Attio with free-form text content. Helpful when an agent needs to log a summary of a call, event, or decision that should be visible on the record for other team members
create_task: creates a task linked to an Attio record with a title, due date, and assignee. Use this when an agent needs to generate follow-up actions automatically in response to a trigger like a deal stage change or a resolved support ticket
create_entry: adds a record to a specified Attio list. Useful for agents that segment contacts or companies at the point of qualification, routing them into the right list for outreach or campaign targeting
What makes Merge Agent Handler's Attio MCP server better than alternative Attio MCP servers?
Attio has its own official MCP server, but Merge Agent Handler's gives revenue and data teams tighter control over how CRM data is accessed:
- Enterprise-grade security and DLP: Merge Agent Handler includes built-in data loss prevention controls that let you block or redact sensitive fields before they reach an agent. For Attio, this means you can prevent contact details, deal values, notes, and relationship data from being surfaced to agents that don't specifically need access to them
- Managed authentication and credentials: Merge stores and manages your Attio OAuth credentials on your behalf. You never embed tokens in agent configuration or handle re-authorization when they expire
- Real-time observability and audit trail: Every tool call against Attio is logged: which records were created or updated, which notes were added, which tasks were generated, and what came back. RevOps and security teams can audit agent activity across the CRM without any custom instrumentation
- Tool Packs and controlled access: Tool Packs let you bundle specific Attio tools with tools from other connectors into a single MCP endpoint, scoped to a specific use case. An agent gets exactly the tools it needs, nothing more
How can I start using Merge Agent Handler's Attio MCP server?
You can take the following steps:
1. Create or log into your Merge Agent Handler account and navigate to Tool Packs (collections of connector tools scoped to a specific use case).
2. Create a new Tool Pack, then find and enable the Attio connector. Choose tools that match your workflow: search_records and list_records are enough for lookup and reporting agents, while create_record, update_record, create_note, and create_task are needed for agents that write to the CRM.
3. Add a Registered User inside the Tool Pack. This is the identity context under which your agent operates. Merge generates a unique MCP URL scoped to this user once it's created.
4. From the Registered User detail page, authenticate Attio by completing the OAuth flow. Merge stores and manages the credentials going forward.
5. Copy the MCP URL from the Tool Pack detail page and generate an API key from Settings. You'll need both to connect your agent.
6. Add the MCP server to your agent or IDE using the MCP URL and API key. Your Attio tools are now accessible through that endpoint.
Ready to try it out?
Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now

























