MCP Servers

A collection of Model Context Protocol servers, templates, tools and more.

B
Basecamp MCP Server

๐Ÿš€ Complete Basecamp MCP Server - 27 tools for AI automation with n8n, Make.com & Claude Desktop

Created 8/17/2025
Updated 9 months ago
Repository documentation and setup instructions

๐Ÿ•๏ธ Basecamp MCP Server

A professional Model Context Protocol (MCP) server that provides complete programmatic access to Basecamp 4 API. Perfect for AI agents, workflow automation, and custom integrations.

๐Ÿš€ NEW in v7.5.0: Claude.ai Compatible!

The most comprehensive AND most compatible Basecamp MCP server available!

What's New in v7.5:

  • โœ… Full Claude.ai compatibility - Works perfectly in Claude web interface
  • โœ… Latest MCP protocol - Supports 2025-06-18 specification
  • โœ… Session management - Proper connection tracking for modern clients
  • โœ… Auto-discovery - MCP config endpoint for automatic setup
  • โœ… Simplified authentication - No KV storage, just OAuth + environment variables
  • โœ… 55+ specialized tools - Complete Basecamp API coverage

๐Ÿ”ฅ Upgrade from v6.0? See UPGRADE-TO-V75.md for migration guide.

โœ… 8 Project Management tools - Complete project lifecycle management
โœ… 11 Todo Management tools - Advanced task automation with auto-lookup
โœ… 6 Communication tools - Messages and discussions
โœ… 6 Documents & Files tools - Content management and file handling
โœ… 4 Team Management tools - Access control and permissions
โœ… 3 Campfire Chat tools - Real-time communication
โœ… 3 Schedule Management tools - Calendar and events
โœ… 4 Card Tables tools - Kanban workflows
โœ… 5 Comments System tools - Universal collaboration
โœ… 4 Webhooks tools - Real-time notifications
โœ… 2 Search & Analytics tools - Data insights
๐Ÿ†• 3 Enhanced Features - Auto-lookup, URL parsing, OAuth flow

Enhanced Features:

  • Auto-lookup functionality - No more 404 errors! Automatically finds resource IDs
  • OAuth 2.0 integration - Complete authentication flow with setup UI
  • Multiple authentication methods - Bearer token, arguments, environment variables
  • Production-ready deployment - Cloudflare Workers optimized

Deploy to Cloudflare Workers MCP Protocol Version Claude.ai Compatible License: MIT

โœจ Features

๐Ÿ› ๏ธ Complete Tool Coverage (59 Tools)

  • Project Management (8 tools): Full CRUD operations, archiving, construction
  • Todo Management (11 tools): Lists, items, assignments, completion, positioning
  • Communication (6 tools): Messages, replies, discussions, archiving
  • Documents & Files (6 tools): Create, edit, upload, manage attachments
  • Team Management (4 tools): Add/remove people, permissions, access control
  • Comments & Collaboration (5 tools): Universal commenting system across all content
  • Campfire Chat (3 tools): Real-time chat messages and history
  • Schedule Management (3 tools): Events, milestones, calendar entries
  • Card Tables (4 tools): Kanban boards, cards, columns, positioning
  • Webhooks (4 tools): Real-time notifications and event subscriptions
  • Search & Analytics (2 tools): Content search and activity tracking

๐Ÿ” Authentication & Security

  • OAuth 2.0 complete authentication flow with setup UI
  • Multi-authentication support with token priorities:
    1. access_token in arguments (highest priority)
    2. Authorization: Bearer TOKEN header
    3. BASECAMP_ACCESS_TOKEN environment variable (fallback)
  • Individual user tokens while sharing infrastructure
  • Secure token handling with proper validation
  • Simplified deployment - No KV storage required (v7.5+)

๐Ÿš€ Production Ready

  • Edge deployment on Cloudflare Workers
  • Global CDN with sub-100ms response times worldwide
  • Automatic scaling handles any traffic volume
  • Rate limiting compliance with Basecamp API limits
  • Comprehensive error handling with meaningful messages
  • Auto-lookup functionality prevents 404 errors

๐Ÿš€ Quick Start

1. Deploy to Cloudflare Workers

# Clone the repository
git clone https://github.com/QusaiiSaleem/basecamp-mcp-server.git
cd basecamp-mcp-server

# Install dependencies
npm install

# Configure your environment
cp wrangler.toml.example wrangler.toml
# Edit wrangler.toml with your account ID

# Deploy to Cloudflare Workers
npm run deploy

2. Set Up Basecamp OAuth Integration

  1. Create Integration: Visit Basecamp Integrations

  2. Configure Settings:

    • Application Name: "Your Basecamp MCP Server"
    • Redirect URI: https://your-worker.workers.dev/auth/callback
    • Client Type: Web Application
  3. Set Environment Variables:

