返回市场
MCP服务器看板

MCP服务器看板

作者:delorenj172 星标更新:2025-10-25

项目介绍

MCP Server Trello

Verified on MseeP MCP Registry npm version

<a href="https://glama.ai/mcp/servers/klqkamy7wt"><img width="380" height="200" src="https://gips1.baidu.com/it/u=3074939834,108201612&fm=3081&app=3081&f=PNG?w=760&h=400" alt="Server Trello MCP server" /></a>

这是一个提供与Trello看板交互工具的Model Context Protocol (MCP)服务器。该服务器能够无缝集成Trello的API,并自动处理速率限制、类型安全性和错误处理。

🎉 新增功能 v1.5.0:现在由Bun驱动! ⚡

此项目现在由Bun驱动! 🚀 我们已将整个项目迁移到Bun运行时,性能提升了2.8-4.4倍。所有现有的npxpnpxnpm命令将继续完美工作。

✨ 新增功能:

  • 🚀 性能提升:享受更快、更响应的服务器。
  • BUN Bun驱动:该项目现在运行在闪电般的Bun运行时上。
  • 📖 全面示例:一个新的examples目录,包含JavaScript、Python和TypeScript的详细实现。

此外:现代MCP SDK架构、增强的类型安全性以及全面的文档!

更新日志

详细的变更列表,请参阅CHANGELOG.md文件。

功能

  • 完整的Trello看板集成:与卡片、列表和看板活动进行交互
  • 🆕 完整卡片数据提取:获取所有卡片详情,包括检查清单、附件、标签、成员和评论
  • 💬 评论管理:添加、更新、删除和检索卡片上的评论
  • 文件附件:从URL附加任何类型的文件到卡片(PDF、文档、视频、图像等)
  • 内置速率限制:遵守Trello的API限制(每个API密钥每10秒300次请求,每个令牌每10秒100次请求)
  • 类型安全实现:用TypeScript编写并具有全面的类型定义
  • 输入验证:对所有API输入进行强大的验证
  • 错误处理:带有信息性消息的优雅错误处理
  • 动态看板选择:在看板和工作区之间切换而无需重启
  • Markdown格式化:以人类可读的Markdown格式导出卡片数据

安装

🚀 从MCP注册表安装(推荐)

MCP Server Trello现已在官方MCP注册表中可用!MCP客户端可以自动发现并安装此服务器。

对于支持MCP注册表的客户端:

  1. 搜索“mcp-server-trello”或“io.github.delorenj/mcp-server-trello”
  2. 直接从注册表安装
  3. 使用您的Trello凭据进行配置

🚀 使用Bun快速启动(最快)

如果您已安装Bun,使用bunx是运行服务器的最快方式:

{
  "mcpServers": {
    "trello": {
      "command": "bunx",
      "args": ["@delorenj/mcp-server-trello"],
      "env": {
        "TRELLO_API_KEY": "your-api-key",
        "TRELLO_TOKEN": "your-token"
      }
    }
  }
}

使用npx / pnpx / bunx快速启动

您仍然可以使用npxpnpx。这不需要全局安装并且会正常工作,尽管bunx(如上)更快。

{
  "mcpServers": {
    "trello": {
      "command": "bunx",
      "args": ["@delorenj/mcp-server-trello"],
      "env": {
        "TRELLO_API_KEY": "your-api-key",
        "TRELLO_TOKEN": "your-token"
      }
    }
  }
}

或者,如果您正在使用mise,您可以显式执行bunxmise exec

{
  "mcpServers": {
    "trello": {
      "command": "mise",
      "args": ["x", "--", "bunx", "@delorenj/mcp-server-trello"],
      "env": {
        "TRELLO_API_KEY": "your-api-key",
        "TRELLO_TOKEN": "your-token"
      }
    }
  }
}

要连接一个Trello工作区,您需要手动为每个工作区获取一次TRELLO_TOKEN。设置好您的Trello Power-Up后,访问以下URL:

https://trello.com/1/authorize?expiration=never&name=YOUR_APP_NAME&scope=read,write&response_type=token&key=YOUR_API_KEY

替换:

  • YOUR_APP_NAME为应用程序的名称(例如,“我的Trello集成”)。此名称将在Trello授权屏幕上显示给用户。
  • YOUR_API_KEY为您的Trello Power-Up的API密钥

这将生成所需的集成令牌。

[!NOTE] 参数expiration=never创建了一个不会过期的令牌。为了增强安全性,考虑使用expiration=30days并在您的设置允许的情况下定期更新令牌。

