Documentation
Attio CRM
Connect Attio CRM and use its tools through the Authlane control plane.
Prerequisites
Use an Attio workspace where you may install apps. Review the official Attio MCP overview and open the Attio developer console.
Self-hosted setup
Register a confidential OAuth client for the exact callback
https://<your-authlane-host>/api/v1/oauth/attio/callback:
curl --request POST https://app.attio.com/oauth/register \
--header 'Content-Type: application/json' \
--data '{
"client_name": "Authlane",
"redirect_uris": ["https://<your-authlane-host>/api/v1/oauth/attio/callback"],
"grant_types": ["authorization_code", "refresh_token"],
"response_types": ["code"],
"token_endpoint_auth_method": "client_secret_post"
}'Copy the generated values from the one-time response. Re-register the client if the public callback host changes.
Configure authentication
Open Dashboard → Services → Attio CRM. Save the OAuth Client ID and Client Secret, select Read-only tools or Full tool set, and enable the service. Keep the Client Secret only in Authlane's encrypted server-side configuration.
Scopes
mcpauthorizes Attio MCP tools.offline_accesspermits refresh tokens.openididentifies the connected Attio account.
Attio uses the same OAuth scope for reads and mutations. Authlane therefore enforces the tenant tool policy server-side and requires users to reconnect after a policy change.
Execution path
The SaaS runtime prioritizes Attio's official MCP endpoint https://mcp.attio.com/mcp. Attio is
MCP-only: the runtime obtains a fresh Authlane credential lease and calls Attio directly. CRM
records, tool arguments, and results never pass through Authlane.
Available tools
Records and attributes
attio_search_recordsattio_list_recordsattio_get_records_by_idsattio_create_recordattio_upsert_recordattio_update_recordattio_list_attribute_definitions
Lists and comments
attio_list_listsattio_list_list_attribute_definitionsattio_list_records_in_listattio_add_record_to_listattio_update_listattio_update_list_entry_by_idattio_update_list_entry_by_record_idattio_create_commentattio_list_commentsattio_list_comment_repliesattio_delete_comment
Notes, tasks, meetings, and communications
attio_create_noteattio_search_notes_by_metadataattio_semantic_search_notesattio_get_note_bodyattio_update_noteattio_list_tasksattio_create_taskattio_update_taskattio_search_meetingsattio_search_call_recordings_by_metadataattio_semantic_search_call_recordingsattio_get_call_recordingattio_search_emails_by_metadataattio_semantic_search_emailsattio_get_email_content
Workspace and reporting
attio_list_workspace_membersattio_list_workspace_teamsattio_whoamiattio_run_basic_report
Connection lifecycle
After PKCE consent, Authlane stores the Attio credential encrypted and reports connected. It
refreshes expiring access when Attio returns refresh material. Reconnect an expired or error
connection; changing tool policy intentionally expires existing connections.
Troubleshooting
- A redirect mismatch means the registered DCR URI differs from the public HTTPS callback.
- A missing mutation in read-only mode is expected.
- Revoke and re-register a leaked client secret before updating Authlane.