
Kesslerio Attio Mcp Server
This connects Claude directly to your Attio CRM workspace through a universal tools architecture that handles companies, people, deals, tasks, lists, and notes. Instead of 40+ resource-specific tools, it consolidates operations into 19 universal actions with scoped write tools for high-frequency updates. You get full CRUD operations, batch processing, advanced filtering with AND/OR logic, and relationship navigation across all record types. Ships with Claude skills that teach your workspace's exact field names to prevent common errors. Best reached for when you want to query pipeline data, bulk update records, or automate CRM workflows through natural language without clicking through Attio's UI. ChatGPT integration works through a self-hosted Cloudflare Worker with OAuth.
- GitHub stars
- 68
- tools
- 34
- auth
- Required
- transport
- HTTP
- last updated
- Oct 7, 2025
Tools
34 toolsPublic tool metadata for what this MCP can expose to an agent.
create-commentCreates a new comment on a record, list entry, or as a reply to an existing comment thread. Provide exactly one of: (parent_object + parent_record_id) for records, (parent_list + parent_entry_id) for list entries, or (parent_comment_id) for replies. Email addresses in the cont...6 params
Creates a new comment on a record, list entry, or as a reply to an existing comment thread. Provide exactly one of: (parent_object + parent_record_id) for records, (parent_list + parent_entry_id) for list entries, or (parent_comment_id) for replies. Email addresses in the cont...
contentstringparent_comment_idstringparent_entry_idstringparent_liststringparent_objectstringparent_record_idstringadd-record-to-listAdd a record to a list as a new list entry. IMPORTANT: Before calling this tool: 1) You should call list-list-attribute-definitions for the target list to understand which entry attributes are available. 2) You should call list-records or search-records to find the record you...5 params
Add a record to a list as a new list entry. IMPORTANT: Before calling this tool: 1) You should call list-list-attribute-definitions for the target list to understand which entry attributes are available. 2) You should call list-records or search-records to find the record you...
allow_duplicatesbooleanentry_valuesobjectliststringparent_objectstringparent_record_idstringcreate-noteCreates a new note attached to a record. Returns the created note's ID.5 params
Creates a new note attached to a record. Returns the created note's ID.
contentstringmeeting_idstringparent_objectstringparent_record_idstringtitlestringcreate-recordCreate a new record in a given object. IMPORTANT: Before calling this tool, you should call list-attribute-definitions for the target object to understand which attributes are available, their types, whether they are required, and (for select/status fields) the valid options....2 params
Create a new record in a given object. IMPORTANT: Before calling this tool, you should call list-attribute-definitions for the target object to understand which attributes are available, their types, whether they are required, and (for select/status fields) the valid options....
objectstringvaluesobjectcreate-taskCreates a new task in Attio. Tasks can optionally have a deadline, an assignee (workspace member), and be linked to a record (e.g., a person or company). To assign to a workspace member, provide their workspace_member_id. To link to a record, provide both the object type (e.g....6 params
Creates a new task in Attio. Tasks can optionally have a deadline, an assignee (workspace member), and be linked to a record (e.g., a person or company). To assign to a workspace member, provide their workspace_member_id. To link to a record, provide both the object type (e.g....
assignee_workspace_member_idstringcontentstringdeadline_atstringis_completedbooleanlinked_record_idstringlinked_record_objectstringdelete-commentDeletes a comment. You can only delete comments that you created. Deleting a parent comment will also delete all of its replies.1 params
Deletes a comment. You can only delete comments that you created. Deleting a parent comment will also delete all of its replies.
comment_idstringget-call-recordingRetrieves the full details of a call recording by ID, including its status, timestamps, and complete transcript.2 params
Retrieves the full details of a call recording by ID, including its status, timestamps, and complete transcript.
call_recording_idstringmeeting_idstringget-email-contentRetrieves the full content/body of an email. Requires the mailbox_id and email_header_id, which can be obtained from email search results.2 params
Retrieves the full content/body of an email. Requires the mailbox_id and email_header_id, which can be obtained from email search results.
email_idstringmailbox_idstringget-note-bodyGet the body of a note by its ID1 params
Get the body of a note by its ID
note_idstringget-records-by-idsRetrieve a given set of records by their IDs for a given object. Returns an array of records with their attribute values. If a record is not found, it will not be included in the response.2 params
Retrieve a given set of records by their IDs for a given object. Returns an array of records with their attribute values. If a record is not found, it will not be included in the response.
objectstringrecord_idsarraylist-attribute-definitionsList attribute definitions for a given object5 params
List attribute definitions for a given object
include_archivedbooleanlimitnumberobjectstringoffsetnumberqueryvaluelist-comment-repliesLists replies to a comment. Provide the comment_id of a top-level comment to fetch its replies. Cannot be used with reply comments - only top-level comments that were created on records or list entries. All replies in a thread use the same parent comment ID.3 params
Lists replies to a comment. Provide the comment_id of a top-level comment to fetch its replies. Cannot be used with reply comments - only top-level comments that were created on records or list entries. All replies in a thread use the same parent comment ID.
comment_idstringlimitnumberoffsetnumberlist-commentsLists comments on a record or list entry. Returns paginated top-level comments with up to 5 replies each. If a thread has more replies, use "list-comment-replies" to fetch additional replies. Provide either (parent_object and parent_record_id) to list comments on a record, or...6 params
Lists comments on a record or list entry. Returns paginated top-level comments with up to 5 replies each. If a thread has more replies, use "list-comment-replies" to fetch additional replies. Provide either (parent_object and parent_record_id) to list comments on a record, or...
limitnumberoffsetnumberparent_entry_idstringparent_liststringparent_objectstringparent_record_idstringlist-list-attribute-definitionsList attribute definitions for a given list5 params
List attribute definitions for a given list
include_archivedbooleanlimitnumberliststringoffsetnumberqueryvaluelist-listsList all lists in the Attio workspace. Returns list metadata including ID, name, API slug, and parent object types. Use the query parameter to filter by name or slug.3 params
List all lists in the Attio workspace. Returns list metadata including ID, name, API slug, and parent object types. Use the query parameter to filter by name or slug.
limitnumberoffsetnumberquerystringlist-records-in-listList entries in a given list with optional filtering and sorting. Returns paginated results. Use this tool to retrieve entries within a list that match specific criteria. You can filter on attributes using comparison operators, combine filters with AND/OR logic, and sort resul...5 params
List entries in a given list with optional filtering and sorting. Returns paginated results. Use this tool to retrieve entries within a list that match specific criteria. You can filter on attributes using comparison operators, combine filters with AND/OR logic, and sort resul...
filtervaluelimitnumberliststringoffsetnumbersortsarraylist-recordsList records in a given object with optional filtering and sorting. Returns paginated results. Use this tool to retrieve records that match specific criteria. You can filter on attributes using comparison operators, combine filters with AND/OR logic, and sort results by attrib...5 params
List records in a given object with optional filtering and sorting. Returns paginated results. Use this tool to retrieve records that match specific criteria. You can filter on attributes using comparison operators, combine filters with AND/OR logic, and sort results by attrib...
filtervaluelimitnumberobjectstringoffsetnumbersortsarraylist-tasksLists tasks in the workspace with optional filters. Returns paginated results with task content, completion status, assignees, linked records, and deadlines. Use to find tasks by assignee, completion status, linked record, or date ranges.12 params
Lists tasks in the workspace with optional filters. Returns paginated results with task content, completion status, assignees, linked records, and deadlines. Use to find tasks by assignee, completion status, linked record, or date ranges.
assignee_workspace_member_idvaluecreated_at_gtestringcreated_at_ltestringdeadline_at_gtestringdeadline_at_ltestringis_completedbooleanlimitnumberlinked_record_idstringlinked_record_objectstringoffsetnumbersort_bystringcreated_at · deadline_atdefault: deadline_atsort_directionstringasc · descdefault: asclist-workspace-membersList members in the Attio workspace. Returns a list of matching members with their ID, email address, name, access level, and team memberships. Use the query parameter to filter by name, email, or team.2 params
List members in the Attio workspace. Returns a list of matching members with their ID, email address, name, access level, and team memberships. Use the query parameter to filter by name, email, or team.
include_suspendedbooleanquerystringlist-workspace-teamsList teams in the workspace. Teams are groups of workspace members used primarily for permission management. Returns an array of teams, each with: workspace_team_id, name, description, is_archived, created_at, and members (array of {name, email}).1 params
List teams in the workspace. Teams are groups of workspace members used primarily for permission management. Returns an array of teams, each with: workspace_team_id, name, description, is_archived, created_at, and members (array of {name, email}).
include_archivedbooleanrun-basic-reportRun an aggregate report on records in an object or entries in a list. Use this tool when you need totals, averages, minimums, maximums, or grouped breakdowns. How to use: 1. Pick a source object/list via slug or UUID. 2. Choose a metric: - {"type":"count"} for counting records...4 params
Run an aggregate report on records in an object or entries in a list. Use this tool when you need totals, averages, minimums, maximums, or grouped breakdowns. How to use: 1. Pick a source object/list via slug or UUID. 2. Choose a metric: - {"type":"count"} for counting records...
filtervaluegroup_byarraymetricvaluesourcestringsearch-call-recordings-by-metadataSearches all call recordings across the workspace by their metadata. Useful for finding call recordings based on who was on the call (workspace members or person records), related records (e.g., companies or deals), meeting title, and time range. Returns paginated results orde...9 params
Searches all call recordings across the workspace by their metadata. Useful for finding call recordings based on who was on the call (workspace members or person records), related records (e.g., companies or deals), meeting title, and time range. Returns paginated results orde...
limitnumbermeeting_title_querystringoffsetnumberrelated_record_idsarrayrelated_record_objectstringspeaker_person_record_idsarrayspeaker_workspace_member_idsarraystarts_afterstringstarts_beforestringsearch-emails-by-metadataSearches emails visible to the user by their metadata. Useful for finding emails based on participants, domain, and time range. Returns paginated results ordered by sent time (most recent first). Uses limit/offset pagination. When both domain and participant_email_addresses ar...6 params
Searches emails visible to the user by their metadata. Useful for finding emails based on participants, domain, and time range. Returns paginated results ordered by sent time (most recent first). Uses limit/offset pagination. When both domain and participant_email_addresses ar...
domainstringlimitnumberoffsetnumberparticipant_email_addressesarraysent_at_gtstringsent_at_ltstringsearch-meetingsSearch across past and future meetings in the workspace. Returns paginated results with meeting metadata and associated call recording IDs. Useful for finding meetings based on participants, related records, and time range. Results are split into past_meetings (sorted by start...10 params
Search across past and future meetings in the workspace. Returns paginated results with meeting metadata and associated call recording IDs. Useful for finding meetings based on participants, related records, and time range. Results are split into past_meetings (sorted by start...
limitnumberoffsetnumberparticipant_email_addressesarrayparticipant_email_addresses_operatorstringAND · ORdefault: ORrelated_record_idsarrayrelated_record_objectstringrelated_records_operatorstringAND · ORdefault: ANDstarts_afterstringstarts_beforestringtimezonestringsearch-notes-by-metadataSearches for notes by their metadata. Useful for finding notes based on parent record, meeting, author (workspace member), and creation time. Returns paginated results ordered by creation date (most recent first). Uses limit/offset pagination.8 params
Searches for notes by their metadata. Useful for finding notes based on parent record, meeting, author (workspace member), and creation time. Returns paginated results ordered by creation date (most recent first). Uses limit/offset pagination.
created_at_gtstringcreated_at_ltstringlimitnumbermeeting_idstringoffsetnumberparent_record_idstringparent_record_objectstringworkspace_membership_idstringsearch-recordsPerform a full-text search for records in a given object. Only searches indexed attributes: domains, email addresses, phone numbers, name/title, description, social handles, and location. Returns paginated results.4 params
Perform a full-text search for records in a given object. Only searches indexed attributes: domains, email addresses, phone numbers, name/title, description, social handles, and location. Returns paginated results.
limitnumberobjectstringoffsetnumberquerystringsemantic-search-call-recordingsSearches all call recordings across the workspace using semantic similarity. Returns call recordings that are most semantically similar to the query, even if the exact keywords are not present in the transcript. Useful for finding calls where a specific topic was discussed. Se...1 params
Searches all call recordings across the workspace using semantic similarity. Returns call recordings that are most semantically similar to the query, even if the exact keywords are not present in the transcript. Useful for finding calls where a specific topic was discussed. Se...
querystringsemantic-search-emailsSearches emails visible to the user using semantic similarity. Returns up to 20 emails that are most semantically similar to the query, even if exact keywords are not present. Useful for finding emails where a specific topic was discussed. Returns email metadata only (ID, subj...2 params
Searches emails visible to the user using semantic similarity. Returns up to 20 emails that are most semantically similar to the query, even if exact keywords are not present. Useful for finding emails where a specific topic was discussed. Returns email metadata only (ID, subj...
include_emails_of_othersbooleanquerystringsemantic-search-notesSearches all notes across the workspace using semantic similarity. Returns up to 20 notes that are most semantically similar to the query, even if the exact keywords are not present in the note. Useful for finding notes where a specific topic was discussed. Returns note metada...1 params
Searches all notes across the workspace using semantic similarity. Returns up to 20 notes that are most semantically similar to the query, even if the exact keywords are not present in the note. Useful for finding notes where a specific topic was discussed. Returns note metada...
querystringupdate-listUpdate a list's name or API slug3 params
Update a list's name or API slug
api_slugstringliststringnamestringupdate-recordUse this tool to update people, companies, and other records by `record_id`.4 params
Use this tool to update people, companies, and other records by `record_id`.
objectstringpatch_multiselect_valuesbooleanrecord_idstringvaluesobjectupdate-taskUpdates an existing task in Attio. You can update the deadline, completion status, assignee, and linked record. To update the assignee, provide their workspace_member_id. To update the linked record, provide both the object type (e.g., "people", "companies") and the record_id...6 params
Updates an existing task in Attio. You can update the deadline, completion status, assignee, and linked record. To update the assignee, provide their workspace_member_id. To update the linked record, provide both the object type (e.g., "people", "companies") and the record_id...
assignee_workspace_member_idstringdeadline_atstringis_completedbooleanlinked_record_idstringlinked_record_objectstringtask_idstringupsert-recordUse this tool to create or update people, companies and other records. A matching attribute is used to search for existing records. If a record is found with the same value for the `matching_attribute`, that record will be updated. If no record with the same value for the `mat...4 params
Use this tool to create or update people, companies and other records. A matching attribute is used to search for existing records. If a record is found with the same value for the `matching_attribute`, that record will be updated. If no record with the same value for the `mat...
matching_attributestringobjectstringpatch_multiselect_valuesbooleanvaluesobjectwhoamiReturns information about the current user's identity and workspace membership, including their email, name, workspace member ID, access level, and workspace name.
Returns information about the current user's identity and workspace membership, including their email, name, workspace member ID, access level, and workspace name.
No parameter schema in public metadata yet.
Sponsors
Readme
Attio MCP Server
A comprehensive Model Context Protocol (MCP) server for Attio, providing complete CRM surface coverage. This server enables AI assistants like Claude and ChatGPT to interact directly with your entire Attio workspace through natural language—manage Deals, Tasks, Lists, People, Companies, Records, and Notes without falling back to raw API calls.
Details
- Repository
- github.com/kesslerio/attio-mcp-server
- Categories
- Sales & Marketing, Finance & Commerce
- Transport
- HTTP
- Auth
- Required
- Registry
- MCP registry, active
