Labsco
kesslerio logo

Attio MCP Server

β˜… 69

from kesslerio

Interact with data in Attio, the AI-native CRM, enabling AI assistants to access and manage your customer relationship information.

πŸ”₯πŸ”₯πŸ”₯πŸ”₯βœ“ VerifiedAccount requiredAdvanced setup

Attio MCP Server

License: Apache 2.0 npm version Node.js Version GitHub Release Ask DeepWiki npm provenance

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.

🎯 What is Attio MCP Server?

Transform your CRM workflows with AI-powered automation. Instead of clicking through multiple screens, simply ask Claude or ChatGPT to find prospects, update records, manage pipelines, and analyze your data using natural language commands.

πŸŽ‰ v1.0.0 Milestone: Complete Attio CRM surface coverage with full ChatGPT Developer Mode integration.

"Find all AI companies with 50+ employees that we haven't contacted in 30 days and add them to our Q1 outreach list"

πŸš€ ChatGPT Developer Mode Integration

⚠️ Smithery Temporarily Unavailable: Smithery has changed their deployment model to require external hosting. We're working on Cloudflare Worker hosting for ChatGPT users. In the meantime, use Tier 4 (Cloudflare Worker) for ChatGPT/remote access.

ChatGPT Pro/Plus users can access the Attio toolset through natural language using a self-hosted Cloudflare Worker:

  • πŸ” Built-in Approval Flows: MCP safety annotations auto-approve read operations, request approval for writes
  • 🌐 OAuth Integration: Self-hosted OAuth via Cloudflare Worker deployment
  • πŸ’¬ Natural Language CRM: Manage your entire Attio workspace through conversational AI
  • πŸ“– Setup Guide: See ChatGPT Developer Mode docs and Cloudflare Worker Guide

✨ Core Features & Implementation Status

🎯 Universal Tools Architecture (19 Universal Operations)

