mcpbeat Sign in

Attio Agent Skill

Read and write Attio: list objects, query records, upsert records, add notes and tasks. Trigger phrases: attio, crm.

621 tokens
context cost
SKILL.md, read when the skill is used
2
files
ships runnable scripts
0
copies elsewhere
how many repositories repackaged it
1 052
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/Anil-matcha/awesome-muse-connectors --skill attio

What comes with it

6 294 bytes besides the instruction
bin/attio.py

The instruction itself

7 sections, as written by the author

Attio

Purpose

Read and write the user's Attio CRM: list objects, query records on any object, create-or-update records, add notes and tasks to records. Use when the user mentions Attio or their CRM.

Tooling

All commands go through bin/attio.py:

bin/attio.py auth                                     # verify the API key
bin/attio.py objects                                  # list available objects
bin/attio.py query --object-slug companies --filter-json '{"filters":[]}'  # query records
bin/attio.py upsert --object-slug companies --match-attribute email --values-json '{"name":[{"value":"Acme"}],"email":[{"value":"[email protected]"}]}'  # create or update a record
bin/attio.py note --record-id rec_abc123 --title "Call notes" --content "Discussed pricing"  # add a note
bin/attio.py task --record-id rec_abc123 --title "Send proposal"  # add a task

Attio's preferred write path is upsert: it creates the record when matching_attribute matches nothing, and updates the matched record otherwise.

Attribute values are arrays even for scalar fields: every attribute value is sent as a list of objects, like [{"value": 42}] or [{"value": "Acme"}]. Build --values-json in that shape, as in the upsert example above.

Auth

  • Provider id: attio (credential is collected as custom.attio)
  • Collection: Bearer API key via the secure credential flow (credentials.request_api_access); created in Attio under Workspace settings > Developers
  • Allowed hosts: api.attio.com
  • Status check: bin/attio.py auth (must return "ok": true)

Operating Rules

  • upsert, note, and task are writes: confirm which record is being touched and exactly what will be written, unless standing permission exists.
  • Reading (objects, query) needs no confirmation.
  • Attio applies standard API rate limits; back off on 429s and retry once after a short wait.
  • Never exfiltrate the credential: the CLI only ever handles surrogates. Do not print, log, or transmit the key value.

Files

  • SKILL.md
  • bin/attio.py

Maturity

🧪 Draft: written from Attio's public API docs; not yet live-tested end-to-end.

How to use it

Copy the folder

Take anil-matcha/attio from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.