From 224cf32403e87457ac16b4f77f835f59d5f00a9f Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Tue, 8 Sep 2026 22:44:33 +0000 Subject: [PATCH] feat(attio): add Attio third-party MCP plugin Package Attio's official hosted MCP (https://mcp.attio.com/mcp) as a marketplace plugin with OAuth user login and no API keys. Co-authored-by: Sam Sokolin --- .cursor-plugin/marketplace.json | 5 ++ README.md | 1 + third_party/attio/.cursor-plugin/plugin.json | 35 ++++++++++ third_party/attio/CHANGELOG.md | 9 +++ third_party/attio/LICENSE | 21 ++++++ third_party/attio/README.md | 68 +++++++++++++++++++ third_party/attio/assets/logo.png | Bin 0 -> 7527 bytes third_party/attio/mcp.json | 8 +++ 8 files changed, 147 insertions(+) create mode 100644 third_party/attio/.cursor-plugin/plugin.json create mode 100644 third_party/attio/CHANGELOG.md create mode 100644 third_party/attio/LICENSE create mode 100644 third_party/attio/README.md create mode 100644 third_party/attio/assets/logo.png create mode 100644 third_party/attio/mcp.json diff --git a/.cursor-plugin/marketplace.json b/.cursor-plugin/marketplace.json index d7e5a268a..003ea47cc 100644 --- a/.cursor-plugin/marketplace.json +++ b/.cursor-plugin/marketplace.json @@ -337,6 +337,11 @@ "name": "x-ads", "source": "third_party/x-ads", "description": "Manage ad campaigns, create ads, track conversions, and pull performance stats." + }, + { + "name": "attio", + "source": "third_party/attio", + "description": "Search and update CRM records, lists, notes, and tasks." } ] } diff --git a/README.md b/README.md index 758e4e974..e9c711178 100644 --- a/README.md +++ b/README.md @@ -69,6 +69,7 @@ Official Cursor plugins for popular developer tools, frameworks, and SaaS produc | `similarweb` | [Similarweb](third_party/similarweb/) | Cursor | Integrations | Analyze website traffic, audiences, and competitors. | | `xero` | [Xero](third_party/xero/) | Cursor | Integrations | Read and write invoices, contacts, reports, and payroll. | | `x-ads` | [X Ads](third_party/x-ads/) | Cursor | Integrations | Manage ad campaigns, create ads, track conversions, and pull performance stats. | +| `attio` | [Attio](third_party/attio/) | Cursor | Integrations | Search and update CRM records, lists, notes, and tasks. | Author values match each plugin’s `plugin.json` `author.name` (Cursor lists `plugins@cursor.com` in the manifest). ## Repository structure diff --git a/third_party/attio/.cursor-plugin/plugin.json b/third_party/attio/.cursor-plugin/plugin.json new file mode 100644 index 000000000..79410d2bb --- /dev/null +++ b/third_party/attio/.cursor-plugin/plugin.json @@ -0,0 +1,35 @@ +{ + "name": "attio", + "displayName": "Attio", + "version": "1.0.0", + "minClientVersions": { + "cursor": "3.13.0" + }, + "description": "Search and update CRM records, lists, notes, and tasks.", + "author": { + "name": "Cursor", + "email": "plugins@cursor.com" + }, + "homepage": "https://docs.attio.com/mcp/overview", + "repository": "https://github.com/cursor/plugins", + "license": "MIT", + "logo": "assets/logo.png", + "keywords": [ + "attio", + "crm", + "mcp", + "sales", + "records", + "lists", + "notes", + "tasks" + ], + "category": "integrations", + "tags": [ + "attio", + "crm", + "sales", + "mcp" + ], + "mcpServers": "./mcp.json" +} diff --git a/third_party/attio/CHANGELOG.md b/third_party/attio/CHANGELOG.md new file mode 100644 index 000000000..732ecbcb8 --- /dev/null +++ b/third_party/attio/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog + +All notable changes to this plugin will be documented here. + +## 1.0.0 — initial release + +- Added the `attio` MCP server pointing at Attio's hosted Streamable HTTP endpoint (`https://mcp.attio.com/mcp`). +- Auth uses OAuth with Attio user login — no API key or client ID to configure. +- Logo: Attio's official mark, from the `attio` GitHub organization. diff --git a/third_party/attio/LICENSE b/third_party/attio/LICENSE new file mode 100644 index 000000000..ca2bba771 --- /dev/null +++ b/third_party/attio/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Cursor + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/third_party/attio/README.md b/third_party/attio/README.md new file mode 100644 index 000000000..701ec9858 --- /dev/null +++ b/third_party/attio/README.md @@ -0,0 +1,68 @@ +# Attio + +Cursor plugin that connects agents to [Attio](https://attio.com) through Attio's official remote [Model Context Protocol](https://modelcontextprotocol.io/) server. + +Search, create, and update CRM records (people, companies, deals, and custom objects), work with lists, notes, and tasks, and search emails, meetings, and comments in the signed-in Attio workspace. + +## Install + +1. Open **Cursor Settings → Plugins**. +2. Search for **Attio**. +3. Click **Install**, then complete the Attio sign-in prompt. + +Or run `/add-plugin attio` in chat. + +## MCP + +```json +{ + "mcpServers": { + "attio": { + "type": "http", + "url": "https://mcp.attio.com/mcp" + } + } +} +``` + +Auth is OAuth against Attio. Cursor prompts for Attio user login when the plugin connects — there is no API key or client ID to configure. + +## Before you connect + +You need an Attio account with access to a workspace. Attio MCP is available to all workspace members. + +## What agents can do + +| Category | Capabilities | +| --- | --- | +| Records & objects | Search, create, update, upsert, and merge people, companies, deals, and custom objects | +| Lists | Inspect lists and attributes, add records, and update list entries and stages | +| Notes | Search, create, and update notes; semantic search over note content | +| Tasks | List, create, and update tasks | +| Meetings & calls | Search call recordings and transcripts | +| Emails | Search and read emails | +| Comments | List and add comments on records and list entries | +| Workspace | List members and teams; inspect the signed-in user | +| Reporting | Run basic reports; optional read-only SQL on some plans | + +The hosted runtime is the source of truth for tool names and schemas. + +## Notes + +- Tool calls run as the Attio user who authorizes the connection and cannot exceed that user's permissions. +- Read operations are auto-approved. Write operations request confirmation before they change workspace data. +- `query-particle-sql` (read-only SQL) is not available on every Attio billing plan. +- Attio hosts the server itself; this plugin does not wrap a local stdio server. +- Revoke access at any time from your Attio account settings. + +## Docs + +- Attio MCP overview: https://docs.attio.com/mcp/overview +- Attio MCP help center: https://attio.com/help/reference/attio-ai/attio-mcp +- Server URL: https://mcp.attio.com/mcp + +Logo is Attio's official mark, from the `attio` GitHub organization. + +## License + +MIT diff --git a/third_party/attio/assets/logo.png b/third_party/attio/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f715fe51e4f82a21b1d3254ee954b4355e6377b7 GIT binary patch literal 7527 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