by kesslerio

A comprehensive Model Context Protocol (MCP) server for Attio, the AI-native CRM. This server enables AI assistants like Claude to interact directly with your Attio data through natural language, providing seamless integration between conversational AI and your CRM workflows.
Transform your CRM workflows with AI-powered automation. Instead of clicking through multiple screens, simply ask Claude to find prospects, update records, manage pipelines, and analyze your data using natural language commands.
"Find all AI companies with 50+ employees that we haven't contacted in 30 days and add them to our Q1 outreach list"
68% Tool Reduction: Consolidated 40+ resource-specific tools into 14 universal operations for consistent, powerful CRM management.
search-records
and advanced-search
search-by-relationship
batch-operations
get-detailed-info
search-by-relationship
search-by-content
and search-by-timeframe
resource_type
parameter/objects/tasks/attributes
has limitations, handled with fallback patternsDISABLE_UNIVERSAL_TOOLS=true
environment variable (deprecated)For detailed troubleshooting and solutions, see TROUBLESHOOTING.md and GitHub Issues.
The Power Behind Precise CRM Queries - Stop wrestling with complex data searches. Our advanced filtering system lets you find exactly what you need with surgical precision.
"Find all AI companies with 50+ employees that we haven't contacted in 30 days and add them to our Q1 outreach list" - This kind of complex query is exactly what advanced search filters excel at.
Every advanced search follows this proven pattern that's been battle-tested across thousands of CRM queries:
*Configuration content*
š Single Criteria Search
*Configuration content*
šÆ Multi-Criteria Power Search (AND Logic)
*Configuration content*
š Flexible OR Logic
*Configuration content*
Operator | Perfect For | Example Use Case |
---|---|---|
contains | Text searches | Finding companies with "Tech" in name |
equals | Exact matches | Specific industry classification |
starts_with | Prefix searches | Companies beginning with "Acme" |
ends_with | Suffix searches | Companies ending with "Inc" |
greater_than | Numerical analysis | Companies with 100+ employees |
less_than | Size filtering | Startups under 50 people |
is_empty | Data cleanup | Find records missing key information |
is_not_empty | Completeness checks | Records with populated fields |
šÆ Sales Teams - Use these field combinations:
name
, industry
, employee_count
, website
, location
full_name
, job_title
, email
, company
š Marketing Teams - Focus on engagement fields:
last_interaction
, email_status
, campaign_response
industry
, company_size
, location
, engagement_score
ā Customer Success - Monitor health metrics:
renewal_date
, support_tickets
, usage_metrics
last_contact
, satisfaction_score
, contract_value
ā Wrong (Flat object structure):
*Configuration content*
ā Correct (Nested array structure):
*Configuration content*
Getting "Filters must include a 'filters' array property"?
filters
arrayattribute
, condition
, and value
attribute
must be an object with a slug
propertyš¬ Pro Tip: Start with simple single-filter searches, then build complexity once you're comfortable with the structure.
ā 100% Integration Test Pass Rate Achieved - All critical API contract violations and build issues have been resolved:
/objects/tasks/attributes
endpointSee TROUBLESHOOTING.md for detailed solutions to these resolved issues.
To install Attio CRM Integration Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @kesslerio/attio-mcp-server --client claude
# Global installation for CLI usage npm install -g attio-mcp-server # Or local installation for project integration npm install attio-mcp-server
curl -fsSL https://raw.githubusercontent.com/kesslerio/attio-mcp-server/main/install.sh | bash
git clone https://github.com/kesslerio/attio-mcp-server.git cd attio-mcp-server npm install npm run build
export ATTIO_API_KEY="your_api_key_here" export ATTIO_WORKSPACE_ID="your_workspace_id_here" # Optional: Deal defaults configuration export ATTIO_DEFAULT_DEAL_STAGE="Interested" # Default stage for new deals export ATTIO_DEFAULT_DEAL_OWNER="member_id_here" # Default owner workspace member ID (see below) export ATTIO_DEFAULT_CURRENCY="USD" # Default currency for deal values
# Test the MCP server attio-mcp-server --help # Discover your Attio workspace attributes attio-mcp-server discover attributes
Add to your Claude Desktop MCP configuration:
Workspace Member ID (for deal owner defaults):
# Use the Attio API to list workspace members curl -H "Authorization: Bearer $ATTIO_API_KEY" \ https://api.attio.com/v2/workspace-members # Look for your name in the response to find your member ID
Deal Stages:
Deal stages are specific to your workspace. Check your Attio workspace settings or use the discover-attributes
command to find available stages for deals.
*Configuration content*
"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"
"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"
"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"
"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"
Comprehensive documentation is available in the docs directory:
ā ļø 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.
š Implementation Status: These docs describe the Attio API endpoints. For MCP tool usage, refer to universal tools documentation above.
git clone https://github.com/kesslerio/attio-mcp-server.git cd attio-mcp-server npm install npm run build npm run test:offline
The project includes comprehensive testing at multiple levels with 100% E2E test pass rate:
Our comprehensive E2E test framework validates all universal tools with real Attio API integration:
# E2E Tests (requires ATTIO_API_KEY in .env file) npm run e2e # Run complete E2E test suite (51 tests, 100% pass rate) npm test -- test/e2e/suites/universal-tools.e2e.test.ts # Universal tools E2E tests # Set up E2E environment echo "ATTIO_API_KEY=your_api_key_here" > .env npm run e2e # Should show 51/51 tests passing
ā Comprehensive Coverage:
offset
parameter across all universal toolsfields
parameter for selective data retrievalš ļø Enhanced Assertions (7 New Methods):
// Available in test/e2e/utils/assertions.ts expectValidPagination(result, params) // Validates pagination behavior expectFieldFiltering(result, fields) // Validates field selection expectValidTasksIntegration(result) // Tasks-specific validation expectSpecificError(result, errorType) // Typed error validation expectOptimalPerformance(result, budget) // Performance validation expectValidUniversalToolParams(params) // Parameter validation expectValidBatchOperation(result, records) // Batch operation validation
š Performance Benchmarks:
# Unit Tests (no API required) npm test # Run all tests npm run test:offline # Run only offline tests (206 tests) npm run test:watch # Watch mode for development # Integration Tests (requires API key and test data) npm run test:integration # Run all integration tests (15 tests, 100% pass rate) npm run setup:test-data # Create test data in your workspace
For E2E and integration tests, you need:
.env
file in project root:# Required for E2E/Integration tests ATTIO_API_KEY=your_64_character_api_key_here PORT=3000 LOG_LEVEL=debug NODE_ENV=development
npm run build && npm run test:integration
See the Testing Guide and E2E Troubleshooting Guide for detailed setup instructions.
npm run build # Build TypeScript npm run test # Run all tests npm run test:offline # Run tests without API calls npm run lint # Check code style npm run check # Full quality check npm run setup:test-data # Create test data for integration tests
We welcome contributions! Please see our Contributing Guidelines for details on:
This initial release provides a solid foundation for CRM automation.
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!
npm install -g attio-mcp-server
3 contributors