<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,并自动处理速率限制、类型安全性和错误处理。
此项目现在由Bun驱动! 🚀 我们已将整个项目迁移到Bun运行时,性能提升了2.8-4.4倍。所有现有的npx、pnpx和npm命令将继续完美工作。
examples目录,包含JavaScript、Python和TypeScript的详细实现。此外:现代MCP SDK架构、增强的类型安全性以及全面的文档!
详细的变更列表,请参阅CHANGELOG.md文件。
MCP Server Trello现已在官方MCP注册表中可用!MCP客户端可以自动发现并安装此服务器。
对于支持MCP注册表的客户端:
如果您已安装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(如上)更快。
{
"mcpServers": {
"trello": {
"command": "bunx",
"args": ["@delorenj/mcp-server-trello"],
"env": {
"TRELLO_API_KEY": "your-api-key",
"TRELLO_TOKEN": "your-token"
}
}
}
}
或者,如果您正在使用mise,您可以显式执行bunx与mise 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(从而获得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 install -g @delorenj/mcp-server-trello
(快速替代方案是bun add -g @delorenj/mcp-server-trello)
然后在您的MCP配置中使用npx mcp-server-trello作为命令。
要通过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
对于容器化环境:
git clone https://github.com/delorenj/mcp-server-trello
cd mcp-server-trello
cp .env.template .env
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
这些值可以从以下位置获取:
list_workspaces工具从版本0.3.0开始,MCP服务器支持多种方式处理看板:
多看板支持:所有方法现在接受一个可选的boardId参数
TRELLO_BOARD_ID并在每次API调用中提供boardIdTRELLO_BOARD_ID为默认值,并可选地使用boardId参数覆盖动态看板选择:使用工作区管理工具
.env文件中的TRELLO_BOARD_ID用于初始/默认看板IDset_active_board工具更改活动看板~/.trello-mcp/config.json中)set_active_workspace这允许您在不重启服务器的情况下处理多个看板和工作区。
{
name: 'list_boards',
arguments: {}
}
{
name: 'set_active_board',
arguments: {
boardId: "abc123" // 从list_boards响应中获取的ID
}
}
{
name: 'list_workspaces',
arguments: {}
}
{
name: 'set_active_workspace',
arguments: {
workspaceId: "xyz789" // 从list_workspaces响应中获取的ID
}
}
{
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惯例,其中开始日期是基于天数的标记,而截止日期可以包含特定的时间。
根据名称获取检查清单的所有项目。
{
name: 'get_checklist_items',
arguments: {
name: string, // 要从中检索项目的检查清单名称
boardId?: string // 可选:看板ID(如果没有提供,则使用默认值)
}
}
向现有检查清单添加新项目。
{
name: 'add_checklist_item',
arguments: {
text: string, // 检查清单项的文本内容
checkListName: string, // 要添加项目的检查清单名称
boardId?: string // 可选:看板ID(如果没有提供,则使用默认值)
}
}
搜索包含特定文本的检查清单项。
{
nbsp; name: 'find_checklist_items_by_description',
arguments: {
description: string, // 在检查清单项描述中搜索的文本
boardId?: string // 可选:看板ID(如果没有提供,则使用默认值)
nbsp; }
}
获取“验收标准”检查清单的所有项目。
{
name: 'get_acceptance_criteria',
arguments: {
boardId?: string // 可选:看板ID(如果没有提供,则使用默认值)
}
}
获取一个完整的检查清单及其所有项目和完成百分比。
{
name: 'get_checklist_by_name',
arguments: {
name: string, // 要检索的检查清单名称
boardId?: string // 可选:看板ID(如果没有提供,则使用默认值)
}
}
返回:CheckList对象,包含:
id:检查清单标识符name:检查清单名称items:CheckListItem对象数组percentComplete:完成百分比(0-100)获取特定Trello卡片的详细信息,具有人类级别的匹配度。
{
name: 'get_card',
arguments: {
cardId: string, // Trello卡片的ID(短ID如'FdhbArbK'或完整ID)
includeMarkdown?: boolean // 返回格式化的Markdown而不是JSON(默认:false)
}
}
返回:完整的卡片数据,包括:
从特定列表获取所有卡片。
{
name: 'get_cards_by_list_id',
arguments: {
boardId?: string, // 可选:看板ID(如果没有提供,则使用默认值)
listId: string // Trello列表的ID
}
}
从看板获取所有列表。
{
name: 'get_lists',
arguments: {
boardId?: string // 可选:看板ID(如果没有提供,则使用默认值)
}
}
获取看板上的最近活动。
{
name: 'get_recent_activity',
arguments: {
boardId?: string, // 可选:看板ID(如果没有提供,则使用默认值)
limit?: number // 可选:要获取的活动数量(默认:10)
}
}
将新卡片添加到指定列表。
{
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数组
}
}
更新现有卡片的详细信息。
{
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数组
}
}
将卡片发送到存档。
{
name: 'archive_card',
arguments: {
boardId?: string, // 可选:看板ID(如果没有提供,则使用默认值)
cardId: string // 要存档的卡片ID
}
}
向看板添加新列表。
{
nbsp; name: 'add_list_to_board',
arguments: {
boardId?: string, // 可选:看板ID(如果没有提供,则使用默认值)
name: string // 新列表的名称
}
}
将列表发送到存档。
{
name: 'archive_list',
arguments: {
boardId?: string, // 可选:看板