返回市场
看板-mcp

看板-mcp

作者:bivex15 星标更新:2025-08-07

项目介绍

技术文档摘要

🚀 Kanboard MCP Server

Kanboard 集成的 Model Context Protocol (MCP) 服务器

这是一个基于 Go 的强大 MCP 服务器,它实现了 AI 助手(如 Claude Desktop、Cursor)与 Kanboard 项目管理系统之间的无缝集成。通过自然语言命令直接管理您的 Kanboard 项目、任务、用户和工作流程。

Kanboard MCP Server 演示

Go License MCP

⚠️ 警告: 为了避免以下问题:

代理错误示例 1 代理错误示例 2

我们建议使用 mcpproxy 作为代理解决方案。

📋 目录

✨ 特性

  • 🔗 与 Kanboard 的无缝集成 - 与 Kanboard 的直接 API 通信
  • 🤖 自然语言处理 - 使用纯英语管理您的项目
  • 📊 完整的项目管理 - 处理项目、任务、用户、列等
  • 🔐 安全认证 - 支持 API 密钥和用户名/密码认证
  • 高性能 - 使用 Go 构建以实现最佳性能
  • 🎯 MCP 标准 - 兼容所有 MCP 客户端

🚀 快速开始

前提条件

  • Go 1.21 或更高版本
  • 具有 API 访问权限的 Kanboard 实例
  • 兼容 MCP 的客户端(Cursor、Claude Desktop 等)

安装

  1. 克隆仓库:

    git clone https://github.com/bivex/kanboard-mcp.git
    cd kanboard-mcp
    
  2. 构建可执行文件:

    在 Windows 上:

    build-release.bat
    

    在 Linux/macOS 上:

    ./build-release.sh
    

    手动构建:

    go build -ldflags="-s -w" -o kanboard-mcp .
    

⚙️ 配置

1. 环境变量

使用环境变量设置您的 Kanboard 凭据:

export KANBOARD_API_ENDPOINT="https://your-kanboard-url/jsonrpc.php"
export KANBOARD_API_KEY="your-kanboard-api-key"
export KANBOARD_USERNAME="your-kanboard-username"
export KANBOARD_PASSWORD="your-kanboard-password"

2. MCP 客户端配置

为您的客户端创建 MCP 配置文件:

位置:

  • Windows: C:\Users\YOUR_USERNAME\AppData\Roaming\Cursor\.cursor\mcp_config.json
  • Linux/macOS: ~/.cursor/mcp_config.json

配置:

{
  "mcpServers": {
    "kanboard-mcp-server": {
      "command": "/path/to/your/kanboard-mcp",
      "args": [],
      "env": {
        "KANBOARD_API_ENDPOINT": "https://your-kanboard-url/jsonrpc.php",
        "KANBOARD_API_KEY": "your-kanboard-api-key",
        "KANBOARD_USERNAME": "your-kanboard-username",
        "KANBOARD_PASSWORD": "your-kanboard-password"
      }
    }
  }
}

3. 重启您的客户端

保存配置后,重启您的 MCP 客户端(Cursor、Claude Desktop 等),以便更改生效。

🛠️ 可用工具

📁 项目管理

工具描述示例
get_projects📋 列出所有项目"显示所有 Kanboard 项目"
create_project➕ 创建新项目"创建一个名为 '网站重构' 的项目,描述为 '重新设计公司网站',拥有者为 1"
get_project_by_id🔍 通过 ID 获取项目信息"获取 ID 123 的项目详情"
get_project_by_name🔍 通过名称获取项目信息"获取名称为 '我的项目' 的项目详情"
get_project_by_identifier🔍 通过标识符获取项目信息"获取标识符为 'WEB-APP' 的项目详情"
get_project_by_email🔍 通过电子邮件获取项目信息"获取电子邮件为 'project@example.com' 的项目详情"
get_all_projects📋 获取所有可用项目"显示所有可用项目"
update_project✏️ 更新项目"更新项目 1 的新名称为 '新网站' 和描述为 '更新描述'"
remove_project🗑️ 删除项目"删除 ID 为 456 的项目"
enable_project✅ 启用项目"启用项目 123"
disable_project🚫 禁用项目"禁用项目 123"
enable_project_public_access🌐 启用给定项目的公共访问"启用项目 123 的公共访问"
disable_project_public_access🔒 禁用给定项目的公共访问"禁用项目 123 的公共访问"
get_project_activity📢 获取项目的活动流"显示项目 123 的活动"
get_project_activities📊 获取项目的活动源"获取项目 1、2 和 3 的活动"

