I craft unique cereal names, stories, and ridiculously cute Cereal Baby images.

Basecamp-MCP-Server
与BaseCamp 3+ API交互的MCP服务器
3 years
Works with Finder
1
Github Watches
1
Github Forks
2
Github Stars
Basecamp MCP Integration
This project provides a MCP (Magic Copy Paste) integration for Basecamp 3, allowing Cursor to interact with Basecamp directly through the MCP protocol.
Architecture
The project consists of the following components:
-
OAuth App (
oauth_app.py
) - A Flask application that handles the OAuth 2.0 flow with Basecamp. -
Token Storage (
token_storage.py
) - A module for securely storing OAuth tokens. -
MCP Server (
mcp_server.py
) - A Flask server that implements the MCP protocol for Basecamp. -
Basecamp Client (
basecamp_client.py
) - A client library for interacting with the Basecamp API. -
Basecamp OAuth (
basecamp_oauth.py
) - A utility for handling OAuth authentication with Basecamp. -
Search Utilities (
search_utils.py
) - Utilities for searching Basecamp resources.
Setup
Prerequisites
- Python 3.7+
- A Basecamp 3 account
- A Basecamp OAuth application (create one at https://launchpad.37signals.com/integrations)
Installation
-
Clone this repository:
git clone <repository-url> cd basecamp-mcp
-
Create and activate a virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Create a
.env
file with the following variables:BASECAMP_CLIENT_ID=your_client_id BASECAMP_CLIENT_SECRET=your_client_secret BASECAMP_REDIRECT_URI=http://localhost:8000/auth/callback USER_AGENT="Your App Name (your@email.com)" BASECAMP_ACCOUNT_ID=your_account_id FLASK_SECRET_KEY=random_secret_key MCP_API_KEY=your_api_key COMPOSIO_API_KEY=your_composio_api_key
Usage
Starting the Servers
-
Start the OAuth app:
python oauth_app.py
-
Start the MCP server:
python mcp_server.py
OAuth Authentication
- Visit http://localhost:8000/ in your browser
- Click "Log in with Basecamp"
- Follow the OAuth flow to authorize the application
- The token will be stored securely in the token storage
Using with Cursor
- In Cursor, add the MCP server URL: http://localhost:5001
- Interact with Basecamp through the Cursor interface
- The MCP server will use the stored OAuth token to authenticate with Basecamp
Authentication Flow
When using the MCP server with Cursor, the authentication flow is as follows:
- Cursor makes a request to the MCP server
- The MCP server checks if OAuth authentication has been completed
- If not, it returns an error with instructions to authenticate
- You authenticate using the OAuth app at http://localhost:8000/
- After authentication, Cursor can make requests to the MCP server
MCP Server API
The MCP server has two main methods for interacting with Basecamp:
Preferred Method: Connection-based Approach
This approach is recommended as it provides better error handling and state management:
-
Initiate a connection:
POST /initiate_connection { "auth_mode": "oauth" }
-
Use the returned connection ID to make tool calls:
POST /tool/<connection_id> { "action": "get_projects" }
If OAuth authentication hasn't been completed, the MCP server will return an error with instructions to authenticate.
Alternative Method: Direct Action
For simple requests, you can use the action endpoint:
POST /mcp/action
{
"action": "get_projects"
}
This method also checks for OAuth authentication and returns appropriate error messages if needed.
Token Management
- Tokens are stored in
oauth_tokens.json
- The token will be refreshed automatically when it expires
- You can view token info at http://localhost:8000/token/info
- You can logout and clear the token at http://localhost:8000/logout
Troubleshooting
- Token Issues: If you encounter authentication errors, try logging out and logging in again through the OAuth app
- MCP Connection Issues: Make sure both the OAuth app and MCP server are running
-
API Errors: Check the logs in
oauth_app.log
andmcp_server.log
for detailed error messages
Security Considerations
- This implementation uses file-based token storage, which is suitable for development but not for production
- In a production environment, use a database or secure key management service for token storage
- Always use HTTPS in production and implement proper authentication for the API endpoints
License
This project is licensed under the MIT License - see the LICENSE file for details.
Recent Changes
March 9, 2024 - Improved MCP Server Functionality
- Added standardized error and success response handling with new
mcp_response
helper function - Fixed API endpoint issues for Basecamp Campfire (chat) functionality:
- Updated the URL format for retrieving campfires from
projects/{project_id}/campfire.json
tobuckets/{project_id}/chats.json
- Added support for retrieving campfire chat lines
- Updated the URL format for retrieving campfires from
- Enhanced search capabilities to include campfire lines content
- Improved error handling and response formatting across all action handlers
- Fixed CORS support by adding the Flask-CORS package
These changes ensure more reliable and consistent responses from the MCP server, particularly for Campfire chat functionality.
March 9, 2024 - Added Composio Integration
Added support for Composio integration, allowing the Basecamp MCP server to be used with Composio for AI-powered workflows. This integration follows the Model Context Protocol (MCP) standards and includes:
-
New endpoints for Composio compatibility:
-
/composio/schema
- Returns the schema of available tools in Composio-compatible format -
/composio/tool
- Handles Composio tool calls with standardized parameters -
/composio/check_auth
- Checks authentication status for Composio requests
-
-
Standardized tool naming and parameter formats to work with Composio's MCP specifications
-
A standalone example client for testing and demonstrating the integration
Using with Composio
Prerequisites
- Create a Composio account at https://app.composio.dev
- Obtain a Composio API key from your Composio dashboard
- Add your API key to your
.env
file:COMPOSIO_API_KEY=your_composio_api_key
Setting Up Composio Integration
-
Make sure you have authenticated with Basecamp using the OAuth app (http://localhost:8000/)
-
Run the MCP server with the Composio integration enabled:
python mcp_server.py
-
In your Composio dashboard, add a new custom integration:
- Integration URL:
http://localhost:5001/composio/schema
- Authentication: OAuth (managed by our implementation)
- Integration URL:
-
You can now use Composio to connect to your Basecamp account through the MCP server:
- Composio will discover available tools via the schema endpoint
- Tool executions will be handled by the
/composio/tool
endpoint - Authentication status is checked via the
/composio/check_auth
endpoint
Example Composio Client
We provide a simple client example in composio_client_example.py
that demonstrates how to:
- Check authentication status
- Retrieve the tool schema
- Execute various Basecamp operations through the Composio integration
Run the example with:
python composio_client_example.py
Testing the Integration
To test the integration without connecting to Composio:
-
Run the MCP server:
python mcp_server.py
-
Use curl to test the endpoints directly:
# Check authentication status curl http://localhost:5001/composio/check_auth # Get the schema curl http://localhost:5001/composio/schema # Execute a tool (get projects) curl -X POST http://localhost:5001/composio/tool \ -H "Content-Type: application/json" \ -d '{"tool": "GET_PROJECTS", "params": {}}'
For more detailed documentation on Composio integration, refer to the official Composio documentation.
相关推荐
Confidential guide on numerology and astrology, based of GG33 Public information
A geek-themed horoscope generator blending Bitcoin prices, tech jargon, and astrological whimsy.
A world class elite tech co-founder entrepreneur, expert in software development, entrepreneurship, marketing, coaching style leadership and aligned with ambition for excellence, global market penetration and worldy perspectives.
A medical specialist offering assistance grounded in clinical guidelines. Disclaimer: This is intended for research and is NOT safe for clinical use!
Reviews

user_JfLl9tpQ
As a dedicated user of Runbook MCP Server, I am thoroughly impressed by its seamless integration and robust functionality. Runbookai has developed an exceptional product that enhances server management efficiency and reliability. I highly recommend it to anyone looking to streamline their server operations. The intuitive interface and comprehensive features make it a must-have for any IT professional.