Trello API服务器

一个基于Model Context Protocol (MCP)的服务器,提供与Trello API交互的工具,支持全面的Trello操作和模块化架构。

  • by sergerehem
  • 本地部署
  • 更新于
在 GitHub 查看 sergerehem/trello-mcp-server

使用说明

Trello MCP服务器

一种模型上下文协议(MCP)服务器,提供与Trello API交互的工具。基于通用MCP服务器模板构建。

特性

  • Trello集成:完全访问Trello板、列表、卡片等
  • API全面覆盖:支持Trello的所有主要业务
  • 模块化架构:以明确界定的结构明确区分关注点
  • 类型安全:完全支持TypeScript,为Trello对象提供正确的类型
  • 错误处理:在整个代码库中进行强大的错误管理

项目结构

trello-mcp-server/
├── src/
│   ├── services/       # Service classes for Trello API interactions
│   │   ├── base-service.ts        # Abstract base service with common functionality
│   │   ├── trello-service.ts      # Core Trello API service
│   │   ├── board-service.ts       # Service for Trello boards
│   │   ├── list-service.ts        # Service for Trello lists
│   │   ├── card-service.ts        # Service for Trello cards
│   │   ├── member-service.ts      # Service for Trello members
│   │   ├── label-service.ts       # Service for Trello labels
│   │   ├── checklist-service.ts   # Service for Trello checklists
│   │   └── service-factory.ts     # Factory for creating service instances
│   ├── tools/          # MCP tool definitions and handlers
│   │   ├── board-tools.ts         # Board tool definitions
│   │   ├── board-tool-handlers.ts # Board tool handlers
│   │   ├── list-tools.ts          # List tool definitions
│   │   ├── list-tool-handlers.ts  # List tool handlers
│   │   ├── card-tools.ts          # Card tool definitions
│   │   ├── card-tool-handlers.ts  # Card tool handlers
│   │   ├── member-tools.ts        # Member tool definitions
│   │   ├── member-tool-handlers.ts # Member tool handlers
│   │   ├── label-tools.ts         # Label tool definitions
│   │   ├── label-tool-handlers.ts # Label tool handlers
│   │   ├── checklist-tools.ts     # Checklist tool definitions
│   │   ├── checklist-tool-handlers.ts # Checklist tool handlers
│   │   ├── trello-tools.ts        # Combined tool definitions
│   │   └── trello-tool-handlers.ts # Combined tool handlers
│   ├── types/          # TypeScript type definitions
│   │   └── trello-types.ts        # Trello type definitions
│   ├── config.ts       # Configuration management
│   └── index.ts        # Main entry point
├── .env.example        # Example environment variables
├── package.json        # Project dependencies and scripts
├── tsconfig.json       # TypeScript configuration
└── README.md           # Project documentation

入门指南

先决条件

  • Node.js 18或更高版本
  • npm或纱线
  • Trello API密钥和令牌

安装

  1. 克隆此存储库:

    git clone https://github.com/yourusername/trello-mcp-server.git
    cd trello-mcp-server
    
  2. 安装依赖项:

    npm install
    
  3. 创建一个 .env 文件基于 .env.example:

    cp .env.example .env
    
  4. 编辑 .env 使用您的Trello API密钥和令牌进行文件:

    TRELLO_API_KEY=your_trello_api_key
    TRELLO_TOKEN=your_trello_token
    

    您可以从 Trello开发者门户.

建立和运行

  1. 构建项目:

    npm run build
    
  2. 运行服务器:

    npm start
    

可用工具

服务器提供了与所有主要Trello资源交互的工具:

电路板工具

  • get_boards -获取已验证用户的所有板
  • get_board -按ID获取特定板
  • create_board -创建新板
  • update_board -更新现有板
  • delete_board -删除板
  • get_board_lists -将所有列表放在板上
  • get_board_members -获取董事会的所有成员
  • get_board_labels -将所有标签放在板上
  • close_board -关闭(存档)一个板
  • reopen_board -重新打开一个封闭的板

