这是一个基于 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 接口。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/georgeantonopoulos/Basecamp-MCP-Server.git
    cd Basecamp-MCP-Server
  2. 创建并激活 Python 虚拟环境:
    python -m venv venv
    source venv/bin/activate  # Windows 上使用: venv\Scripts\activate
  3. 安装依赖:
    pip install -r requirements.txt
  4. 配置环境变量:
    • 在仓库根目录创建 '.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,客户端需要指引用户访问此地址完成认证。

基本使用方法

  1. 启动 OAuth 认证应用和 MCP 服务器:
    • 在一个终端窗口中启动 OAuth 应用:
      source venv/bin/activate # 如果使用了虚拟环境
      python oauth_app.py
    • 在另一个终端窗口中启动 MCP 服务器:
      source venv/bin/activate # 如果使用了虚拟环境
      python mcp_server.py
    • 确保两个应用都成功启动并监听各自的端口(默认为 8000 和 5001)。
  2. 进行 Basecamp OAuth 认证:
    • 在浏览器中访问 OAuth 应用地址:'http://localhost:8000/'。
    • 点击“Log in with Basecamp”按钮,按照 Basecamp 的指引完成授权流程。
    • 授权成功后,令牌将安全地存储在本地(默认为 'oauth_tokens.json' 文件)。
  3. 在 MCP 客户端中使用:
    • 根据你的 MCP 客户端(如 Cursor 或 Composio)的说明,配置一个新的 MCP 服务器连接,使用上面“服务器配置”中提供的信息(命令、端口等)。
    • 如果客户端支持检测,它应该能识别并连接到正在运行的 Basecamp MCP 服务器。
    • 现在,你的 AI 客户端应该能够访问和使用 Basecamp 的功能了,例如在对话中让 AI 搜索项目、获取待办事项或创建评论。

信息

分类

生产力应用