Basecamp
STDIOBasecamp 3 MCP集成,实现Cursor直接交互
Basecamp 3 MCP集成,实现Cursor直接交互
This project provides a FastMCP-powered integration for Basecamp 3, allowing Cursor to interact with Basecamp directly through the MCP protocol.
✅ Migration Complete: Successfully migrated to official Anthropic FastMCP framework with 100% feature parity (all 46 tools)
🚀 Ready for Production: Full protocol compliance with MCP 2025-06-18
This server works with both Cursor and Claude Desktop. Choose your preferred client:
Clone and run setup script:
git clone <repository-url> cd basecamp-mcp python setup.py
The setup script automatically:
.env template fileConfigure OAuth credentials:
Edit the generated .env file:
BASECAMP_CLIENT_ID=your_client_id_here BASECAMP_CLIENT_SECRET=your_client_secret_here BASECAMP_ACCOUNT_ID=your_account_id_here USER_AGENT="Your App Name ([email protected])"
Authenticate with Basecamp:
python oauth_app.py
Visit http://localhost:8000 and complete the OAuth flow.
Generate Cursor configuration:
python generate_cursor_config.py
Restart Cursor completely (quit and reopen, not just reload)
Verify in Cursor:
# Quick test the FastMCP server (works with both clients) echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}} {"jsonrpc":"2.0","method":"notifications/initialized","params":{}} {"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}' | python basecamp_fastmcp.py # Run automated tests python -m pytest tests/ -v
Based on the official MCP quickstart guide, Claude Desktop integration follows these steps:
Complete the basic setup (steps 1-3 from Cursor setup above):
git clone <repository-url> cd basecamp-mcp python setup.py # Configure .env file with OAuth credentials python oauth_app.py
Generate Claude Desktop configuration:
python generate_claude_desktop_config.py
Restart Claude Desktop completely (quit and reopen the application)
Verify in Claude Desktop:
The configuration is automatically created at:
~/Library/Application Support/Claude/claude_desktop_config.json~/AppData/Roaming/Claude/claude_desktop_config.json~/.config/claude-desktop/claude_desktop_config.jsonExample configuration generated:
{ "mcpServers": { "basecamp": { "command": "/path/to/your/project/venv/bin/python", "args": ["/path/to/your/project/basecamp_fastmcp.py"], "env": { "PYTHONPATH": "/path/to/your/project", "VIRTUAL_ENV": "/path/to/your/project/venv", "BASECAMP_ACCOUNT_ID": "your_account_id" } } } }
Ask Claude things like:
Check Claude Desktop logs (following official debugging guide):
# macOS/Linux - Monitor logs in real-time tail -n 20 -f ~/Library/Logs/Claude/mcp*.log # Check for specific errors ls ~/Library/Logs/Claude/mcp-server-basecamp.log
Common issues:
oauth_tokens.json exists)Once configured, you can use these tools in Cursor:
get_projects - Get all Basecamp projectsget_project - Get details for a specific projectget_todolists - Get todo lists for a projectget_todos - Get todos from a todo list (returns all pages; handles Basecamp pagination transparently)search_basecamp - Search across projects, todos, and messagesget_comments - Get comments for a Basecamp itemcreate_comment - Create a comment on a Basecamp itemget_campfire_lines - Get recent messages from a Basecamp campfireget_daily_check_ins - Get project's daily check-in questionsget_question_answers - Get answers to daily check-in questionscreate_attachment - Upload a file as an attachmentget_events - Get events for a recordingget_webhooks - List webhooks for a projectcreate_webhook - Create a webhookdelete_webhook - Delete a webhookget_documents - List documents in a vaultget_document - Get a single documentcreate_document - Create a documentupdate_document - Update a documenttrash_document - Move a document to trashget_card_table - Get the card table details for a projectget_columns - Get all columns in a card tableget_column - Get details for a specific columncreate_column - Create a new column in a card tableupdate_column - Update a column titlemove_column - Move a column to a new positionupdate_column_color - Update a column colorput_column_on_hold - Put a column on hold (freeze work)remove_column_hold - Remove hold from a column (unfreeze work)watch_column - Subscribe to notifications for changes in a columnunwatch_column - Unsubscribe from notifications for a columnget_cards - Get all cards in a columnget_card - Get details for a specific cardcreate_card - Create a new card in a columnupdate_card - Update a cardmove_card - Move a card to a new columncomplete_card - Mark a card as completeuncomplete_card - Mark a card as incompleteget_card_steps - Get all steps (sub-tasks) for a cardcreate_card_step - Create a new step (sub-task) for a cardget_card_step - Get details for a specific card stepupdate_card_step - Update a card stepdelete_card_step - Delete a card stepcomplete_card_step - Mark a card step as completeuncomplete_card_step - Mark a card step as incompleteAsk Cursor things like:
The project uses the official Anthropic FastMCP framework for maximum reliability and compatibility:
basecamp_fastmcp.py) - Official MCP SDK with 46 tools, compatible with both Cursor and Claude Desktopoauth_app.py) - Handles OAuth 2.0 flow with Basecamptoken_storage.py) - Securely stores OAuth tokensbasecamp_client.py) - Basecamp API client librarysearch_utils.py) - Search across Basecamp resourcessetup.py) - One-command installationgenerate_cursor_config.py - For Cursor IDE integrationgenerate_claude_desktop_config.py - For Claude Desktop integrationpython setup.py to create proper virtual environment.env file, then re-run the config generatorProblem: Server won't start
# Test if FastMCP server works: ./venv/bin/python -c "import mcp; print('✅ MCP available')" # If this fails, run: python setup.py
Problem: Wrong Python version
python --version # Must be 3.8+ # If too old, install newer Python and re-run setup
Problem: Authentication fails
# Check OAuth flow: python oauth_app.py # Visit http://localhost:8000 and complete login
Cursor config location: ~/.cursor/mcp.json (macOS/Linux) or %APPDATA%\Cursor\mcp.json (Windows)
Claude Desktop config location: ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)
{ "mcpServers": { "basecamp": { "command": "/full/path/to/your/project/venv/bin/python", "args": ["/full/path/to/your/project/basecamp_fastmcp.py"], "cwd": "/full/path/to/your/project", "env": { "PYTHONPATH": "/full/path/to/your/project", "VIRTUAL_ENV": "/full/path/to/your/project/venv", "BASECAMP_ACCOUNT_ID": "your_account_id" } } } }
If you don't know your Basecamp account ID:
https://3.basecamp.com/4389629/projects.env file secure and never commit it to version controloauth_tokens.jsonThis project is licensed under the MIT License.