Focused Tool Surface: Consolidated 40+ resource-specific tools into universal operations, then added scoped high-frequency write tools for safer company and deal updates.

  • High Performance: 89.7% speed improvement with 227KB memory reduction (PR #483)
  • Enterprise Quality: 97.15/100 production readiness score with zero breaking changes
  • Clean Architecture: Complete production-test separation with mock factory pattern
  • Scoped Tool Policy: Add scoped default tools only when the workflow is frequent, a generic write can mutate the wrong object class, and the scoped tool removes a model decision instead of merely renaming a universal call

πŸ“Š Feature Implementation Status

βœ… Complete CRM Surface Coverage

  • Companies: Search, Create, Update, Delete, Advanced Search, Relationship Search
  • People: Search, Create, Update, Delete, Advanced Search, Relationship Search
  • Deals: Full CRUD operations with intelligent field mapping and stage validation
  • Tasks: Create, Update, Delete, Search with multi-assignee support
  • Lists: Full CRUD operations, filtering, advanced filtering, entry management
  • Notes: Create and list operations for all record types
  • Records: Universal CRUD operations across all resource types
  • Batch Operations: Create, Update, Delete with chunking and error handling
  • Content Search: Universal search capabilities across notes, tasks, and lists
  • Relationship Navigation: Bidirectional company↔person↔deal relationships
  • Advanced Filtering: Sophisticated query capabilities with intelligent field mapping

πŸ“Š Company Management

  • Universal Search: Find companies with search_records and search_records_advanced
  • Scoped Writes: Create and update companies with create_company and update_company
  • Full CRUD: Create, read, update, and delete with universal record operations when a scoped tool is not available
  • Relationship Discovery: Find companies through search_records_by_relationship
  • Batch Operations: Process hundreds of companies with batch_records
  • Detailed Information: Get contact, business, and social info with get_record_info

πŸ‘₯ People Management

  • Universal Contact Search: Find people by any criteria using universal search tools
  • Relationship Tracking: Link people to companies with search_records_by_relationship
  • Activity Timeline: Track interactions with search_records_by_content and search_records_by_timeframe
  • Advanced Filtering: Multi-attribute search with universal filtering
  • Bulk Operations: Efficiently manage contacts with universal batch operations

πŸ“‹ Lists & Pipeline Management (4 Tools + 8 Deprecated)

  • Active Tools: 4 consolidated tools with auto-mode detection (Migration Guide)
    • filter-list-entries - Unified filtering with 4 modes
    • manage-list-entry - Unified entry management with 3 modes
    • get-list-entries - Retrieve list entries
    • get-record-list-memberships - Find record's list memberships
  • Deprecated (v2.0.0 removal): 8 legacy tools replaced by consolidated versions
  • Pipeline Operations: Move deals through sales stages
  • Smart Segmentation: Create and manage targeted contact lists
  • Advanced Filtering: Complex multi-condition filtering with AND/OR logic
  • Entry Management: Add, remove, and update list memberships
  • Deal Tracking: Monitor opportunities and revenue pipeline
  • Deal Defaults: Configurable default stage, owner, and currency for streamlined deal creation
  • Scoped Deal Writes: Create and update deals with create_deal and update_deal

βœ… Task Management

  • Universal Task Operations: Create, update, and manage tasks with universal tools
  • Record Linking: Associate tasks with any record type using resource_type parameter
  • Progress Tracking: Monitor completion with universal search and filtering
  • Team Coordination: Streamline follow-ups with consistent universal operations

πŸ”§ Advanced Capabilities

  • Batch Processing: Handle bulk operations with error tracking
  • Enhanced Filtering: Text, numeric, date, boolean, and relationship filters with timeframe search (Issue #475)
  • Data Export: JSON serialization for integrations
  • Real-time Updates: Live data synchronization with Attio

🧠 Claude Skills

Supercharge Claude's Attio knowledge with pre-built skills that prevent common errors and teach best practices.

SkillPurposeSetup
attio-mcp-usageError prevention + universal workflow patternsBundled - just use it
attio-workspace-schemaYOUR workspace's exact field names and optionsnpx attio-discover generate-skill --all --zip
attio-skill-generatorCreate custom workflow skills (advanced)Python + prompting

Quick Start (solves "wrong field name" errors):

Copy & paste β€” that's it
npx attio-discover generate-skill --all --zip
# Import ZIP into Claude Desktop: Settings > Skills > Install Skill

See Skills Documentation for complete setup and usage guides.

πŸ’¬ Pre-Built Prompts (10 Prompts)

Intelligent shortcuts that help Claude work faster with your CRM data:

  • Search & Find (5): people_search, company_search, deal_search, meeting_prep, pipeline_health
  • Take Actions (4): log_activity, create_task, advance_deal, add_to_list with dry-run safety
  • Research & Qualify (1): qualify_lead with automated web research and BANT/CHAMP frameworks
  • Token-efficient: 300-700 tokens per prompt with consistent formatting
  • Discoverable: Claude automatically suggests relevant prompts for your tasks

See Using Out-of-the-Box Prompts for detailed documentation and examples.

🎯 Using Out-of-the-Box Prompts

NEW: 10 pre-built MCP prompts for common Sales workflows. No setup requiredβ€”just use them!

Available Prompts

PromptDescriptionKey ArgumentsExample
people_search.v1Find people by title, company, territoryquery, limit, formatFind AE in fintech, SF
company_search.v1Query companies by domain, segment, planquery, limit, formatFind SaaS companies >100 employees
deal_search.v1Filter deals by owner, stage, value, close datequery, limit, formatFind deals >$50k closing Q1
log_activity.v1Log calls/meetings/emails to recordstarget, type, summary, dry_runLog call with Nina at Acme
create_task.v1Create tasks with natural language due datestitle, content, due_date, dry_runCreate task: Follow up tomorrow
advance_deal.v1Move deal to target stage with next actiondeal, target_stage, create_task, dry_runAdvance deal to "Proposal Sent"
add_to_list.v1Add records to a List by name or IDrecords, list, dry_runAdd 5 companies to Q1 Outreach
qualify_lead.v1Research lead with web + BANT/CHAMP scoringtarget, framework, limit_web, dry_runQualify Acme Corp with BANT
meeting_prep.v1360Β° prep: notes, tasks, deals, agendatarget, format, verbosityPrep for meeting with Acme CEO
pipeline_health.v1Weekly snapshot: created/won/slipped + risksowner, timeframe, segmentPipeline health for @me last 30d

Quick Examples

Copy & paste β€” that's it
# Search for prospects
"Use people_search.v1: Find Account Executives in San Francisco at fintech companies, limit 25"

# Log activity
"Use log_activity.v1: Log a call with Nina at Acme Corp, discussed Q1 pricing, create follow-up task"

# Qualify a lead (with web research)
"Use qualify_lead.v1: Qualify Acme Corp using BANT framework, dry run mode"

# Meeting prep
"Use meeting_prep.v1: Prepare for meeting with contact at Acme Corp"

Universal Arguments

All read prompts support:

  • format: table | json | ids (default: table)
  • fields_preset: sales_short | full (default: sales_short)
  • verbosity: brief | normal (default: brief)

All write prompts support:

  • dry_run: true | false (default: false) - Preview changes without executing

Token Awareness Features

Prompts include built-in token optimization:

  • Budget Guards: Prompts stay within token limits (people_search <500, qualify_lead <400)
  • Dev Metadata: Set MCP_DEV_META=true for token counts in responses
  • Telemetry: Set PROMPT_TELEMETRY_ENABLED=true for usage logging
  • Configurable Limits: Override with MAX_PROMPT_TOKENS environment variable

For complete prompt documentation, see docs/prompts/v1-catalog.md.

⚠️ Known Limitations & Important Notes

Current Limitations

  • Field Parameter Filtering: Tasks endpoint /objects/tasks/attributes has limitations, handled with fallback patterns
  • Pagination: Tasks pagination uses in-memory handling due to API constraints

API Compatibility

  • Universal Tools: Primary interface (19 tools) - recommended for all new integrations
  • Legacy Tools: Available via DISABLE_UNIVERSAL_TOOLS=true environment variable (deprecated)
  • Lists API: Fully functional with complete CRUD operations (contrary to some outdated documentation)

🀝 OpenAI MCP Compatibility

  • Developer Mode Ready: Every tool now publishes MCP safety annotations (readOnlyHint, destructiveHint) so OpenAI Developer Mode can auto-approve reads and request confirmation for writes.
  • Full Tool Access (Default): All 41 tools are exposed by default (26 universal/OpenAI + 12 list + 3 workspace member). Do NOT set ATTIO_MCP_TOOL_MODE in Smithery configuration for full access.
  • Search-Only Mode: To restrict to read-only tools (search, fetch, aaa-health-check), explicitly configure ATTIO_MCP_TOOL_MODE: 'search' in Smithery dashboard when Developer Mode is unavailable.
  • Detailed Guide: See docs/chatgpt-developer-mode.md for environment variables, approval flows, and validation tips.
  • User Documentation: See the ChatGPT Developer Mode docs for a complete walkthrough of approval flows and setup instructions.

Performance Considerations

  • Batch Operations: Optimized with chunking, rate limiting, and error recovery
  • Large Datasets: Automatic pagination and field filtering for optimal performance
  • Rate Limiting: Built-in protection against API rate limits with exponential backoff

For detailed troubleshooting and solutions, see TROUBLESHOOTING.md and GitHub Issues.

🎯 Advanced Search Filters

Build powerful CRM queries with multi-criteria AND/OR filtering. See the Advanced Search Guide for complete examples and operator reference.

πŸ†• What's New in v1.4.0

Major Features

  • 🎯 Workspace Schema Skill Generator (#983) - Auto-generate Claude Skills from your Attio workspace schema for error-free field names and options
  • πŸ” Select-field Transformer (#1019) - Case-insensitive matching, partial matching, and UUID pass-through for select/status fields
  • πŸ› οΈ Attio Skill Generator Meta-skill (#1020) - Meta-skill for automatic workspace documentation
  • πŸ“š Universal Usage Guide Skill (#1018) - Hand-crafted workflow patterns and error prevention
  • βš™οΈ get_record_attribute_options tool (#975) - Get valid options for select/status fields with enhanced error messages
  • πŸ“ž Phone validation (#951) - Built-in phone number validation support
  • ⏱️ Configurable option fetch delay - Rate limiting control via --option-fetch-delay flag

Major Enhancements

  • 🏷️ MCP-compliant tool naming (#1039) - All tools now use snake_case, verb-first naming (old names work via aliases until v2.0.0)
  • 🎨 Custom object display names (#1017) - Fetch display names directly from Attio API
  • πŸ“– Split integration patterns (#1023) - Progressive discovery patterns by use case
  • πŸ’‘ Enhanced attribute error messages (#975) - Levenshtein distance suggestions for typos

Critical Fixes

  • πŸ“ Note content line breaks preserved (#1052)
  • πŸ‘€ People search "Unnamed" display fixed (#1051)
  • βœ… Select field persistence (#1045)
  • πŸ”— Record-reference auto-transformation (#997)
  • πŸ“Š Multi-select array auto-transformation (#992)
  • πŸ›‘οΈ Complex attribute validation (#991)
  • ⚠️ Field persistence false warnings (#995)
  • πŸ“¦ SDK dependency pinning (#1025)
  • πŸ’Ό Deal stage/UTM validation (#1043)
  • πŸ“ Location field auto-normalization (#987)

Internal Improvements

  • Tool alias system refactoring (#1041) - Type-safe constants with pattern-based generation
  • Strategy Pattern for CRUD error handlers (#1001)
  • Consolidated metadata fetching (#984)
  • UniversalUpdateService modularization (#984)
  • Select transformation type rename (#1055) - select_title_to_array for clarity

πŸ”„ Migration Guide

Upgrading from v1.3.x or earlier? Tool names have changed to follow MCP naming conventions.

Old names still work via backward-compatible aliases, but will be removed in v2.0.0 (Q1 2026).

Tool Name Changes

Old Name (Deprecated)New Name (MCP-compliant)Notes
records_searchsearch_recordsVerb-first pattern
records_get_detailsget_record_detailsVerb-first pattern
records_get_attributesget_record_attributesVerb-first pattern
records_discover_attributesdiscover_record_attributesVerb-first pattern
records_search_advancedsearch_records_advancedVerb-first pattern
records_search_by_relationshipsearch_records_by_relationshipVerb-first pattern
records_search_by_contentsearch_records_by_contentVerb-first pattern
records_search_by_timeframesearch_records_by_timeframeVerb-first pattern
records_batchbatch_recordsVerb-first pattern
search-recordssearch_recordssnake_case format
get-record-detailsget_record_detailssnake_case format
create-recordcreate_recordsnake_case format
update-recordupdate_recordsnake_case format
delete-recorddelete_recordsnake_case format
create-notecreate_notesnake_case format
list-noteslist_notessnake_case format
smithery-debug-configsmithery_debug_configsnake_case format

Action Required: Update your integrations to use new tool names before Q1 2026. See MIGRATION-GUIDE.md for the complete migration table.


🌟 Example Use Cases

For Sales Teams

Copy & paste β€” that's it
"Find all companies in the AI space with 50+ employees that we haven't contacted in 30 days"
"Show me all prospects added yesterday"
"Find companies created in the last 7 days with revenue over $10M"
"Create a task to follow up with Microsoft about the enterprise deal"
"Add John Smith from Google to our Q1 prospect list"

For Marketing Teams

Copy & paste β€” that's it
"Create a list of all SaaS companies who opened our last 3 emails but haven't responded"
"Show me engagement metrics for our outbound campaign this month"
"Add all attendees from the conference to our nurture sequence"

For Customer Success

Copy & paste β€” that's it
"Show me all enterprise customers with upcoming renewal dates in Q1"
"Create tasks for check-ins with accounts that haven't been contacted in 60 days"
"Find all customers who mentioned pricing concerns in recent notes"

For Data Operations

Copy & paste β€” that's it
"Update all companies with missing industry data based on their domains"
"Export all contacts added this quarter to CSV"
"Merge duplicate company records for Acme Corporation"

πŸ” Security & Privacy

  • Secure API Authentication: Industry-standard API key authentication
  • No Data Storage: Direct API passthrough with no local data retention
  • Open Source: Full transparency with Apache 2.0 license
  • Optional On-Premises: Deploy in your own infrastructure
  • npm Provenance: Published with Sigstore provenance β€” every release is cryptographically linked to the GitHub Actions build and source commit

Supply Chain Verification

This package is published with npm provenance, creating a verifiable chain from source code to published artifact. Verify a release:

Copy & paste β€” that's it
# Check provenance attestation on any published version
npm view attio-mcp --json | jq .attestations

# With pnpm (v10+), enforce trust policy at install time
# pnpm trustPolicy: no-downgrade blocks packages published with weaker credentials

For maximum supply chain protection, install with pnpm v10+ which enforces:

  • trustPolicy: no-downgrade β€” blocks versions published with weaker credentials than prior versions
  • minimumReleaseAge β€” cooldown period before new versions can be installed

πŸ“š Documentation

Comprehensive documentation is available in the docs directory:

Universal Tools (Recommended)

⚠️ Note: Universal tools documentation is currently being updated to match the latest implementation. Use the API directly or check the source code for the most accurate interface definitions.

Getting Started

Configuration

API Reference

πŸ“‹ Implementation Status: These docs describe the Attio API endpoints. For MCP tool usage, refer to universal tools documentation above.

  • API Overview - General Attio API concepts
  • Companies API - Company record endpoints βœ… Fully Implemented via Universal Tools
  • People API - Person record endpoints βœ… Fully Implemented via Universal Tools
  • Lists API - List management endpoints βœ… Fully Implemented
  • Notes API - Notes endpoints βœ… Basic Implementation
  • Tasks API - Task endpoints βœ… Implemented via Universal Tools

Advanced Topics

Deployment

πŸ›  Development

Setup Development Environment

Copy & paste β€” that's it
git clone https://github.com/kesslerio/attio-mcp-server.git
cd attio-mcp-server
npm install
npm run build
npm run test:offline

Smithery CLI Development

For local development and testing with Smithery Playground:

Copy & paste β€” that's it
npm run dev  # Opens Smithery Playground with local server

See docs/deployment/smithery-cli-setup.md for detailed Smithery CLI development setup.

Testing

Copy & paste β€” that's it
npm test                    # Run all tests
npm run test:offline        # Run only offline tests (no API required)
npm run test:integration    # Integration tests (requires ATTIO_API_KEY)
npm run e2e                 # E2E tests (requires ATTIO_API_KEY)

For E2E/integration tests, create .env with your ATTIO_API_KEY. See the Testing Guide for detailed setup.

Available Scripts

Copy & paste β€” that's it
npm run build          # Build TypeScript
npm run test           # Run all tests
npm run test:offline   # Run tests without API calls
npm run analyze:token-footprint # Generate baseline MCP token footprint report
npm run lint           # Check code style
npm run check          # Full quality check
npm run setup:test-data # Create test data for integration tests

🀝 Contributing

We welcome contributions! Please see our Contributing Guidelines for details on:

  • Adding new tools and features
  • Improving documentation
  • Reporting bugs and requesting features
  • Testing and quality assurance

πŸ“ˆ What's Next?

This initial release provides a solid foundation for CRM automation.

πŸ”— Links

πŸ“„ License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

Original Work Attribution: This project is based on initial work by @hmk under BSD-3-Clause license, with substantial modifications and enhancements by @kesslerio. The original BSD license notice is preserved in the LICENSE file as required.


Ready to transform your CRM workflow? Install Attio MCP Server today and experience the future of CRM automation with AI!

Copy & paste β€” that's it
npm install -g attio-mcp