Basecamp MCP 服务器

通过模型上下文协议将Basecamp工作区连接到Claude和其他AI工具,提供项目、消息、待办事项等管理功能。

  • by kbhalerao
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 kbhalerao/basecamp-mcp

使用说明

Basecamp MCP 服务器

通过模型上下文协议,将您的Basecamp工作区连接到Claude和其他AI工具。

设置

获取Basecamp API凭证

  1. 首选 Basecamp(可译为“基地营”或根据具体语境译为其他名称,如“总部营地”等,但“Basecamp”本身常直接作为专有名词使用,不直接翻译) 并登录
  2. 点击您的个人资料 →“设置”→“个人访问令牌”(或“集成与应用程序”→“API凭证”)
  3. 创建一个新的令牌(需要“全部访问权限”)
  4. 复制令牌
  5. 在您的工作区中,找到URL中的账户ID(例如。, https://3.basecamp.com/ACCOUNT_ID)

2. 设置环境变量

export BASECAMP_API_TOKEN="your_token_here"
export BASECAMP_ACCOUNT_ID="your_account_id_here"

或者创建一个 .env 项目根目录下的文件(添加到 .gitignore):

BASECAMP_API_TOKEN=your_token_here
BASECAMP_ACCOUNT_ID=your_account_id_here

3. 安装依赖项

uv sync

4. 运行服务器

uv run python -m basecamp_mcp.server

或者直接运行它:

uv run python src/basecamp_mcp/server.py

特点/功能

工具(克劳德可调用的功能)

  • get_projects - 列出所有Basecamp项目
  • get_project_details - 获取项目的详细信息
  • get_messages - 获取项目中的最新消息
  • get_message_with_comments - 获取包含所有评论的特定消息
  • get_todos - 获取待办事项(可选择按完成状态过滤)
  • create_message - 在项目中创建一条新消息
  • update_todo - 将待办事项标记为已完成/未完成
  • get_schedules - 从项目中获取时间表
  • clear_cache - 清除所有缓存数据
  • get_cache_stats - 查看缓存统计信息

资源(克劳德可读取的数据)

  • basecamp://projects - 所有项目的列表
  • basecamp://project/{project_id}/summary - 项目概要及最新活动情况

缓存

服务器使用SQLite进行具有TTL(生存时间)的持久缓存:

  • 项目5分钟缓存
  • 信息2分钟缓存
  • 所有人2分钟缓存
  • 项目详情10分钟缓存

使用 get_cache_stats 查看缓存命中率和大小,或 clear_cache 强制刷新数据。

项目结构

BaseCampMCP/
├── src/
│   └── basecamp_mcp/
│       ├── __init__.py
│       ├── server.py       # Main MCP server with tools & resources
│       └── cache.py        # SQLite cache manager
├── pyproject.toml          # Project configuration
└── README.md

与Claude桌面应用的集成

与Claude桌面版配合使用:

  1. 编辑 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) 或 Windows 等效系统
  2. 添加服务器:
{
  "mcpServers": {
    "basecamp": {
      "command": "uv",
      "args": ["run", "--with", "mcp", "python", "-m", "basecamp_mcp.server"],
      "cwd": "/Users/kaustubh/Documents/BaseCampMCP"
    }
  }
}
  1. 重启Claude桌面版

发展

测试服务器

# Run with verbose logging
uv run python -m basecamp_mcp.server

查看缓存

缓存数据库存储在 basecamp_cache.db 在你的工作目录中。你可以使用以下命令查看它:

sqlite3 basecamp_cache.db
sqlite> SELECT key, hits, expires_at FROM cache ORDER BY hits DESC;

API 参考文档

Basecamp API v1 所用端点

  • GET /projects.json - 列出项目
  • GET /projects/{id}.json - 获取项目详情
  • GET /projects/{id}/messages.json - 列出消息
  • GET /projects/{id}/messages/{message_id}.json - 获取消息
  • GET /projects/{id}/messages/{message_id}/comments.json - 获取评论
  • GET /projects/{id}/todos.json - 列出所有待办事项
  • GET /projects/{id}/todolists/{list_id}/todos.json - 从列表中获取所有待办事项
  • PUT /projects/{id}/todos/{todo_id}.json - 更新待办事项
  • POST /projects/{id}/messages.json - 创建消息
  • GET /projects/{id}/schedules.json - 列出时间表

许可证

麻省理工学院(MIT)