📝 任务管理

工具描述示例
get_tasks📋 获取项目任务"获取 '网站重构' 项目的任务"
create_task➕ 创建新任务"在 '网站重构' 中创建任务 '设计首页'"
update_task✏️ 修改现有任务"更新任务 123 的描述为 '新的要求'"
delete_task🗑️ 删除任务"删除 ID 为 456 的任务"
get_task🔍 通过唯一 ID 获取任务"获取任务 789 的详细信息"
get_task_by_reference🔍 通过外部引用获取任务"获取项目 1 中引用为 'TICKET-1234' 的任务"
get_all_tasks📋 获取所有可用任务"获取项目 1 的所有活动任务"
get_overdue_tasks⏰ 获取所有逾期任务"显示所有逾期任务"
get_overdue_tasks_by_project⏰ 获取特定项目的逾期任务"显示项目 1 的逾期任务"
open_task✅ 将任务设为打开状态"打开任务 123"
close_task❌ 将任务设为关闭状态"关闭任务 123"
move_task_position➡️ 在同一板内移动任务到另一列、位置或泳道"将任务 123 移动到项目 1 的第 2 列,位置 1,泳道 1"
move_task_to_project➡️ 将任务移动到另一个项目"将任务 123 移动到项目 456"
duplicate_task_to_project📋 将任务复制到另一个项目"将任务 123 复制到项目 456"
search_tasks🔍 使用搜索引擎查找任务"在项目 2 中搜索查询 'assignee:nobody'"
assign_task👤 分配任务给用户"将 API 任务分配给 John"
set_task_due_date📅 设置任务截止日期"将登录任务的截止日期设置为 2024-01-15"

💬 评论管理

工具描述示例
create_comment➕ 创建新评论"为任务 123 创建评论 '会议记录',由用户 1 发布,可见于应用管理员"
get_task_comments📋 获取任务评论"显示任务 123 的所有评论"
get_comment🔍 获取评论信息"获取评论 789 的详细信息"
update_comment✏️ 更新评论"将评论 456 的内容更新为 '修订笔记'"
remove_comment🗑️ 删除评论"删除 ID 为 101 的评论"

🏗️ 列管理

工具描述示例
get_columns📋 列出项目列"显示项目 123 的所有列"
get_column🔍 获取单个列"获取列 456 的详细信息"
create_column➕ 添加新列"在项目 123 中创建一个 '测试' 列,任务限制为 5,描述为 '用于 UAT 测试'"
update_column✏️ 修改列设置"将列 123 的标题更改为 '审查',任务限制为 3,描述为 '需要最终审查'"
change_column_position🔄 更改列位置"将项目 456 中的列 123 移动到位置 3"
delete_column🗑️ 删除列"删除未使用的 '草稿' 列"

🏷️ 类别管理

工具描述示例
get_categories📋 列出项目类别"显示项目 123 的所有任务类别"
get_category🔍 获取类别信息"获取类别 456 的详细信息"
create_category➕ 添加任务类别"在项目 123 中创建一个 '修复 Bug' 类别,颜色为 '红色'"
update_category✏️ 修改类别"将类别 123 重命名为 '关键问题',并设置颜色为 '蓝色'"
delete_category🗑️ 删除类别"删除未使用的 '归档' 类别"

🏊 泳道管理