echo "your_client_id" | wrangler secret put BASECAMP_CLIENT_ID
echo "your_client_secret" | wrangler secret put BASECAMP_CLIENT_SECRET
echo "your_account_id" | wrangler secret put BASECAMP_ACCOUNT_ID

3. Get Your Access Token

Visit https://your-worker.workers.dev/setup and follow the OAuth flow to get your access token.

๐ŸŒ Claude.ai Integration

NEW in v7.5: Direct integration with Claude.ai web interface!

Quick Setup

  1. Visit Claude.ai: Go to claude.ai
  2. Open Settings: Click Settings โ†’ Connectors
  3. Add Remote MCP Server:
    • Name: Basecamp MCP
    • URL: https://your-worker.workers.dev
    • Authentication: Bearer YOUR_ACCESS_TOKEN
  4. Enable Toggle: Turn on the connector โœ…
  5. Verify Tools: All 55 tools should appear in your conversation

Full Setup Guide

For detailed step-by-step instructions including screenshots and troubleshooting, see:

Test Your Connection

In Claude.ai, try these commands:

"List all my Basecamp projects"
"Show me my current todo assignments"
"Create a new message in Project X"

Compatibility Matrix

| Client | v6.0 | v7.5 | |--------|------|------| | Claude.ai | โš ๏ธ Limited | โœ… Full | | Claude Desktop | โœ… Works | โœ… Works | | Smithery Playground | โš ๏ธ Limited | โœ… Full | | RelevanceAI | โœ… Works | โœ… Works | | n8n | โœ… Works | โœ… Works | | Make.com | โœ… Works | โœ… Works |

๐Ÿ”ง Usage Examples

With RelevanceAI

  1. Agent Settings โ†’ MCP Server โ†’ Add remote MCP tools
  2. Server URL: https://your-worker.workers.dev
  3. Authentication: Bearer your_access_token_here

With Claude Desktop

Add to your MCP configuration (~/.claude/mcp_servers.json):

{
  "basecamp": {
    "command": "node",
    "args": ["path/to/mcp-server"],
    "env": {
      "BASECAMP_ACCESS_TOKEN": "your_token_here",
      "BASECAMP_ACCOUNT_ID": "your_account_id"
    }
  }
}

Direct API Usage

// Enhanced auto-lookup - no more resource ID hunting!
{
  "tool": "get_todo_lists",
  "arguments": {
    "project_id": "123456"  // That's it! Auto-finds todoset ID
  }
}

// Create todos with full assignment control
{
  "tool": "create_todo",
  "arguments": {
    "project_id": "123456",
    "todolist_id": "789012",
    "content": "Complete project setup",
    "due_on": "2024-12-31",
    "assignee_ids": [1001, 1002]
  }
}

// Universal commenting system
{
  "tool": "add_comment_to_recording",
  "arguments": {
    "project_id": "123456",
    "recording_id": "789012",  // Works with any content type
    "content": "Great progress on this item!"
  }
}

// Smart URL parsing
{
  "tool": "parse_basecamp_url",
  "arguments": {
    "url": "https://3.basecamp.com/999999/buckets/123456/todolists/789012"
  }
}

๐Ÿ“š Complete Tool Reference

๐Ÿ“‹ Project Management (8 tools)

| Tool | Description | Key Parameters | |------|-------------|----------------| | get_projects | List all accessible projects | - | | create_project | Create new project | name, description | | get_project | Get project details | project_id | | update_project | Update project info | project_id, name, description | | archive_project | Archive project | project_id | | unarchive_project | Unarchive project | project_id | | get_project_construction | Get project tools/features | project_id | | parse_basecamp_url | Parse any Basecamp URL | url |

โœ… Todo Management (11 tools)

| Tool | Description | Key Parameters | |------|-------------|----------------| | get_todo_lists ๐Ÿš€ | Get todo lists (AUTO-LOOKUP) | project_id | | create_todo_list ๐Ÿš€ | Create todo list (AUTO-LOOKUP) | project_id, name | | get_todos | Get todos from list | project_id, todolist_id | | get_all_project_todos ๐Ÿ†• | Get ALL project todos | project_id | | create_todo | Create new todo | project_id, todolist_id, content | | update_todo | Update todo details | project_id, todo_id, content | | complete_todo | Mark todo complete | project_id, todo_id | | uncomplete_todo | Mark todo incomplete | project_id, todo_id | | get_my_assignments | Get current user assignments | - | | get_user_assignments | Get user's assignments | user_id | | reposition_todo | Change todo position | project_id, todo_id, position |

๐Ÿ’ฌ Communication (6 tools)

