// connections

Attio

Query, create and update Attio records and list entries, and work with notes, tasks, comments, meetings, call recordings, files and webhooks. Connect with an Attio access token.

38 mcp tools87 operations
rest
https://api.superagnt.com/v1/connections/attio plus the vendor's own path, with your superagnt_ API key as Authorization: Bearer.
mcp
Tools named connection_attio_* on https://mcp.superagnt.com/mcp, served once the account is connected.
billing
Attio bills your own account. Calls cost no superagnt_ data credits.
rate limit
100 requests a second, 6,000 a minute: the vendor's ceiling as the registry records it, for sizing bursts. Your plan's own limit is on Connections.

The Attio connection lets an agent work your Attio CRM. It queries and searches records of any object (people, companies, deals and custom objects), creates, upserts and updates them, adds records to lists, reads and changes objects, lists, attributes, select options and statuses, writes notes, tasks and comments, logs meetings and their call recordings, manages files on records, and registers webhooks.

01

Setup

  1. Create an access token. In your Attio workspace settings, create an access token with the scopes your agents need, read or read-write.
  2. Connect Attio. In the superagnt app open Integrations, pick Attio, paste the token into API key and press Connect.

Records need record_permission and object_configuration, list entries need list_entry and list_configuration, and workspace members (and tasks) need user_management. Notes, tasks, comments, meetings, call recordings, files and webhooks each have a scope of their own (note, task, comment, meeting, call_recording, file, webhook). connection_attio_workspace_read action identify shows the workspace the token belongs to and the scopes it carries.

02

Things to know

  • An object is named by its slug or id: people, companies, deals, or a custom object's api_slug. Lists take a list's api_slug or id.
  • Record writes send data.values, keyed by attribute api_slug or id. connection_attio_attributes_read lists an object's attributes with the slug and type each value needs.
  • On connection_attio_records_write, update adds to multiselect values and overwrite replaces them.
  • upsert matches on a unique attribute you name in matching_attribute, such as domains on companies or email_addresses on people. It updates the match, or creates a record when there is none.
  • query takes a filter in Attio's filter syntax ($and, $or, operators such as $contains) and sorts. It returns up to limit records (500 by default) and pages with offset.
  • search is a fuzzy match across the objects you list (at least one), up to 25 results: names, domains, emails, phone numbers and social handles on people and companies, and labels on other objects. Its results can lag behind recent changes: use query when they must be current.
  • A list entry carries the list's own attribute values. Removing a record from a list deletes the entry and keeps the record.
  • Deleting a thread's first comment deletes the whole thread.
  • A webhook's secret, which signs its events, appears only in the response that creates the webhook. Keep it then.
  • Every delete always asks a person first by default, and SCIM user and group changes ask. Everything else runs without asking (Permissions).

03

Examples

Check the token

workspace and scopesbash
curl "https://api.superagnt.com/v1/connections/attio/v2/self" \
  -H "Authorization: Bearer $AGNTDATA_API_KEY"

Query people

filter people by namebash
curl -X POST "https://api.superagnt.com/v1/connections/attio/v2/objects/people/records/query" \
  -H "Authorization: Bearer $AGNTDATA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"filter": {"name": "Ada Lovelace"}, "limit": 10}'

Upsert a company by domain

create or update a companybash
curl -X PUT "https://api.superagnt.com/v1/connections/attio/v2/objects/companies/records?matching_attribute=domains" \
  -H "Authorization: Bearer $AGNTDATA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "data": {
      "values": {
        "domains": [{"domain": "example.com"}],
        "name": "Example Inc"
      }
    }
  }'
04// mcp tools

38 tools, one per resource and risk

MCP servers and agents on the grouped surface list Attio as these tools. Each takes an action, and the ones that work across record types an object. Every operation also keeps its own per-operation name, in the next table, which works on every server. How grouping works: Grouped tools.

ToolRiskActions
connection_attio_records_read

Find and read Attio records

Find and read records of any Attio object (people, companies, deals, or a custom object by api_slug): query one object with a filter such as { "name": "Ada Lovelace" } (Attio filter syntax, with $and, $or and operators such as $contains), fuzzy-search across objects, get a record, read one attribute's values, or list the list entries a record has.

