这是一个基于 Model Context Protocol (MCP) 概念实现的服务器,用于连接 Basecamp 3 与支持 MCP 的 LLM 客户端或 AI 平台(如 Cursor、Composio)。它允许 AI 直接访问和操作您的 Basecamp 数据。
项目简介
该项目作为 Basecamp 3 的应用后端,通过实现一套标准化的接口,使得 LLM 客户端能够获取 Basecamp 中的信息(如项目列表、待办事项、聊天记录、评论等)并执行某些操作(如创建评论、搜索等)。它通过 OAuth 2.0 协议与 Basecamp API 进行安全认证。
主要功能点
- 资源访问: 获取 Basecamp 中的项目、待办清单、待办事项、聊天室(Campfire)及其消息、评论等数据。
- 工具执行: 支持 AI 调用预定义的功能,例如搜索 Basecamp 中的各类资源、创建评论。
- 认证管理: 通过 OAuth 2.0 标准流程安全地连接和管理 Basecamp 账号的访问权限,支持令牌自动刷新。
- 多种接口: 提供直接的 MCP Action 接口、基于连接的 Tool 接口,以及兼容 Composio 平台的 MCP 接口。
安装步骤
- 克隆仓库:
git clone https://github.com/georgeantonopoulos/Basecamp-MCP-Server.git cd Basecamp-MCP-Server - 创建并激活 Python 虚拟环境:
python -m venv venv source venv/bin/activate # Windows 上使用: venv\Scripts\activate - 安装依赖:
pip install -r requirements.txt - 配置环境变量:
- 在仓库根目录创建 '.env' 文件。
- 从 Basecamp 3 注册一个 OAuth 应用(访问 'https://launchpad.37signals.com/integrations'),获取 'Client ID' 和 'Client Secret'。
- 设置 '.env' 文件内容,替换占位符:
BASECAMP_CLIENT_ID=your_basecamp_client_id BASECAMP_CLIENT_SECRET=your_basecamp_client_secret BASECAMP_REDIRECT_URI=http://localhost:8000/auth/callback # 确保与你的 OAuth 应用配置一致 USER_AGENT="Your App Name ([email protected])" # 例如:BasecampMCPConnector ([email protected]) BASECAMP_ACCOUNT_ID=your_basecamp_account_id # 可选,认证后会自动获取并存储 FLASK_SECRET_KEY=a_random_secret_key # 任意随机字符串 MCP_API_KEY=your_mcp_api_key # 用于保护 /api/token 端点,任意随机字符串 COMPOSIO_API_KEY=your_composio_api_key # 可选,用于Composio集成,任意随机字符串 MCP_PORT=5001 # MCP 服务器运行端口,默认为 5001 PORT=8000 # OAuth 应用运行端口,默认为 8000 - 'BASECAMP_ACCOUNT_ID' 是你 Basecamp URL 中的数字(例如 'https://3.basecamp.com/1234567' 中的 '1234567')。如果在 '.env' 中未设置,成功进行 OAuth 认证后会自动尝试获取并存储。
服务器配置 (供 MCP 客户端使用)
这个 MCP 服务器通过 HTTP 协议提供接口。典型的 MCP 客户端需要配置如何启动服务器进程以及连接信息。以下是可能的配置示例 (具体格式取决于你的 MCP 客户端):
{ "name": "Basecamp MCP Server", "description": "Connects to Basecamp 3 via MCP", "command": "python", "args": ["mcp_server.py"], "connection": { "type": "http", "host": "localhost", "port": 5001, "url": "http://localhost:5001" }, "metadata": { "oauth_auth_url": "http://localhost:8000/" } }
- command: 用于启动 MCP 服务器进程的命令。这里是 'python'。
- args: 传递给 command 的参数,通常是服务器主程序文件。这里是 'mcp_server.py'。
- connection.type: 连接类型,这里是 'http'。
- connection.host: 服务器运行的主机地址,通常是 'localhost'。
- connection.port: 服务器监听的端口,默认为 '5001'。
- connection.url: 服务器的完整 URL。
- metadata.oauth_auth_url: OAuth 认证流程的起始 URL,客户端需要指引用户访问此地址完成认证。
基本使用方法
- 启动 OAuth 认证应用和 MCP 服务器:
- 在一个终端窗口中启动 OAuth 应用:
source venv/bin/activate # 如果使用了虚拟环境 python oauth_app.py - 在另一个终端窗口中启动 MCP 服务器:
source venv/bin/activate # 如果使用了虚拟环境 python mcp_server.py - 确保两个应用都成功启动并监听各自的端口(默认为 8000 和 5001)。
- 在一个终端窗口中启动 OAuth 应用:
- 进行 Basecamp OAuth 认证:
- 在浏览器中访问 OAuth 应用地址:'http://localhost:8000/'。
- 点击“Log in with Basecamp”按钮,按照 Basecamp 的指引完成授权流程。
- 授权成功后,令牌将安全地存储在本地(默认为 'oauth_tokens.json' 文件)。
- 在 MCP 客户端中使用:
- 根据你的 MCP 客户端(如 Cursor 或 Composio)的说明,配置一个新的 MCP 服务器连接,使用上面“服务器配置”中提供的信息(命令、端口等)。
- 如果客户端支持检测,它应该能识别并连接到正在运行的 Basecamp MCP 服务器。
- 现在,你的 AI 客户端应该能够访问和使用 Basecamp 的功能了,例如在对话中让 AI 搜索项目、获取待办事项或创建评论。
信息
分类
生产力应用