| Tool | Description | Key Parameters | |------|-------------|----------------| | get_message_board ๐Ÿš€ | Get message board (AUTO-LOOKUP) | project_id | | get_messages ๐Ÿš€ | Get messages (AUTO-LOOKUP) | project_id | | create_message ๐Ÿš€ | Create message (AUTO-LOOKUP) | project_id, subject, content | | update_message | Edit message | project_id, message_id, content | | get_message | Get specific message | project_id, message_id | | archive_message | Archive message | project_id, message_id |

๐Ÿ“„ Documents & Files (6 tools)

| Tool | Description | Key Parameters | |------|-------------|----------------| | get_documents ๐Ÿš€ | List documents (AUTO-LOOKUP) | project_id | | create_document ๐Ÿš€ | Create document (AUTO-LOOKUP) | project_id, title, content | | update_document | Edit document | project_id, document_id, content | | get_document | Get specific document | project_id, document_id | | upload_attachment | Upload file | file_data, filename, content_type | | get_uploads | List project uploads | project_id |

๐Ÿ‘ฅ Team & People (4 tools)

| Tool | Description | Key Parameters | |------|-------------|----------------| | get_people | Get project team | project_id | | get_all_people | Get all account people | - | | add_person_to_project | Grant project access | project_id, person_ids[] | | remove_person_from_project | Revoke project access | project_id, person_ids[] |

๐Ÿ’ญ Comments & Collaboration (5 tools)

| Tool | Description | Key Parameters | |------|-------------|----------------| | add_comment_to_recording | Universal comment tool | project_id, recording_id, content | | add_comment_to_todo | Comment on todo | project_id, todo_id, content | | add_comment_to_message | Reply to message | project_id, message_id, content | | add_comment_to_document | Comment on document | project_id, document_id, content | | add_comment_to_card | Comment on card | project_id, card_id, content |

๐Ÿ’ฌ Campfire Chat (3 tools)

| Tool | Description | Key Parameters | |------|-------------|----------------| | get_campfire | Get project chat | project_id | | get_campfire_lines | Get chat messages | project_id, campfire_id | | post_campfire_message | Post chat message | project_id, campfire_id, content |

๐Ÿ“… Schedule Management (3 tools)

| Tool | Description | Key Parameters | |------|-------------|----------------| | get_schedule ๐Ÿš€ | Get schedule (AUTO-LOOKUP) | project_id | | get_schedule_entries | Get schedule events | project_id | | create_schedule_entry | Create new event | project_id, summary, starts_at |

๐ŸŽซ Card Tables (4 tools)

| Tool | Description | Key Parameters | |------|-------------|----------------| | get_card_table | Get Kanban board | project_id | | get_cards | Get cards from table | project_id, card_table_id | | create_card | Create new card | project_id, card_table_id, title | | update_card | Update existing card | project_id, card_id, title |

๐Ÿ”— Webhooks (4 tools)

| Tool | Description | Key Parameters | |------|-------------|----------------| | get_webhooks | List all webhooks | - | | create_webhook | Create webhook | payload_url, types[] | | update_webhook | Update webhook | webhook_id, payload_url | | delete_webhook | Delete webhook | webhook_id |

๐Ÿ” Search & Analytics (2 tools)

| Tool | Description | Key Parameters | |------|-------------|----------------| | search | Search content | query, project_id (optional) | | get_events | Get activity/events | project_id (optional) |

๐Ÿ” Smart Features

๐Ÿง  Auto-Lookup Intelligence

The server automatically finds required resource IDs, eliminating 404 errors:

// Before: Complex resource ID hunting
{
  "tool": "get_todo_lists",
  "arguments": {
    "project_id": "123456",
    "todoset_id": "789012"  // โ† Hard to find manually
  }
}

// After: Simple auto-lookup
{
  "tool": "get_todo_lists", 
  "arguments": {
    "project_id": "123456"  // โ† Auto-finds todoset ID
  }
}

๐Ÿ“ˆ URL Intelligence

Parse any Basecamp URL to extract project and resource information:

// Input: https://3.basecamp.com/999999/buckets/123456/todolists/789012
// Output: 
{
  "account_id": "999999",
  "project_id": "123456", 
  "resource_type": "todolists",
  "resource_id": "789012",
  "suggested_tools": ["get_todos", "create_todo"]
}

๐Ÿ”„ Multi-Authentication Support

Flexible authentication with priority order:

  1. Arguments: access_token parameter (highest priority)
  2. Headers: Authorization: Bearer TOKEN
  3. Environment: BASECAMP_ACCESS_TOKEN (fallback)

โš™๏ธ Configuration

Environment Variables