没有Bun?

获取bun(从而获得bunx)最简单的方法是通过mise

# 安装mise(如果还没有安装)
curl https://mise.run | sh

# 安装bun并将最新版本作为系统默认
mise use bun@latest -g

# 或者只需从项目目录运行`mise install`来本地安装Bun
cd /path/to/mcp-server-trello
mise install

通过npm安装

如果您更喜欢直接使用npm

npm install -g @delorenj/mcp-server-trello

(快速替代方案是bun add -g @delorenj/mcp-server-trello)

然后在您的MCP配置中使用npx mcp-server-trello作为命令。

通过Smithery安装

要通过Smithery自动安装Trello Server for Claude Desktop:

# 使用bunx(推荐)
bunx -y @smithery/cli install @delorenj/mcp-server-trello --client claude

# 使用npx
npx -y @smithery/cli install @delorenj/mcp-server-trello --client claude

Docker安装

对于容器化环境:

  1. 克隆仓库:
git clone https://github.com/delorenj/mcp-server-trello
cd mcp-server-trello
  1. 复制环境模板并填写您的Trello凭据:
cp .env.template .env
  1. 使用Docker Compose构建并运行:
docker compose up --build

配置

环境变量

服务器可以通过环境变量进行配置。在根目录创建一个.env文件,包含以下变量:

# 必需:您的Trello API凭据
TRELLO_API_KEY=your-api-key
TRELLO_TOKEN=your-token

# 可选(已弃用):默认看板ID(以后可以使用set_active_board更改)
TRELLO_BOARD_ID=your-board-id

# 可选:初始工作区ID(以后可以使用set_active_workspace更改)
TRELLO_WORKSPACE_ID=your-workspace-id

这些值可以从以下位置获取:

  • API密钥:https://trello.com/app-key
  • 令牌:使用您的API密钥生成
  • 看板ID(可选,已弃用):在看板URL中找到(例如,[可疑链接已移除])
  • 工作区ID:在工作区设置中找到或使用list_workspaces工具

看板和工作区管理

从版本0.3.0开始,MCP服务器支持多种方式处理看板:

  1. 多看板支持:所有方法现在接受一个可选的boardId参数

    • 省略TRELLO_BOARD_ID并在每次API调用中提供boardId
    • 设置TRELLO_BOARD_ID为默认值,并可选地使用boardId参数覆盖
  2. 动态看板选择:使用工作区管理工具

    • 您的.env文件中的TRELLO_BOARD_ID用于初始/默认看板ID
    • 您可以随时使用set_active_board工具更改活动看板
    • 所选看板在服务器重启之间持久存在(存储在~/.trello-mcp/config.json中)
    • 同样,您可以设置并持久保存活动工作区,使用set_active_workspace

这允许您在不重启服务器的情况下处理多个看板和工作区。

示例工作流程

  1. 从列出可用看板开始:
{
  name: 'list_boards',
  arguments: {}
}
  1. 设置您的活动看板:
{
  name: 'set_active_board',
  arguments: {
    boardId: "abc123"  // 从list_boards响应中获取的ID
  }
}
  1. 如果需要,列出工作区:
{
  name: 'list_workspaces',
  arguments: {}
}
  1. 如果需要,设置活动工作区:
{
  name: 'set_active_workspace',
  arguments: {
    workspaceId: "xyz789"  // 从list_workspaces响应中获取的ID
  }
}
  1. 检查当前活动看板信息:
{
  name: 'get_active_board_info',
  arguments: {}
}

日期格式指南