read
querysearchgetattribute_valueslist_entries
connection_attio_records_write

Create and update Attio records

Create, upsert or update a record of any Attio object (people, companies, deals, or a custom object by api_slug). Every action takes object and data: { "values": { <attribute api_slug or id>: value or [values] } }; read an object's attributes with connection_attio_attributes_read.

write
createupsertupdateoverwrite
connection_attio_records_delete

Delete an Attio record

Permanently delete a record of any Attio object. object takes an api_slug or id.

destructive
delete
connection_attio_entries_read

Read Attio list entries

Read the entries of an Attio list (the records added to it, with the list's own attribute values): query a list with a filter and sorts, get one entry, or read one entry attribute's values. list is the list's api_slug or id.

read
querygetattribute_values
connection_attio_entries_write

Add records to Attio lists

Add a record to an Attio list (list is its api_slug or id), or update a list entry's values. add and upsert take data: { "parent_record_id", "parent_object", "entry_values": { <attribute api_slug>: value } }; update and overwrite take data: { "entry_values" } for one entry_id.

write
addupsertupdateoverwrite
connection_attio_entries_delete

Remove a record from an Attio list

Remove a record from a list by deleting its entry; the record itself is kept. list takes an api_slug or id.

destructive
delete
connection_attio_objects_read

Read Attio objects

List and get the workspace's objects (people, companies, deals and custom objects), and the saved views of one.

read
listgetlist_views
connection_attio_objects_write

Create and update Attio objects

Create a custom object, or change an object's api_slug or nouns.

write
createupdate
connection_attio_lists_read

Read Attio lists

List and get the workspace's lists, and the saved views of one.

read
listgetlist_views
connection_attio_lists_write

Create and update Attio lists

Create a list of one object's records, or change its name, api_slug or access.

write
createupdate
connection_attio_attributes_read

Read Attio attributes

List and get the attributes of an object or list: the api_slug and type each value needs. target is "objects" or "lists"; identifier is that object's or list's api_slug or id.

read
listget
connection_attio_attributes_write

Create and update Attio attributes

Add an attribute to an object or list, or change one (an update also takes is_archived). target is "objects" or "lists"; identifier is that object's or list's api_slug or id.

write
createupdate
connection_attio_select_options_read

Read Attio select options

List the options of a select attribute. target is "objects" or "lists"; identifier is that object's or list's api_slug or id.

read
list
connection_attio_select_options_write

Add and update Attio select options

Add an option to a select attribute, or rename or archive one. target is "objects" or "lists"; identifier is that object's or list's api_slug or id.

write
createupdate
connection_attio_statuses_read

Read Attio statuses

List the statuses of a status attribute (a deal stage, say). target is "objects" or "lists"; identifier is that object's or list's api_slug or id.

read
list
connection_attio_statuses_write

Add and update Attio statuses

Add a status to a status attribute, or change or archive one. target is "objects" or "lists"; identifier is that object's or list's api_slug or id.

write
createupdate
connection_attio_workspace_read

Read Attio workspace members

List or get the workspace's members (their ids are what task assignees, comment authors and list access take), or identify the connected token, its workspace and scopes.

read
list_membersget_memberidentify
connection_attio_notes_read

Read Attio notes

List notes (all, or those on one record), or get one.

read
listget
connection_attio_notes_write

Create an Attio note

Create a note on a record, in plaintext or markdown.

write
create
connection_attio_notes_delete

Delete an Attio note

Permanently delete a note.

destructive
delete
connection_attio_tasks_read

Read Attio tasks

List tasks (by linked record, assignee or completion), or get one.

read
listget
connection_attio_tasks_write

Create and update Attio tasks

Create a task, or change its deadline, completion, linked records or assignees. Assignees are [{ "referenced_actor_type": "workspace-member", "referenced_actor_id" }]; linked_records are [{ "target_object", "target_record_id" }].

write
createupdate
connection_attio_tasks_delete

Delete an Attio task

Permanently delete a task.

destructive
delete
connection_attio_threads_read

Read Attio comment threads

List the comment threads on a record or list entry, or get one with its comments.

read
listget
connection_attio_comments_read

Read an Attio comment

Get one comment.

read
get
connection_attio_comments_write

Comment in Attio

Comment on a record, a list entry or a thread. The author is { "type": "workspace-member", "id" }; a record is { "object", "record_id" }, an entry { "list", "entry_id" }.

write
create
connection_attio_comments_delete

Delete an Attio comment

Permanently delete a comment; deleting a thread's first comment deletes the thread.

destructive
delete
connection_attio_meetings_read

Read Attio meetings

List meetings (all, or those linked to one record), or get one.

read
listget
connection_attio_meetings_write

Log an Attio meeting

Find or create a meeting, matched on external_ref.

write
find_or_create
connection_attio_call_recordings_read

Read Attio call recordings

List and get the call recordings of a meeting, and read a recording's transcript.

read
listgetget_transcript
connection_attio_call_recordings_write

Attach an Attio call recording

Attach a call recording to a meeting from a public video URL.

write
create
connection_attio_call_recordings_delete

Delete an Attio call recording

Permanently delete a call recording.

destructive
delete
connection_attio_files_read

Read Attio files

List the files and folders on a record, get one, or download it.

read
listgetdownload
connection_attio_files_write

Add Attio files

Create a folder (or link a file from a connected storage provider) on a record, or upload a file to it.

write
create_folderupload
connection_attio_files_delete

Delete an Attio file

Permanently delete a file, or a folder with its contents.

destructive
delete
connection_attio_webhooks_read

Read Attio webhooks

List the workspace's webhooks or get one, with its target URL and event subscriptions.

read
listget
connection_attio_webhooks_write

Create and update Attio webhooks

Create a webhook, or change its target URL or subscriptions: data is { "target_url": "https://…", "subscriptions": [{ "event_type" (such as "record.created" or "list-entry.updated"), "filter": null or { "$and" or "$or": [{ "field", "operator", "value" }] } }] }.

write
createupdate
connection_attio_webhooks_delete

Delete an Attio webhook

Permanently delete a webhook.

destructive
delete
05// operations

All 87 operations

Each operation is a REST path under https://api.superagnt.com/v1/connections/attio and an MCP tool. The per-operation tool name is the one permissions, approvals and usage records use.

OperationMCP tool
GET/v2/objects

List objects

connection_attio_get_v2_objectsgrouped: connection_attio_objects_read, action list
POST/v2/objects

Create an object

connection_attio_post_v2_objectsgrouped: connection_attio_objects_write, action create
GET/v2/objects/{object}

Get an object

connection_attio_get_v2_objects_object_grouped: connection_attio_objects_read, action get
PATCH/v2/objects/{object}

Update an object

connection_attio_patch_v2_objects_object_grouped: connection_attio_objects_write, action update
GET/v2/objects/{object}/views

List views for object

connection_attio_get_v2_objects_object_viewsgrouped: connection_attio_objects_read, action list_views
GET/v2/{target}/{identifier}/attributes

List attributes

connection_attio_get_v2_target_identifier_attributesgrouped: connection_attio_attributes_read, action list
POST/v2/{target}/{identifier}/attributes

Create an attribute

connection_attio_post_v2_target_identifier_attributesgrouped: connection_attio_attributes_write, action create
GET/v2/{target}/{identifier}/attributes/{attribute}

Get an attribute

connection_attio_get_v2_target_identifier_attributes_attribute_grouped: connection_attio_attributes_read, action get
PATCH/v2/{target}/{identifier}/attributes/{attribute}

Update an attribute

connection_attio_patch_v2_target_identifier_attributes_15e2ead2grouped: connection_attio_attributes_write, action update
GET/v2/{target}/{identifier}/attributes/{attribute}/options

List select options

connection_attio_get_v2_target_identifier_attributes_at_cd22e2ebgrouped: connection_attio_select_options_read, action list
POST/v2/{target}/{identifier}/attributes/{attribute}/options

Create a select option

connection_attio_post_v2_target_identifier_attributes_a_b00b2f11grouped: connection_attio_select_options_write, action create
PATCH/v2/{target}/{identifier}/attributes/{attribute}/options/{option}

Update a select option

connection_attio_patch_v2_target_identifier_attributes_cf95d811grouped: connection_attio_select_options_write, action update
GET/v2/{target}/{identifier}/attributes/{attribute}/statuses

List statuses

connection_attio_get_v2_target_identifier_attributes_at_d6fb136bgrouped: connection_attio_statuses_read, action list
POST/v2/{target}/{identifier}/attributes/{attribute}/statuses

Create a status

connection_attio_post_v2_target_identifier_attributes_a_73694f50grouped: connection_attio_statuses_write, action create
PATCH/v2/{target}/{identifier}/attributes/{attribute}/statuses/{status}

Update a status

connection_attio_patch_v2_target_identifier_attributes_ab1fbab4grouped: connection_attio_statuses_write, action update
POST/v2/objects/{object}/records/query

List records

connection_attio_post_v2_objects_object_records_querygrouped: connection_attio_records_read, action query
POST/v2/objects/{object}/records

Create a record

connection_attio_post_v2_objects_object_recordsgrouped: connection_attio_records_write, action create
PUT/v2/objects/{object}/records

Assert a record

connection_attio_put_v2_objects_object_recordsgrouped: connection_attio_records_write, action upsert
GET/v2/objects/{object}/records/{record_id}

Get a record

connection_attio_get_v2_objects_object_records_record_id_grouped: connection_attio_records_read, action get
PUT/v2/objects/{object}/records/{record_id}

Update a record (overwrite multiselect values)

connection_attio_put_v2_objects_object_records_record_id_grouped: connection_attio_records_write, action overwrite
PATCH/v2/objects/{object}/records/{record_id}

Update a record (append multiselect values)

connection_attio_patch_v2_objects_object_records_record_id_grouped: connection_attio_records_write, action update
DELETE/v2/objects/{object}/records/{record_id}

Delete a record

connection_attio_delete_v2_objects_object_records_record_id_grouped: connection_attio_records_delete, action delete
GET/v2/objects/{object}/records/{record_id}/attributes/{attribute}/values

List record attribute values

connection_attio_get_v2_objects_object_records_record_i_acf082e7grouped: connection_attio_records_read, action attribute_values
GET/v2/objects/{object}/records/{record_id}/entries

List record entries

connection_attio_get_v2_objects_object_records_record_id_entriesgrouped: connection_attio_records_read, action list_entries
POST/v2/objects/records/search

Search records

connection_attio_post_v2_objects_records_searchgrouped: connection_attio_records_read, action search
GET/v2/lists

List all lists

connection_attio_get_v2_listsgrouped: connection_attio_lists_read, action list
POST/v2/lists

Create a list

connection_attio_post_v2_listsgrouped: connection_attio_lists_write, action create
GET/v2/lists/{list}

Get a list

connection_attio_get_v2_lists_list_grouped: connection_attio_lists_read, action get
PATCH/v2/lists/{list}

Update a list

connection_attio_patch_v2_lists_list_grouped: connection_attio_lists_write, action update
GET/v2/lists/{list}/views

List views for list

connection_attio_get_v2_lists_list_viewsgrouped: connection_attio_lists_read, action list_views
POST/v2/lists/{list}/entries/query

List entries

connection_attio_post_v2_lists_list_entries_querygrouped: connection_attio_entries_read, action query
POST/v2/lists/{list}/entries

Create an entry (add record to list)

connection_attio_post_v2_lists_list_entriesgrouped: connection_attio_entries_write, action add
PUT/v2/lists/{list}/entries

Assert a list entry by parent

connection_attio_put_v2_lists_list_entriesgrouped: connection_attio_entries_write, action upsert
GET/v2/lists/{list}/entries/{entry_id}

Get a list entry

connection_attio_get_v2_lists_list_entries_entry_id_grouped: connection_attio_entries_read, action get
PUT/v2/lists/{list}/entries/{entry_id}

Update a list entry (overwrite multiselect values)

connection_attio_put_v2_lists_list_entries_entry_id_grouped: connection_attio_entries_write, action overwrite
PATCH/v2/lists/{list}/entries/{entry_id}

Update a list entry (append multiselect values)

connection_attio_patch_v2_lists_list_entries_entry_id_grouped: connection_attio_entries_write, action update
DELETE/v2/lists/{list}/entries/{entry_id}

Delete a list entry

connection_attio_delete_v2_lists_list_entries_entry_id_grouped: connection_attio_entries_delete, action delete
GET/v2/lists/{list}/entries/{entry_id}/attributes/{attribute}/values

List attribute values for a list entry

connection_attio_get_v2_lists_list_entries_entry_id_att_6a1d6ba2grouped: connection_attio_entries_read, action attribute_values
GET/v2/workspace_members

List workspace members

connection_attio_get_v2_workspace_membersgrouped: connection_attio_workspace_read, action list_members
GET/v2/workspace_members/{workspace_member_id}

Get a workspace member

connection_attio_get_v2_workspace_members_workspace_member_id_grouped: connection_attio_workspace_read, action get_member
GET/v2/notes

List notes

connection_attio_get_v2_notesgrouped: connection_attio_notes_read, action list
POST/v2/notes

Create a note

connection_attio_post_v2_notesgrouped: connection_attio_notes_write, action create
GET/v2/notes/{note_id}

Get a note

connection_attio_get_v2_notes_note_id_grouped: connection_attio_notes_read, action get
DELETE/v2/notes/{note_id}

Delete a note

connection_attio_delete_v2_notes_note_id_grouped: connection_attio_notes_delete, action delete
GET/v2/tasks

List tasks

connection_attio_get_v2_tasksgrouped: connection_attio_tasks_read, action list
POST/v2/tasks

Create a task

connection_attio_post_v2_tasksgrouped: connection_attio_tasks_write, action create
GET/v2/tasks/{task_id}

Get a task

connection_attio_get_v2_tasks_task_id_grouped: connection_attio_tasks_read, action get
PATCH/v2/tasks/{task_id}

Update a task

connection_attio_patch_v2_tasks_task_id_grouped: connection_attio_tasks_write, action update
DELETE/v2/tasks/{task_id}

Delete a task

connection_attio_delete_v2_tasks_task_id_grouped: connection_attio_tasks_delete, action delete
GET/v2/threads

List threads

connection_attio_get_v2_threadsgrouped: connection_attio_threads_read, action list
GET/v2/threads/{thread_id}

Get a thread

connection_attio_get_v2_threads_thread_id_grouped: connection_attio_threads_read, action get
POST/v2/comments

Create a comment

connection_attio_post_v2_commentsgrouped: connection_attio_comments_write, action create
GET/v2/comments/{comment_id}

Get a comment

connection_attio_get_v2_comments_comment_id_grouped: connection_attio_comments_read, action get
DELETE/v2/comments/{comment_id}

Delete a comment

connection_attio_delete_v2_comments_comment_id_grouped: connection_attio_comments_delete, action delete
GET/v2/meetings

List meetings

connection_attio_get_v2_meetingsgrouped: connection_attio_meetings_read, action list
POST/v2/meetings

Find or create a meeting

connection_attio_post_v2_meetingsgrouped: connection_attio_meetings_write, action find_or_create
GET/v2/meetings/{meeting_id}

Get a meeting

connection_attio_get_v2_meetings_meeting_id_grouped: connection_attio_meetings_read, action get
GET/v2/meetings/{meeting_id}/call_recordings

List call recordings

connection_attio_get_v2_meetings_meeting_id_call_recordingsgrouped: connection_attio_call_recordings_read, action list
POST/v2/meetings/{meeting_id}/call_recordings

Create call recording

connection_attio_post_v2_meetings_meeting_id_call_recordingsgrouped: connection_attio_call_recordings_write, action create
GET/v2/meetings/{meeting_id}/call_recordings/{call_recording_id}

Get call recording

connection_attio_get_v2_meetings_meeting_id_call_record_9b0af06bgrouped: connection_attio_call_recordings_read, action get
DELETE/v2/meetings/{meeting_id}/call_recordings/{call_recording_id}

Delete call recording

connection_attio_delete_v2_meetings_meeting_id_call_rec_14d518d9grouped: connection_attio_call_recordings_delete, action delete
GET/v2/meetings/{meeting_id}/call_recordings/{call_recording_id}/transcript

Get call transcript

connection_attio_get_v2_meetings_meeting_id_call_record_fad14c7dgrouped: connection_attio_call_recordings_read, action get_transcript
GET/v2/files

List files

connection_attio_get_v2_filesgrouped: connection_attio_files_read, action list
POST/v2/files

Create a folder

connection_attio_post_v2_filesgrouped: connection_attio_files_write, action create_folder
POST/v2/files/upload

Upload a file

connection_attio_post_v2_files_uploadgrouped: connection_attio_files_write, action upload
GET/v2/files/{file_id}

Get a file

connection_attio_get_v2_files_file_id_grouped: connection_attio_files_read, action get
DELETE/v2/files/{file_id}

Delete a file

connection_attio_delete_v2_files_file_id_grouped: connection_attio_files_delete, action delete
GET/v2/files/{file_id}/download

Download a file

connection_attio_get_v2_files_file_id_downloadgrouped: connection_attio_files_read, action download
GET/scim/v2/Schemas

List SCIM schemas

connection_attio_get_scim_v2_schemasnot listed on grouped servers; call it by this name
GET/scim/v2/Users

List SCIM users

connection_attio_get_scim_v2_usersnot listed on grouped servers; call it by this name
POST/scim/v2/Users

Create SCIM user

connection_attio_post_scim_v2_usersnot listed on grouped servers; call it by this name
GET/scim/v2/Groups

List SCIM groups

connection_attio_get_scim_v2_groupsnot listed on grouped servers; call it by this name
POST/scim/v2/Groups

Create SCIM group

connection_attio_post_scim_v2_groupsnot listed on grouped servers; call it by this name
GET/scim/v2/Users/{user_id}

Get SCIM user

connection_attio_get_scim_v2_users_user_id_not listed on grouped servers; call it by this name
PUT/scim/v2/Users/{user_id}

Update SCIM user

connection_attio_put_scim_v2_users_user_id_not listed on grouped servers; call it by this name
PATCH/scim/v2/Users/{user_id}

Patch SCIM user

connection_attio_patch_scim_v2_users_user_id_not listed on grouped servers; call it by this name
DELETE/scim/v2/Users/{user_id}

Delete SCIM user

connection_attio_delete_scim_v2_users_user_id_not listed on grouped servers; call it by this name
GET/scim/v2/Groups/{workspace_team_id}

Get SCIM group

connection_attio_get_scim_v2_groups_workspace_team_id_not listed on grouped servers; call it by this name
PUT/scim/v2/Groups/{workspace_team_id}

Update SCIM group

connection_attio_put_scim_v2_groups_workspace_team_id_not listed on grouped servers; call it by this name
PATCH/scim/v2/Groups/{workspace_team_id}

Patch SCIM group

connection_attio_patch_scim_v2_groups_workspace_team_id_not listed on grouped servers; call it by this name
DELETE/scim/v2/Groups/{workspace_team_id}

Delete SCIM group

connection_attio_delete_scim_v2_groups_workspace_team_id_not listed on grouped servers; call it by this name
GET/v2/webhooks

List webhooks

connection_attio_get_v2_webhooksgrouped: connection_attio_webhooks_read, action list
POST/v2/webhooks

Create a webhook

connection_attio_post_v2_webhooksgrouped: connection_attio_webhooks_write, action create
GET/v2/webhooks/{webhook_id}

Get a webhook

connection_attio_get_v2_webhooks_webhook_id_grouped: connection_attio_webhooks_read, action get
PATCH/v2/webhooks/{webhook_id}

Update a webhook

connection_attio_patch_v2_webhooks_webhook_id_grouped: connection_attio_webhooks_write, action update
DELETE/v2/webhooks/{webhook_id}

Delete a webhook

connection_attio_delete_v2_webhooks_webhook_id_grouped: connection_attio_webhooks_delete, action delete
GET/v2/self

Identify

connection_attio_get_v2_selfgrouped: connection_attio_workspace_read, action identify