关于 Kanboard Mcp Server
Kanboard MCP Server 是基于 Go 实现的 MCP 服务,用于连接 Kanboard 项目管理系统,让 Claude Desktop、Cursor 等 AI 助手通过自然语言管理项目、任务、用户、评论和文件等内容。适合使用 Kanboard 进行看板式任务管理的团队。README 建议配合 mcpproxy 使用以避免相关问题。
主要功能
- 01管理项目、任务、列与泳道
- 02创建、更新、移动与关闭任务
- 03评论、分类与截止日期管理
- 04支持 API Key、用户名密码等认证方式
- 05基于角色的访问控制(RBAC)
适用场景
- 01通过对话创建任务并分配给团队成员
- 02查询逾期任务与看板状态
- 03在 Cursor 中管理 Kanboard 项目内容
MCP 相关
向 MCP 客户端暴露 Kanboard 项目、任务、评论、列、泳道和看板等相关工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
🚀 Kanboard MCP Server
用于集成 Kanboard 的模型上下文协议(MCP)服务
一个功能强大的 Go 语言 MCP 服务,可让 AI 助手(如 Claude Desktop、Cursor)与 Kanboard 项目管理系统无缝集成。通过自然语言命令,直接管理 Kanboard 项目、任务、用户和工作流。

⚠️ 警告: 为避免出现以下问题:
我们建议使用 mcpproxy 作为代理解决方案。
📋 目录
✨ 功能
- 🔗 与 Kanboard 无缝集成 - 直接通过 API 与 Kanboard 通信
- 🤖 自然语言处理 - 使用通俗易懂的英语管理项目
- 📊 完整的项目管理 - 管理项目、任务、用户、列等
- 🔐 安全认证 - 支持 API 密钥和用户名/密码认证
- ⚡ 高性能 - 使用 Go 构建,性能出色
- 🎯 MCP 标准 - 兼容所有 MCP 客户端
🚀 快速开始
前提条件
- Go 1.21 或更高版本
- 可访问 API 的 Kanboard 实例
- 兼容 MCP 的客户端(Cursor、Claude Desktop 等)
安装
-
克隆仓库:
git clone https://github.com/bivex/kanboard-mcp.git cd kanboard-mcp -
构建可执行文件:
在 Windows 上:
build-release.bat在 Linux/macOS 上:
./build-release.sh手动构建:
go build -ldflags="-s -w" -o kanboard-mcp .
⚙️ 配置
1. 环境变量
使用环境变量设置 Kanboard 凭据和 RBAC 权限:
必需的凭据:
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"
RBAC 配置(可选):
配置用户角色以实现适当的访问控制。如果未设置,系统将尝试从 Kanboard API 获取角色;若失败,则使用 app-user 角色。
# Application-level roles (comma-separated)
# If not set, roles are automatically retrieved from Kanboard API
export KANBOARD_USER_APP_ROLES="app-manager"
# Project-specific roles (format: "project_id:role,project_id:role")
# If not set, project roles are automatically retrieved from Kanboard API
export KANBOARD_USER_PROJECT_ROLES="1:project-manager,2:project-member"
# Debug mode - shows detailed permission checking logs
export KANBOARD_DEBUG="true"
# Skip RBAC checks for debugging (use with caution!)
export KANBOARD_SKIP_RBAC="false"
可用的应用角色:
app-admin- 完整的系统管理员权限app-manager- 可创建项目和管理用户app-user- 基本用户权限(默认)
可用的项目角色:
project-manager- 完整的项目管理权限project-member- 可创建/修改任务和评论project-viewer- 对项目具有只读权限
🔐 认证方式:
Kanboard 通过 KANBOARD_AUTH_METHOD 支持不同的认证方式:
-
global_token(默认):使用jsonrpc:<token>格式的全局 API 令牌export KANBOARD_API_KEY="5348e6b4846fe09fd1670e922bc13e086f0827d7a66e45815cd7c3a7f67b" export KANBOARD_AUTH_METHOD="global_token" # or omit (default) -
user_token:使用<username>:<token>格式的用户专属 API 令牌export KANBOARD_USERNAME="admin" export KANBOARD_API_KEY="81820aeb3454985b0ac12166225f1f072f523175a752541c8670cf44a032d" export KANBOARD_AUTH_METHOD="user_token" -
bearer:使用 Bearer 令牌认证export KANBOARD_API_KEY="your-token-here" export KANBOARD_AUTH_METHOD="bearer"
🔧 RBAC 问题排查:
如果出现“拒绝访问”错误:
-
检查你在 Kanboard 中的用户角色:
- 前往 Kanboard 网页界面
- 检查用户个人资料/角色设置
- 确保你拥有适当的权限
-
启用调试日志:
export KANBOARD_DEBUG="true"这会在控制台中显示你当前的角色和权限检查结果。
-
测试时暂时跳过 RBAC:
export KANBOARD_SKIP_RBAC="true"⚠️ 警告: 仅用于调试!这会禁用所有权限检查。
-
通过环境变量手动设置角色:
export KANBOARD_USER_APP_ROLES="app-admin" export KANBOARD_USER_PROJECT_ROLES="27:project-manager"
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",
"KANBOARD_USER_APP_ROLES": "app-manager",
"KANBOARD_USER_PROJECT_ROLES": "1:project-manager"
}
}
}
}
3. 重启客户端
保存配置后,重启 MCP 客户端(Cursor、Claude Desktop 等),使更改生效。
🛠️ 可用工具
📁 项目管理
| 工具 | 描述 | 示例 |
|---|---|---|
get_projects | 📋 列出所有项目 | "显示所有 Kanboard 项目" |
create_project | ➕ 创建新项目 | "创建一个名为 'Website Redesign' 的项目,描述为 'Redesign the company website',负责人为 1" |
get_project_by_id | 🔍 按 ID 获取项目信息 | "获取 ID 为 123 的项目详情" |
get_project_by_name | 🔍 按名称获取项目信息 | "获取名称为 'My Project' 的项目详情" |
get_project_by_identifier | 🔍 按标识符获取项目信息 | "获取标识符为 'WEB-APP' 的项目详情" |
get_project_by_email | 🔍 按电子邮件获取项目信息 | "获取电子邮件为 '[email protected]' 的项目详情" |
get_all_projects | 📋 获取所有可用项目 | "显示所有可用项目" |
update_project | ✏️ 更新项目 | "将项目 1 的名称更新为 'New Website',描述更新为 'Updated description'" |
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 | 📋 获取项目任务 | "获取 'Website Redesign' 项目的任务" |
create_task | ➕ 创建新任务 | "在 'Website Redesign' 中创建任务 'Design homepage'" |
update_task | ✏️ 修改现有任务 | "将任务 123 的描述更新为 'New requirements'" |
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 | ➡️ 将任务移至同一看板中的其他列、位置或泳道 | "将项目 1 中的任务 123 移至第 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 创建一条评论 'Meeting notes',作者为用户 1,并向 app-managers 可见" |
get_task_comments | 📋 获取任务评论 | "显示任务 123 的所有评论" |
get_comment | 🔍 获取评论信息 | "获取评论 789 的详细信息" |
update_comment | ✏️ 更新评论 | "将评论 456 的内容更新为 'Revised notes'" |
remove_comment | 🗑️ 删除评论 | "删除 ID 为 101 的评论" |
🏗️ 列管理
| 工具 | 描述 | 示例 |
|---|---|---|
get_columns | 📋 列出项目中的列 | "显示项目 123 中的所有列" |
get_column | 🔍 获取单个列 | "获取列 456 的详细信息" |
create_column | ➕ 添加新列 | "在项目 123 中创建一个名为 'Testing' 的列,任务上限为 5,描述为 'For UAT testing'" |
update_column | ✏️ 修改列设置 | "将列 123 的标题改为 'Review',任务上限设为 3,描述为 'Needs final review'" |
change_column_position | 🔄 更改列的位置 | "将项目 456 中的列 123 移至位置 3" |
delete_column | 🗑️ 删除列 | "删除未使用的 'Draft' 列" |
🏷️ 分类管理
| 工具 | 描述 | 示例 |
|---|---|---|
get_categories | 📋 列出项目分类 | "显示项目 123 中的所有任务分类" |
get_category | 🔍 获取分类信息 | "获取分类 456 的详细信息" |
create_category | ➕ 添加任务分类 | "在项目 123 中创建一个名为 'Bug Fixes'、颜色为 'red' 的分类" |
update_category | ✏️ 修改分类 | "将分类 123 重命名为 'Critical Issues',并将颜色设为 'blue'" |
delete_category | 🗑️ 删除分类 | "删除未使用的 'Archive' 分类" |
🏊 泳道管理
| 工具 | 描述 | 示例 |
|---|---|---|
get_swimlanes | 📋 列出项目的所有泳道(已启用或已禁用),并按位置排序 | "显示项目 1 的所有泳道" |
get_active_swimlanes | 📋 获取项目中已启用泳道的列表(如果默认泳道已启用,则包括默认泳道) | "获取项目 1 中已启用的泳道" |
get_swimlane | 🔍 按 ID 获取泳道 | "获取 ID 为 1 的泳道详情" |
get_swimlane_by_id | 🔍 按 ID 获取泳道 | "获取 ID 为 1 的泳道详情" |
get_swimlane_by_name | 🔍 按名称获取泳道 | "获取项目 1 中名为 'Swimlane 1' 的泳道详情" |
change_swimlane_position | 🔄 更改泳道的位置(仅适用于已启用的泳道) | "将项目 1 中泳道 2 的位置改为 3" |
create_swimlane | ➕ 添加新泳道 | "在项目 1 中创建一个名为 'Frontend Team' 的泳道" |
update_swimlane | ✏️ 更新泳道属性 | "将项目 1 中泳道 1 的名称更新为 'Cross-Platform Team'" |
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 | ➕ 为已登录用户创建私有项目 | "创建一个名为 'My Secret Project'、描述为 'For personal tasks' 的私有项目" |
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',类型为 'attachment'" |
update_external_task_link | ✏️ 更新外部任务链接 | "更新任务 789 的外部链接 456,将标题改为 'Updated Document',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 的链接" |
📂 项目文件管理
| Tool | 描述 | 示例 |
|---|---|---|
create_project_file | ➕ 创建并上传新的项目附件 | "为项目 1 创建文件 'My Document.pdf',内容为 base64 编码的 'Zm9vYmFy'" |
get_all_project_files | 📋 获取项目的所有附件 | "显示项目 123 的所有文件" |
get_project_file | 🔍 获取文件信息 | "获取项目 123 中文件 456 的详细信息" |
download_project_file | 📥 下载项目文件内容(以 base64 编码) | "从项目 123 下载文件 456" |
remove_project_file | 🗑️ 移除与项目关联的文件 | "从项目 123 移除文件 456" |
remove_all_project_files | 🗑️ 移除与项目关联的所有文件 | "移除项目 123 的所有文件" |
📝 项目元数据管理
| Tool | 描述 | 示例 |
|---|---|---|
get_project_metadata | 📋 获取项目元数据 | "获取项目 123 的所有元数据" |
get_project_metadata_by_name | 🔍 获取单个元数据值 | "获取项目 123 的元数据 'my_key'" |
save_project_metadata | 💾 添加或更新元数据 | "为项目 123 保存元数据 'key1:value1, key2:value2'" |
remove_project_metadata | 🗑️ 移除项目元数据 | "从项目 123 移除元数据 'my_key'" |
🔐 项目权限管理
| Tool | 描述 | 示例 |
|---|---|---|
get_project_users | 📋 获取项目的所有成员 | "显示项目 123 中的所有用户" |
get_assignable_users | 👥 获取可分配给项目任务的用户(除查看者外的所有成员) | "获取项目 123 的可分配用户" |
add_project_user | ➕ 授予用户访问项目的权限 | "将用户 1 添加到项目 123,角色为 'project-member'" |
add_project_group | ➕ 授予群组访问项目的权限 | "将群组 456 添加到项目 123,角色为 'project-viewer'" |
remove_project_user | 🗑️ 撤销用户对项目的访问权限 | "从项目 123 移除用户 1" |
remove_project_group | 🗑️ 撤销群组对项目的访问权限 | "从项目 123 移除群组 456" |
change_project_user_role | ✏️ 更改用户在项目中的角色 | "将用户 1 在项目 123 中的角色更改为 'project-manager'" |
change_project_group_role | ✏️ 更改群组在项目中的角色 | "将群组 456 在项目 123 中的角色更改为 'project-manager'" |
get_project_user_role | 🔍 获取用户在指定项目中的角色 | "获取用户 1 在项目 123 中的角色" |
📝 子任务管理
| Tool | 描述 | 示例 |
|---|---|---|
create_subtask | ➕ 创建新的子任务 | "为任务 123 创建子任务 'Review designs',并分配给用户 1" |
get_subtask | 🔍 获取子任务信息 | "获取子任务 456 的详细信息" |
get_all_subtasks | 📋 获取任务的所有可用子任务 | "显示任务 123 的所有子任务" |
update_subtask | ✏️ 更新子任务 | "将任务 123 的子任务 456 更新为状态 2(已完成)" |
remove_subtask | 🗑️ 移除子任务 | "移除 ID 为 456 的子任务" |
⏰ 子任务时间跟踪
| Tool | 描述 | 示例 |
|---|---|---|
has_subtask_timer | ⏱️ 检查指定子任务和用户的计时器是否已启动 | "检查用户 4 的子任务 123 是否有正在运行的计时器" |
set_subtask_start_time | ▶️ 为用户启动子任务计时器 | "为用户 4 启动子任务 123 的计时器" |
set_subtask_end_time | ⏹️ 为用户停止子任务计时器 | "为用户 4 停止子任务 123 的计时器" |
get_subtask_time_spent | 📊 获取用户在子任务上花费的时间 | "获取用户 4 在子任务 123 上花费的时间" |
🏷️ 标签管理
| 工具 | 描述 | 示例 |
|---|---|---|
get_all_tags | 📋 获取所有标签 | "显示所有可用标签" |
get_tags_by_project | 📋 获取指定项目的所有标签 | "显示项目 123 的标签" |
create_tag | ➕ 创建新标签 | "为项目 123 创建标签 'backend',颜色设为 1" |
update_tag | ✏️ 重命名标签 | "将标签 456 重命名为 'frontend',并将颜色设为 2" |
remove_tag | 🗑️ 移除标签 | "移除 ID 为 456 的标签" |
set_task_tags | 🏷️ 为任务分配/创建/更新标签 | "为项目 456 中的任务 123 设置标签 'urgent'、'bug'" |
get_task_tags | 🔍 获取分配给任务的标签 | "获取分配给任务 123 的标签" |
📂 任务文件管理
| 工具 | 描述 | 示例 |
|---|---|---|
create_task_file | ➕ 创建并上传新的任务附件 | "为项目 1 中的任务 2 创建文件 'meeting_notes.txt',内容为 Base64 字符串 'Zm9vYmFy'" |
get_all_task_files | 📋 获取任务的所有附件 | "显示任务 123 的所有文件" |
get_task_file | 🔍 获取文件信息 | "获取文件 456 的详细信息" |
download_task_file | 📥 下载文件内容(以 Base64 编码) | "下载文件 456" |
remove_task_file | 🗑️ 移除文件 | "移除 ID 为 456 的文件" |
remove_all_task_files | 🗑️ 移除与任务关联的所有文件 | "移除任务 123 的所有文件" |
📝 任务元数据管理
| 工具 | 描述 | 示例 |
|---|---|---|
get_task_metadata | 📋 根据任务唯一 ID 获取与任务相关的所有元数据 | "获取任务 1 的所有元数据" |
get_task_metadata_by_name | 🔍 根据任务唯一 ID 和元数据键(名称)获取与任务相关的元数据 | "获取任务 1 的元数据 'metaKey1'" |
save_task_metadata | 💾 保存/更新任务元数据 | "为任务 1 保存元数据 'metaName:metaValue'" |
remove_task_metadata | 🗑️ 按名称移除任务元数据 | "从任务 1 中移除元数据 'metaKey1'" |
⚙️ 应用管理
| 工具 | 描述 | 示例 |
|---|---|---|
get_version | 📋 获取应用版本 | "Kanboard 的版本是什么?" |
get_timezone | 🌐 获取已连接用户的时区 | "我当前的时区是什么?" |
get_default_task_colors | 🌈 获取所有默认任务颜色 | "显示所有默认任务颜色" |
get_default_task_color | 🎨 获取默认任务颜色 | "默认任务颜色是什么?" |
get_color_list | 📋 获取任务颜色列表 | "列出所有可用的任务颜色" |
get_application_roles | 👥 获取应用角色 | "列出所有应用角色" |
get_project_roles | 👥 获取项目角色 | "列出所有项目角色" |
🤖 自动操作管理
| 工具 | 描述 | 示例 |
|---|---|---|
get_available_actions | 📋 获取可用自动操作列表 | "显示可用的自动操作" |
get_available_action_events | 📋 获取操作可用事件列表 | "显示可用的操作事件" |
get_compatible_action_events | 🔍 获取与某项操作兼容的事件列表 | "获取与操作 'TaskClose' 兼容的事件" |
get_actions | 📋 获取项目的操作列表 | "获取项目 123 的操作" |
create_action | ➕ 创建操作 | "为项目 1 创建操作,事件为 'task.move.column',操作为 '\Kanboard\Action\TaskClose',参数为 'column_id:3'" |
remove_action | 🗑️ 移除操作 | "移除 ID 为 456 的操作" |
👥 群组管理
| 工具 | 描述 | 示例 |
|---|---|---|
create_group | ➕ 创建新群组 | “创建一个名为‘Development Team’、外部 ID 为‘dev_001’的群组” |
update_group | ✏️ 更新群组 | “将群组 123 重命名为‘QA Team’,并将其外部 ID 更改为‘qa_001’” |
remove_group | 🗑️ 移除群组 | “移除 ID 为 456 的群组” |
get_group | 🔍 获取单个群组 | “获取群组 789 的详细信息” |
get_all_groups | 📋 获取所有群组 | “显示所有用户群组” |
👥 群组成员管理
| 工具 | 描述 | 示例 |
|---|---|---|
get_member_groups | 📋 获取指定用户所属的所有群组 | “显示用户 1 所属的所有群组” |
get_group_members | 👥 获取群组的所有成员 | “列出群组 123 的所有成员” |
add_group_member | ➕ 将用户添加到群组 | “将用户 456 添加到群组 789” |
remove_group_member | 🗑️ 将用户从群组中移除 | “将用户 456 从群组 789 中移除” |
is_group_member | ❓ 检查用户是否为群组成员 | “用户 456 是群组 789 的成员吗?” |
👥 用户管理
| 工具 | 描述 | 示例 |
|---|---|---|
get_users | 📋 列出所有系统用户 | “显示所有用户” |
create_user | ➕ 创建新用户 | “创建用户‘john’,密码为‘123456’” |
create_ldap_user | ➕ 创建通过 LDAP 身份验证的新用户 | “创建 LDAP 用户‘jane’” |
get_user | 🔍 根据 ID 获取用户信息 | “获取 ID 为 123 的用户详细信息” |
get_user_by_name | 🔍 根据用户名获取用户信息 | “获取‘john’的用户详细信息” |
update_user | ✏️ 更新用户 | “将用户 123 的角色更新为‘app-manager’” |
remove_user | 🗑️ 移除用户 | “移除 ID 为 456 的用户” |
disable_user | ❌ 禁用用户 | “禁用用户 123” |
enable_user | ✅ 启用用户 | “启用用户 123” |
is_active_user | 🔍 检查用户是否处于活跃状态 | “检查用户 123 是否处于活跃状态” |
assign_user_to_project | 👤 为用户分配项目中的特定角色 | “将用户 1 分配到项目‘Website’,角色为‘project-member’” |
🏃 ScrumSprint 插件 API
| 工具 | 描述 | 示例 |
|---|---|---|
create_sprint | ➕ 创建新的 Sprint | “在项目‘My Project’中创建一个名为‘Sprint 1’的 Sprint,开始日期为‘2024-01-01’,结束日期为‘2024-01-14’,目标为‘完成入门功能’” |
get_sprint_by_id | 🔍 根据 ID 获取 Sprint | “获取 ID 为 123 的 Sprint 的详细信息” |
update_sprint | ✏️ 更新现有 Sprint | “将项目‘My Project’中的 Sprint 123 更新为已完成” |
remove_sprint | 🗑️ 根据 ID 移除 Sprint | “移除 ID 为 123 的 Sprint” |
get_all_sprints_by_project | 📋 获取指定项目的所有 Sprint | “获取项目‘My Project’的所有 Sprint” |
📖 使用示例
项目工作流
# Create a new project
"Create a new project called 'Mobile App Development'"
# Add tasks to the project
"Create task 'Design UI mockups' in project 'Mobile App Development'"
"Create task 'Set up development environment' in project 'Mobile App Development'"
# Get all tasks
"Get tasks for 'Mobile App Development' project"
# Move tasks between columns
"Move task 1 to 'In Progress' column"
"Move task 2 to 'Done' column"
团队管理
# Create a new team member
"Create user 'alice.smith' with password 'secure123' and email '[email protected]'"
# Assign user to project
"Assign user 'alice.smith' to project 'Mobile App Development' as project-member"
# Assign tasks to team members
"Assign task 1 to user 'alice.smith'"
任务组织
# Create categories for better organization
"Create category 'Critical Bugs'"
"Create category 'Feature Requests'"
# Add comments to tasks
"Add comment 'This needs urgent attention' to task 5"
# Set deadlines
"Set due date for task 3 to 2024-01-20"
🔧 开发
从源代码构建
# Clone the repository
git clone https://github.com/bivex/kanboard-mcp.git
cd kanboard-mcp
# Install dependencies
go mod download
# Build the application
go build -o kanboard-mcp .
# Run tests
go test ./...
项目结构
kanboard-mcp/
├── main.go # Main application entry point
├── go.mod # Go module dependencies
├── go.sum # Dependency checksums
├── build-release.bat # Windows build script
├── build-release.sh # Unix build script
├── README.md # This file
└── LICENSE.md # License information
参与贡献
- Fork 此仓库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交更改(
git commit -m 'Add amazing feature') - 推送到分支(
git push origin feature/amazing-feature) - 发起 Pull Request
📄 许可证
本项目采用 MIT 许可证,详情请参阅 LICENSE.md 文件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。