使用说明
🚀 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:<token>格式export KANBOARD_API_KEY="5348e6b4846fe09fd1670e922bc13e086f0827d7a66e45815cd7c3a7f67b" export KANBOARD_AUTH_METHOD="global_token" # or omit (default) -
user_token:使用用户特定的API令牌<username>:<token>格式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社区