🚀 Kanboard MCP服务器
用于Kanboard集成的模型上下文协议(MCP)服务器
强大的基于Go的MCP服务器,可实现AI助手(如Claude Desktop、Cursor)和Kanboard项目管理系统之间的无缝集成。直接通过自然语言命令管理您的Kanboard项目、任务、用户和工作流。
⚠️ 警告: 为了避免此类问题:
我们建议使用 mcpproxy 作为代理解决方案。
📋 目录
✨ 特性
- 🔗 无缝Kanboard集成 -API与看板直接沟通
- 🤖 自然语言处理 -用简单的英语管理你的项目
- 📊 完整的项目管理 -处理项目、任务、用户、列等
- 🔐 安全认证 -支持API密钥和用户名/密码身份验证
- ⚡ 高性能 -使用Go构建,实现最佳性能
- 🎯 MCP标准 -与所有MCP客户端兼容
🚀 快速开始
先决条件
- 达到1.21或更高
- 具有API访问权限的看板实例
- MCP兼容客户端(光标、克劳德桌面等)
安装
- 克隆存储库:
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(默认):使用带有的全局API令牌jsonrpc:格式
export KANBOARD_API_KEY="5348e6b4846fe09fd1670e922bc13e086f0827d7a66e45815cd7c3a7f67b"
export KANBOARD_AUTH_METHOD="global_token" # or omit (default)user_token:使用用户特定的API令牌:格式
export KANBOARD_USERNAME="admin"
export KANBOARD_API_KEY="81820aeb3454985b0ac12166225f1f072f523175a752541c8670cf44a032d"
export KANBOARD_AUTH_METHOD="user_token"bearer:使用承载令牌身份验证
export KANBOARD_API_KEY="your-token-here"
export KANBOARD_AUTH_METHOD="bearer"🔧 解决RBAC问题:
如果您遇到“拒绝访问”错误:
- 在Kanboard中检查您的用户角色:
- 转到Kanboard web界面 - 检查您的用户配置文件/角色设置 - 确保您拥有适当的权限
- 启用调试日志记录:
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配置文件:
地点:
- 窗户:
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 | ➕ 创建新项目 | “创建一个名为“网站重新设计”的项目,描述为“重新设计公司网站”和所有者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 | 🔍 通过外部引用获取任务 | “使用引用'TICKET-1234'获取项目1的任务” |
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中搜索任务,查询‘受让人:无人’” |
assign_task | 👤 将任务分配给用户 | “将API任务分配给John” |
set_task_due_date | 📅 设置任务截止日期 | “将登录任务的截止日期设置为2024-01-15” |
💬 评论管理
| 工具 | 说明 | 示例 |
|---|---|---|
create_comment | ➕ 创建新评论 | “用户1为任务123创建评论‘会议笔记’,应用程序管理员可见” |
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 | 🔄 更改列位置 | “将列123移动到项目456中的位置3” |
delete_column | 🗑️ 删除列 | “删除未使用的‘草稿’列” |
🏷️ 品类管理
| 工具 | 说明 | 示例 |
|---|---|---|
get_categories | 📋 列出项目类别 | “显示项目123的所有任务类别” |
get_category | 🔍 获取类别信息 | “获取类别456的详细信息” |
create_category | ➕ 添加任务类别 | “在项目123中创建一个颜色为‘红色’的‘Bug Fixes’类别” |
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”和类型“attachment” |
update_external_task_link | ✏️ 更新外部任务链接 | “使用新标题“已更新文档”和URL更新任务789的外部链接456”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 | ➕ 在两个任务之间创建链接 | “使用链接类型1在任务123和任务456之间创建链接” |
update_task_link | ✏️ 更新任务链接 | “用新的链接类型2更新任务123和任务456之间的任务链接789” |
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的反向链接标识” |
get_link_by_label | 🔍 按标签获取链接 | “获取带有标签“块”的链接的详细信息” |
get_link_by_id | 🔍 按ID获取链接 | “获取ID为4的链接的详细信息” |
create_link | ➕ 创建新的任务关系 | “创建带有相反标签‘bar’的链接‘foo’” |
update_link | ✏️ 更新链接 | “用相反的链接12和标签'boo'更新链接14” |
remove_link | 🗑️ 删除链接 | “删除ID为14的链接” |
📂 项目文件管理
| 工具 | 说明 | 示例 |
|---|---|---|
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中删除所有文件” |
📝 项目元数据管理
| 工具 | 说明 | 示例 |
|---|---|---|
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’” |
🔐 项目权限管理
| 工具 | 说明 | 示例 |
|---|---|---|
get_project_users | 📋 获取项目的所有成员 | “显示项目123中的所有用户” |
get_assignable_users | 👥 获取可分配给项目任务的用户(除查看器外的所有成员) | “获取项目123的可分配用户” |
add_project_user | ➕ 授予用户对项目的访问权限 | “将用户1添加到角色为“项目成员”的项目123中” |
add_project_group | ➕ 授予组对项目的访问权限 | “将组456添加到具有“项目查看器”角色的项目123中” |
remove_project_user | 🗑️ 撤销用户对项目的访问权限 | “从项目123中删除用户1” |
remove_project_group | 🗑️ 撤消组对项目的访问权限 | “从项目123中删除组456” |
change_project_user_role | ✏️ 更改项目用户的角色 | “将用户1在项目123中的角色更改为“项目经理”” |
change_project_group_role | ✏️ 更改项目组的角色 | “将项目123中组456的角色更改为“项目经理”” |
get_project_user_role | 🔍 获取给定项目的用户角色 | “获取项目123中用户1的角色” |
📝 子任务管理
| 工具 | 说明 | 示例 |
|---|---|---|
create_subtask | ➕ 创建新的子任务 | “为分配了用户1的任务123创建子任务‘审查设计’” |
get_subtask | 🔍 获取子任务信息 | “获取子任务456的详细信息” |
get_all_subtasks | 📋 获取任务的所有可用子任务 | “显示任务123的所有子任务” |
update_subtask | ✏️ 更新子任务 | “将任务123的子任务456更新为状态2(完成)” |
remove_subtask | 🗑️ 删除子任务 | “删除ID为456的子任务” |
⏰ 子任务时间跟踪
| 工具 | 说明 | 示例 |
|---|---|---|
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创建颜色为1的标签'backend'” |
update_tag | ✏️ 重命名标签 | “将标签456重命名为'前端'并将颜色设置为2” |
remove_tag | 🗑️ 删除标签 | “删除ID为456的标签” |
set_task_tags | 🏷️ 为任务分配/创建/更新标签 | “为项目456中的任务123设置标签‘紧急’、‘错误’” |
get_task_tags | 🔍 为任务分配标签 | “为任务123分配标签” |
📂 任务文件管理
| 工具 | 说明 | 示例 |
|---|---|---|
create_task_file | ➕ 创建并上传新的任务附件 | “为项目1创建一个文件'meeting_notes.txt',其中包含任务2和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 | ➕ 创建一个新组 | “创建一个名为‘开发团队’的组,外部ID为‘dev_001’” |
update_group | ✏️ 更新组 | “将组123重命名为‘QA团队’,并将其外部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 | 🗑️ 从组中删除用户 | “从组789中删除用户456” |
is_group_member | ❓ 检查用户是否是组的成员 | “用户456是组789的成员吗?” |
👥 用户管理
| 工具 | 说明 | 示例 |
|---|---|---|
get_users | 📋 列出所有系统用户 | “显示所有用户” |
create_user | ➕ 创建新用户 | “使用密码'123456'创建用户'john'” |
create_ldap_user | ➕ 创建通过LDAP身份验证的新用户 | “创建LDAP用户'jane'” |
get_user | 🔍 按ID获取用户信息 | “获取ID 123的用户详细信息” |
get_user_by_name | 🔍 按用户名获取用户信息 | “获取'john'的用户详细信息” |
update_user | ✏️ 更新用户 | “将用户123更新为“应用程序管理员”角色” |
remove_user | 🗑️ 删除用户 | “删除ID为456的用户” |
disable_user | ❌ 禁用用户 | “禁用用户123” |
enable_user | ✅ 启用用户 | “启用用户123” |
is_active_user | 🔍 检查用户是否活动 | “检查用户123是否活动” |
assign_user_to_project | 👤 将用户分配给具有特定角色的项目 | “将用户1分配给具有角色“项目成员”的项目“网站”” |
🏃 ScrumPrint插件API
| 工具 | 说明 | 示例 |
|---|---|---|
create_sprint | ➕ 创建一个新的冲刺 | “在‘我的项目’中创建一个名为‘冲刺1’的冲刺,从‘2024-01-01’开始,到‘2024年01月14日’结束,目标是‘完成入职功能’” |
get_sprint_by_id | 🔍 按ID检索冲刺 | “获取ID为123的冲刺的详细信息” |
update_sprint | ✏️ 更新现有的sprint | “更新项目“我的项目”中的sprint 123以完成” |
remove_sprint | 🗑️ 按ID删除冲刺 | “删除ID为123的冲刺” |
get_all_sprints_by_project | 📋 检索给定项目的所有冲刺 | “获取项目“我的项目”的所有冲刺” |
📖 使用示例
项目工作流程
# 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 'alice@company.com'"
# 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贡献
- 分叉存储库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
📄 许可证
此项目根据MIT许可证获得许可-请参阅 许可证.md 文件以获取详细信息。
______________________________________________________________________
由以下材料制成❤️ Kanboard社区
](https://github.com/bivex/kanboard-mcp/stargazers) ](https://github.com/bivex/kanboard-mcp/network) ](https://github.com/bivex/kanboard-mcp/issues)
