Trello协议服务器

一个基于Kotlin实现的Trello MCP服务器,使AI助手能够通过标准化协议与Trello看板、列表和卡片进行交互。

  • by iruirc
  • Kotlin
  • 本地部署
  • 更新于
在 GitHub 查看 iruirc/trelloMCP

使用说明

Trello MCP服务器

Trello的模型上下文协议(MCP)服务器实现,用Kotlin编写。该服务器使AI助手能够通过标准化协议与Trello板、列表和卡进行交互。

特性

董事会管理

  • 列出经过身份验证的用户的所有板
  • 获取详细的董事会信息
  • 创建新板

列表管理

  • 将所有列表放在板上
  • 使用自定义定位创建新列表

卡片管理

  • 获取卡详细信息
  • 在列表中列出所有卡片
  • 创建带有描述和到期日期的新卡片
  • 更新现有卡片(名称、描述、列表、状态、到期日期)

先决条件

  • JDK 21或更高版本
  • Gradle(包括包装)
  • Trello API证书:
    • API密钥来自https://trello.com/app-key
    • 从同一页面生成的令牌

安装

  1. 克隆或下载此存储库

  2. 获取Trello API证书:

    • 访问https://trello.com/app-key
    • 复制API密钥
    • 点击“令牌”链接生成具有读/写权限的令牌
    • 复制生成的令牌
  3. 配置凭据:

    创建一个 .env 项目根目录中的文件:

    cp .env.example .env
    

    编辑 .env 并添加您的凭据:

    TRELLO_API_KEY=your_api_key_here
    TRELLO_TOKEN=your_token_here
    
  4. 构建项目:

    ./gradlew build
    

用法

独立运行

./gradlew run

或者使用构建的JAR:

java -jar build/libs/trello-mcp-server-1.0.0.jar

Claude桌面配置

添加到您的Claude Desktop配置文件(~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):

使用JAR文件:

{
  "mcpServers": {
    "trello": {
      "command": "java",
      "args": [
        "-jar",
        "/absolute/path/to/trelloMCP/build/libs/trello-mcp-server-1.0.0.jar"
      ],
      "env": {
        "TRELLO_API_KEY": "your_api_key_here",
        "TRELLO_TOKEN": "your_token_here"
      }
    }
  }
}

使用Gradle:

{
  "mcpServers": {
    "trello": {
      "command": "./gradlew",
      "args": ["run", "--quiet", "--console=plain"],
      "cwd": "/absolute/path/to/trelloMCP",
      "env": {
        "TRELLO_API_KEY": "your_api_key_here",
        "TRELLO_TOKEN": "your_token_here"
      }
    }
  }
}

使用包装器脚本:

{
  "mcpServers": {
    "trello": {
      "command": "/absolute/path/to/trelloMCP/run-mcp-server.sh",
      "env": {
        "TRELLO_API_KEY": "your_api_key_here",
        "TRELLO_TOKEN": "your_token_here"
      }
    }
  }
}

可用工具

电路板工具

list_boards

  • 列出经过身份验证的用户的所有板
  • 无需参数
  • 返回:板ID、名称、描述、URL

get_board

  • 获取特定电路板的详细信息
  • 参数:
    • boardId (必填):板ID

create_board

  • 创建新的Trello板
  • 参数:
    • name (必填):董事会名称
    • desc (可选):电路板说明

列出工具

get_lists

  • 获取特定板上的所有列表
  • 参数:
    • boardId (必填):板ID

create_list

  • 在板上创建新列表
  • 参数:
    • boardId (必填):板ID
    • name (必填):列表名称
    • pos (可选):位置(“顶部”、“底部”或数字)

卡片工具

get_card

  • 获取卡的详细信息
  • 参数:
    • cardId (必填):卡ID

get_cards_in_list

  • 获取特定列表中的所有卡片
  • 参数:
    • listId (必填):列表ID

create_card

  • 在列表中创建新卡
  • 参数:
    • listId (必填):列表ID
    • name (必填):卡片标题
    • desc (可选):卡片描述
    • due (可选):截止日期(ISO 8601格式)
    • pos (可选):位置(“顶部”、“底部”或数字)

update_card

  • 更新现有卡
  • 参数:
    • cardId (必填):卡ID
    • name (可选):新卡标题
    • desc (可选):新描述
    • closed (可选):存档/取消存档(布尔值)
    • idList (可选):移动到其他列表(列表ID)
    • due (可选):新的截止日期(ISO 8601格式)

建筑

组件

  • McpServer:通过stdio实现JSON-RPC 2.0协议的主服务器
  • TrelloService:使用Ktor的Trello REST API的HTTP客户端
  • 模型:
    • MCP协议模型(JSON-RPC、工具、响应)
    • Trello实体模型(板、列表、卡片、标签、成员)

协议

实施MCP规范版本2024-11-05:

  • JSON-RPC 2.0标准输入/输出
  • 初始化过程中的能力协商
  • 工具发现和执行
  • 结构化错误处理

发展

项目结构

src/main/kotlin/com/example/mcp/trello/
├── McpServer.kt           # Main MCP server implementation
├── TrelloServer.kt        # Entry point
├── TrelloService.kt       # Trello API client
└── models/
    ├── McpModels.kt       # MCP protocol models
    └── TrelloModels.kt    # Trello entity models

建筑

# Build JAR
./gradlew build

# Clean build
./gradlew clean build

# Run tests
./gradlew test

依赖项

  • Kotlin 2.1.0
  • Ktor客户端2.3.7(HTTP客户端)
  • kotlinx序列化1.6.2(JSON处理)
  • 科特林测井5.1.0(测井)
  • dotenv kotlin 6.4.1(环境配置)

故障排除

服务器无法启动

  1. 检查是否安装了Java 21+: java -version
  2. 验证Trello凭据是否已在中设置 .env 或环境变量
  3. 查看错误日志 /tmp/trello-mcp-stderr.log (使用包装脚本时)

API错误

  • 验证您的API密钥和令牌是否有效
  • 检查令牌是否具有必要的权限(读/写)
  • 确保板/列表/卡ID正确

构建问题

如果遇到Java版本问题:

# Stop Gradle daemon
./gradlew --stop

# Build with specific Java version
JAVA_HOME=/path/to/java21 ./gradlew build

许可证

此项目按原样提供,用于模型上下文协议。

链接