列出工具

  • get_list -按ID获取特定列表
  • create_list -在板上创建新列表
  • update_list -更新现有列表
  • archive_list -存档列表
  • unarchive_list -取消存档列表
  • move_list_to_board -将列表移动到其他板
  • get_cards_in_list -获取列表中的所有卡片
  • archive_all_cards -将所有卡片归档到列表中
  • move_all_cards -将列表中的所有卡片移动到另一个列表
  • update_list_position -更新板上列表的位置
  • update_list_name -更新列表名称
  • subscribe_to_list -订阅列表

卡片工具

  • get_card -通过ID获取特定卡
  • create_card -创建新卡
  • update_card -更新现有卡
  • delete_card -删除卡片
  • archive_card -将卡片存档
  • unarchive_card -取消卡片存档
  • move_card_to_list -将卡片移动到其他列表
  • add_comment -在卡片上添加评论
  • get_comments -在卡片上获取评论
  • add_attachment -在卡片上添加附件
  • get_attachments -在卡上获取附件
  • delete_attachment -从卡片中删除附件
  • add_member -向卡中添加成员
  • remove_member -从卡中删除成员
  • add_label -为卡片添加标签
  • remove_label -从卡片上移除标签
  • set_due_date -设置卡片的到期日期
  • set_due_complete -将卡片的到期日标记为完整或不完整

成员工具

  • get_me -获取经过身份验证的成员(当前用户)
  • get_member -通过ID或用户名获取特定成员
  • get_member_boards -获取成员所属的董事会
  • get_member_cards -获取分配给会员的卡片
  • get_boards_invited -获取已邀请成员加入的公告板
  • get_member_organizations -获取成员所属的组织
  • get_notifications -获取已验证成员的通知
  • update_me -更新已验证成员的信息
  • get_avatar -获取经过身份验证的成员的头像
  • search_members -按姓名搜索成员
  • get_board_members -招募董事会成员
  • get_organization_members -获取组织成员
  • get_card_members -为会员分配一张卡片

标签工具

  • get_label -按ID获取特定标签
  • create_label -在电路板上创建新标签
  • update_label -更新现有标签
  • delete_label -删除标签
  • get_board_labels -将所有标签放在板上
  • update_label_name -更新标签的名称
  • update_label_color -更新标签的颜色
  • create_label_on_card -直接在卡片上创建新标签
  • get_card_labels -在卡片上贴上所有标签
  • add_label_to_card -为卡片添加标签
  • remove_label_from_card -从卡片上移除标签

检查表工具

  • get_checklist -按ID获取特定清单
  • create_checklist -在卡片上创建新的检查表
  • update_checklist -更新现有检查表
  • delete_checklist -删除检查表
  • get_checkitems -获取检查表上的所有检查项
  • create_checkitem -在检查表上创建新的检查项
  • get_checkitem -在检查表上获得一个特定的检查项
  • update_checkitem -更新检查表上的检查项
  • delete_checkitem -从检查表中删除检查项
  • update_checklist_name -更新检查表的名称
  • update_checklist_position -更新卡片上检查表的位置
  • get_checklist_board -把清单拿到黑板上
  • get_checklist_card -拿到卡片,上面有清单
  • update_checkitem_state_on_card -更新卡上支票项目的状态

配置

服务器使用集中式配置系统 src/config.ts配置可以通过以下方式提供:

  • 环境变量
  • 命令行参数(带 --env KEY=VALUE)
  • 代码中的默认值

所需的环境变量:

  • TRELLO_API_KEY -您的Trello API密钥
  • TRELLO_TOKEN -您的Trello API代币

错误处理

服务器包括全面的错误处理:

  • 具有速率限制支持的服务级别错误处理
  • 使用正确的错误消息进行工具级错误处理
  • MCP协议错误处理
  • Trello API错误处理

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。