当在Trello MCP服务器中处理日期时,请注意不同的格式要求:

  • 截止日期(dueDate:接受完整的ISO 8601格式带时间(例如,2023-12-31T12:00:00Z
  • 开始日期(start:仅接受YYYY-MM-DD格式的日期(例如,2025-08-05

这种区别遵循Trello的API惯例,其中开始日期是基于天数的标记,而截止日期可以包含特定的时间。

可用工具

检查清单管理工具 🆕

get_checklist_items

根据名称获取检查清单的所有项目。

{
  name: 'get_checklist_items',
  arguments: {
    name: string,        // 要从中检索项目的检查清单名称
    boardId?: string     // 可选:看板ID(如果没有提供,则使用默认值)
  }
}

add_checklist_item

向现有检查清单添加新项目。

{
  name: 'add_checklist_item',
  arguments: {
    text: string,           // 检查清单项的文本内容
    checkListName: string,  // 要添加项目的检查清单名称
    boardId?: string        // 可选:看板ID(如果没有提供,则使用默认值)
  }
}

find_checklist_items_by_description

搜索包含特定文本的检查清单项。

{
nbsp; name: 'find_checklist_items_by_description',
  arguments: {
    description: string,  // 在检查清单项描述中搜索的文本
    boardId?: string      // 可选:看板ID(如果没有提供,则使用默认值)
nbsp; }
}

get_acceptance_criteria

获取“验收标准”检查清单的所有项目。

{
  name: 'get_acceptance_criteria',
  arguments: {
    boardId?: string  // 可选:看板ID(如果没有提供,则使用默认值)
  }
}

get_checklist_by_name

获取一个完整的检查清单及其所有项目和完成百分比。

{
  name: 'get_checklist_by_name',
  arguments: {
    name: string,     // 要检索的检查清单名称
    boardId?: string  // 可选:看板ID(如果没有提供,则使用默认值)
  }
}

返回CheckList对象,包含:

  • id:检查清单标识符
  • name:检查清单名称
  • itemsCheckListItem对象数组
  • percentComplete:完成百分比(0-100)

get_card 🆕

获取特定Trello卡片的详细信息,具有人类级别的匹配度。

{
  name: 'get_card',
  arguments: {
    cardId: string,          // Trello卡片的ID(短ID如'FdhbArbK'或完整ID)
    includeMarkdown?: boolean // 返回格式化的Markdown而不是JSON(默认:false)
  }
}

返回:完整的卡片数据,包括:

  • ✅ 检查清单及其项目状态和分配
  • 📎 附件及其预览和元数据
  • 🏷️ 标签及其名称和颜色
  • 👥 分配的成员
  • 💬 评论和活动
  • 📊 统计数据(徽章)
  • 🎨 封面图片
  • 📍 看板和列表上下文

get_cards_by_list_id

从特定列表获取所有卡片。

{
  name: 'get_cards_by_list_id',
  arguments: {
    boardId?: string, // 可选:看板ID(如果没有提供,则使用默认值)
    listId: string    // Trello列表的ID
  }
}

get_lists

从看板获取所有列表。

{
  name: 'get_lists',
  arguments: {
    boardId?: string  // 可选:看板ID(如果没有提供,则使用默认值)
  }
}

get_recent_activity

获取看板上的最近活动。

{
  name: 'get_recent_activity',
  arguments: {
    boardId?: string, // 可选:看板ID(如果没有提供,则使用默认值)
    limit?: number    // 可选:要获取的活动数量(默认:10)
  }
}

add_card_to_list

将新卡片添加到指定列表。

{
  name: 'add_card_to_list',
  arguments: {
    boardId?: string,     // 可选:看板ID(如果没有提供,则使用默认值)
    listId: string,       // 要添加卡片的列表ID
    name: string,         // 卡片名称
    description?: string, // 可选:卡片描述
  mbs; dueDate?: string,     // 可选:截止日期(ISO 8601格式带时间)
    start?: string,       // 可选:开始日期(YYYY-MM-DD格式,仅日期)
    labels?: string[]     // 可选:标签ID数组
  }
}

update_card_details

更新现有卡片的详细信息。

{
  name: 'update_card_details',
  arguments: {
    boardId?: string,     // 可选:看板ID(如果没有提供,则使用默认值)
    cardId: string,       // 要更新的卡片ID
    name?: string,        // 可选:卡片的新名称
    description?: string, // 可选:新描述
    dueDate?: string,     // 可选:新的截止日期(ISO 8601格式带时间)
    start?: string,       // 可选:新的开始日期(YYYY-MM-DD格式,仅日期)
    dueComplete?: boolean,// 可选:将截止日期标记为完成(true)或未完成(false)
    labels?: string[]     // 可选:新的标签ID数组
  }
}

archive_card

将卡片发送到存档。

{
  name: 'archive_card',
  arguments: {
    boardId?: string, // 可选:看板ID(如果没有提供,则使用默认值)
    cardId: string    // 要存档的卡片ID
  }
}

add_list_to_board

向看板添加新列表。

{
nbsp; name: 'add_list_to_board',
  arguments: {
    boardId?: string, // 可选:看板ID(如果没有提供,则使用默认值)
    name: string      // 新列表的名称
  }
}

archive_list

将列表发送到存档。

{
  name: 'archive_list',
  arguments: {
    boardId?: string, // 可选:看板