工具描述示例
get_swimlanes📋 列出项目的泳道(启用或禁用)并按位置排序"显示项目 1 的所有泳道"
get_active_swimlanes📋 获取项目的启用泳道列表(包括默认泳道如果已启用)"获取项目 1 的启用泳道"
get_swimlane🔍 通过 ID 获取泳道"获取 ID 为 1 的泳道详细信息"
get_swimlane_by_id🔍 通过 ID 获取泳道"获取 ID 为 1 的泳道详细信息"
get_swimlane_by_name🔍 通过名称获取泳道"获取项目 1 中名称为 '泳道 1' 的泳道详细信息"
change_swimlane_position🔄 移动泳道的位置(仅限启用泳道)"将项目 1 中的泳道 2 移动到位置 3"
create_swimlane➕ 添加新泳道"在项目 1 中创建一个 '前端团队' 泳道"
update_swimlane✏️ 更新泳道属性"更新项目 1 中的泳道 1,新名称为 '跨平台团队'"
remove_swimlane🗑️ 删除泳道"从项目 2 中移除泳道 1"
disable_swimlane🚫 禁用泳道"禁用项目 2 中的泳道 1"
enable_swimlane✅ 启用泳道"启用项目 2 中的泳道 1"

📋 板管理

工具描述示例
get_board📋 获取显示板所需的所有信息"显示项目 123 的板"

🧑‍💻 当前用户管理

工具描述示例
get_me👤 获取登录用户的会话"获取我的用户会话信息"
get_my_dashboard📊 获取登录用户的仪表盘"显示我的仪表盘"
get_my_activity_stream📢 获取登录用户的最后 100 个事件"显示我最近的活动"
create_my_private_project➕ 为登录用户创建一个私有项目"创建一个名为 '我的秘密项目' 的私有项目,描述为 '用于个人任务'"
get_my_projects_list📋 获取连接用户的项目列表"列出我参与的所有项目"
get_my_overdue_tasks⏰ 获取我的逾期任务"显示我所有逾期的任务"
get_my_projects📝 获取连接用户的项目及其详细信息"获取我所有项目的详细信息"

🔗 外部任务链接管理

工具描述示例
get_external_task_link_types📋 获取所有注册的外部链接提供者"显示所有外部链接类型"
get_ext_link_provider_deps⛓️ 获取给定提供者的可用依赖项"获取 'weblink' 提供者的依赖项"
create_external_task_link➕ 创建一个新的外部链接"为任务 123 创建一个指向 'http://example.com/doc.pdf' 的外部链接,依赖项为 'related',类型为 '附件'"
update_external_task_link✏️ 更新外部任务链接"更新任务 789 的外部链接 456,新标题为 '更新文档',URL 为 'http://new.example.com/doc.pdf'"
get_external_task_link_by_id🔍 通过 ID 获取外部任务链接"获取任务 789 的外部链接 456"
get_all_external_task_links📋 获取与任务关联的所有外部链接"显示任务 123 的所有外部链接"
remove_external_task_link🗑️ 删除外部链接"从任务 789 中删除外部链接 456"

🔗 内部任务链接管理

工具描述示例
create_task_link➕ 在两个任务之间创建链接"在任务 123 和任务 456 之间创建一个链接,链接类型为 1"
update_task_link✏️ 更新任务链接"更新任务 123 和任务 456 之间的任务链接 789,新链接类型为 2"
get_task_link_by_id🔍 通过 ID 获取任务链接"获取任务链接 101 的详细信息"
get_all_task_links📋 获取与任务相关的所有链接"显示任务 123 的所有链接"
remove_task_link🗑️ 删除两个任务之间的链接"删除任务链接 101"

🔗 链接管理

工具描述示例
get_all_links📋 获取任务之间可能关系的列表"显示所有可能的任务关系"
get_opposite_link_id🔍 获取任务链接的相反链接 ID"获取链接 2 的相反链接 ID"
get_link_by_label🔍 通过标签获取链接"获取标签为 'blocks' 的链接详细信息"
get_link_by_id🔍 通过 ID 获取链接"获取 ID 为 4 的链接详细信息"
create_link➕ 创建一个新的任务关系"创建一个标签为 'foo',相反标签为 'bar' 的链接"
update_link✏️ 更新链接"更新链接 14,相反链接为 12,标签为 'boo'"
remove_link🗑️ 删除链接"删除 ID 为 14 的链接"

📂 项目文件管理

| 工具 | 描述 | 示例 | |------|-------------