| Variable | Description | Required | |----------|-------------|----------| | BASECAMP_ACCOUNT_ID | Your Basecamp account ID | โœ… | | BASECAMP_CLIENT_ID | OAuth client ID | โœ… (for OAuth) | | BASECAMP_CLIENT_SECRET | OAuth client secret | โœ… (for OAuth) | | BASECAMP_ACCESS_TOKEN | Fallback access token | โš ๏ธ (optional) |

wrangler.toml Example

name = "my-basecamp-mcp-server"
main = "index.ts"
compatibility_date = "2024-08-05"

[vars]
BASECAMP_ACCOUNT_ID = "999999999"

# Note: v7.5 no longer requires KV namespace binding
# All authentication is handled via environment variables

๐Ÿ”’ Security Best Practices

Authentication Security

  • Individual Tokens: Each user maintains their own OAuth token
  • Secure Headers: All requests use proper authorization headers
  • Token Validation: Automatic token validation and error handling
  • Environment Isolation: Production secrets separate from code

API Security

  • Rate Limiting: Automatic compliance with Basecamp API limits
  • Request Validation: Input sanitization and type checking
  • Error Handling: Secure error messages without data leaks
  • CORS Configuration: Proper cross-origin resource sharing

๐Ÿš€ Deployment Options

Cloudflare Workers (Recommended)

  • Global Edge Network: Sub-100ms response times worldwide
  • Automatic Scaling: Handle unlimited traffic
  • Built-in Security: DDoS protection, WAF, SSL
  • Cost Effective: Pay per request, no idle costs

Alternative Platforms

  • Vercel Functions: Serverless deployment
  • AWS Lambda: Enterprise-grade infrastructure
  • Google Cloud Functions: Google ecosystem integration
  • Azure Functions: Microsoft ecosystem integration

Self-Hosted Options

  • Node.js Server: Traditional server deployment
  • Docker Container: Containerized deployment
  • Kubernetes: Container orchestration

๐Ÿค Contributing

We welcome contributions! Here's how to get started:

Development Setup

# Clone the repository
git clone https://github.com/QusaiiSaleem/basecamp-mcp-server.git
cd basecamp-mcp-server

# Install dependencies
npm install

# Set up environment
cp wrangler.toml.example wrangler.toml

# Start development server
npm run dev

Adding New Tools

  1. Define Tool Schema: Add tool definition to getAllBasecampTools()
  2. Implement Handler: Add case to callBasecampTool() switch statement
  3. Test Implementation: Verify with Basecamp API endpoints
  4. Update Documentation: Add to README tool reference
  5. Submit Pull Request: Include tests and examples

๐Ÿ“Š Performance & Monitoring

Performance Metrics

  • Response Time: Average <100ms globally
  • Availability: 99.9% uptime SLA
  • Throughput: 10,000+ requests per second capability
  • Error Rate: <0.1% error rate

Monitoring Features

  • Cloudflare Analytics: Request metrics and performance
  • Custom Logging: Detailed operation tracking
  • Error Reporting: Automated error notifications
  • Health Checks: Continuous availability monitoring

โ“ Troubleshooting

Common Issues

Authentication Errors

Error: Authentication required

Solution: Ensure your access token is valid. Visit /setup for OAuth flow.

Configuration Missing

Error: BASECAMP_ACCESS_TOKEN not configured

Solution: Set up OAuth credentials or provide token in request headers.

Auto-lookup Failures

Error: Todo lists are not enabled for this project

Solution: Enable todo lists in your Basecamp project settings.

Getting Help

  • GitHub Issues: Report bugs and request features
  • Discussions: Community support and questions
  • Documentation: Comprehensive guides and examples

๐Ÿ“„ License

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

๐Ÿ† Acknowledgments

  • Basecamp Team: For providing an excellent API
  • MCP Community: For the Model Context Protocol standard
  • Cloudflare: For the edge computing platform
  • Contributors: Thank you to all contributors!

๐Ÿ“‹ Version History

  • v7.5.0 (2025-09-30): Claude.ai compatibility + protocol updates - CHANGELOG.md
  • v6.0.0 (2024-12-15): Complete 59-tool implementation
  • v5.0.0 (2024-10-01): Initial public release

๐Ÿ”— Links


Transform your Basecamp workflow with complete API automation! ๐Ÿš€

Now with full Claude.ai compatibility in v7.5! โœจ

Deploy Now

Quick Setup
Installation guide for this server

Install Package (if required)

npx @modelcontextprotocol/server-basecamp-mcp-server

Cursor configuration (mcp.json)

{ "mcpServers": { "qusaiisaleem-basecamp-mcp-server": { "command": "npx", "args": [ "qusaiisaleem-basecamp-mcp-server" ] } } }