
Query entries of a list with pagination. Use list_lists to find valid list slugs. Supports limit and offset for pagination.
Get a single list entry by ID. Use list_entries to find valid entry IDs.
Add a record to a list as a new entry. Requires parentobject slug and parentrecordid. Use listrecords or search_records to find record IDs.
Remove an entry from a list. This does not delete the underlying record. Use list_entries to find valid entry IDs.
List all lists in the Attio workspace. Lists are collections of records (e.g. sales pipeline, hiring pipeline).
Get a single list definition by slug or ID. Use list_lists to find valid slugs.
Create a new list. Requires a name and parentobject (e.g. 'people', 'companies'). Use listobjects to find valid parent objects.
List all notes in the workspace with pagination. Notes are attached to records. Use limit and offset for pagination.
Get a single note by ID. Use list_notes to find valid note IDs.
Create a note attached to a record. Requires parentobject slug and parentrecordid. Use listrecords or search_records to find record IDs.
Delete a note by ID. This action is irreversible. Use list_notes to find valid note IDs.
List all objects in the Attio workspace (e.g. people, companies, deals). Returns object definitions with slugs and display names.
Get a single object definition by slug or ID. Use list_objects to find valid slugs (e.g. 'people', 'companies').
List all attributes of an object or list. Set target to 'objects' or 'lists' and targetid to the slug/ID. Use listobjects or list_lists to find valid IDs.
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 a single record by ID. Use listrecords or searchrecords to find valid record IDs.
Create a new record on an object. Use list_attributes to find writable attribute slugs and expected value formats.
Update an existing record's attribute values. Only provided attributes are updated. Use list_attributes to find writable attribute slugs.
Delete a record by ID. This action is irreversible. Use listrecords or searchrecords to find valid record IDs.
Upsert a record: create if no match exists, update if a record matches on the matchingattribute. Useful for deduplication (e.g. matchingattribute='email_addresses').
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 all tasks in the workspace with pagination. Tasks can be linked to records and assigned to workspace members.
Get a single task by ID. Use list_tasks to find valid task IDs.
Create a new task. Optionally link to records and assign to workspace members. Use listworkspacemembers to find valid assignee IDs.
Update a task's content, deadline, completion status, linked records, or assignees. Only provided fields are updated.
Delete a task by ID. This action is irreversible. Use list_tasks to find valid task IDs.
Validate Attio credentials by making a test API call. Returns success status and message.
List all webhooks registered in the workspace. Shows target URLs, subscriptions, and status.
Create a webhook to receive event notifications. Provide a target_url and subscriptions with event types (e.g. 'record.created', 'record.updated').
Delete a webhook by ID. This stops all event delivery to the webhook URL. Use list_webhooks to find valid IDs.
List all members of the Attio workspace. Returns names, emails, and access levels. Useful for finding assignee IDs for tasks.

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}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.
The use cases naturally depend on the agent you've built, but here are a few common ones:
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 recordcreate_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 routingupdate_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 CRMcreate_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 memberscreate_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 ticketcreate_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 targetingAttio has its own official MCP server, but Merge Agent Handler's gives revenue and data teams tighter control over how CRM data is accessed:
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.
Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now