Toony MCP服务器
MCP(模型上下文协议)服务器 图尼公开了20个工具,允许Claude管理项目、问题、评论、工件、工作流和工作区资源。
需求
- Python>=3.11
- 紫外线
- Claude 代码命令行工具
安装
curl -fsSL https://raw.githubusercontent.com/bikerlfh/toony-mcp/main/install.sh | bash安装程序将:
- 将仓库克隆到
~/.toony/mcp-server/ - 提示您
TOONY_API_URL和TOONY_API_KEY - 在Claude Code中注册MCP服务器
安装后重新启动Claude Code。
更新
~/.toony/mcp-server/update.sh在不更改配置的情况下更新代码。
卸载
~/.toony/mcp-server/uninstall.sh删除MCP服务器并将其从Claude Code中注销。
配置
| 变量 | 描述 | 默认值 |
|---|---|---|
TOONY_API_URL | 后端API基本URL | http://localhost:8000/api |
TOONY_API_KEY | 用户API密钥(承载令牌) | 必需 |
API密钥是从Toony web应用程序中的用户配置文件页面生成的。
可用工具
项目(5个工具)
| 工具 | 说明 | 参数 |
|---|---|---|
list_projects | 列出所有可访问的项目 | search (可选) |
get_project | 获取项目的详细信息 | project_id (UUID) |
list_project_members | 列出成员及其角色 | project_id (UUID) |
list_project_milestones | 列出项目里程碑 | project_id (UUID) |
list_project_cycles | 列出项目周期/冲刺 | project_id (UUID) |
问题(12个工具)
| 工具 | 说明 | 参数 |
|---|---|---|
get_issue | 通过UUID或标识符获取问题详细信息(例如。, ENG-42) | issue_id |
list_project_issues | 列出过滤器的问题 | project_id, status, priority, assignee_id, milestone_id, cycle_id, label_ids, search (除project_id外均为可选) |
get_my_issues | 获取所有项目中分配给经过身份验证的用户的问题 | status, priority, search (可选) |
create_issue | 创建新问题 | project_id, title (必填); description, status, priority, assignee_id, milestone_id, cycle_id, label_ids, due_date (可选) |
update_issue | 更新现有问题 | issue_id, project_id (必填);rest可选--通过 "none" 清除字段 |
list_issue_comments | 列出对某个问题的评论 | issue_id, project_id |
create_comment | 向问题添加评论 | issue_id, project_id, body (支持降价) |
list_issue_activities | 查看问题的更改历史记录 | issue_id, project_id |
list_issue_artifacts | 列出所附工件(计划、规格等) | issue_id, project_id |
create_artifact | 将工件发布到问题 | issue_id, project_id, title, artifact_type, content; requires_approval (可选) |
update_artifact | 更新现有工件 | artifact_id (必填); title, content, status, requires_approval (可选) |
delete_artifact | 删除工件 | artifact_id (UUID) |
允许的值 status: BACKLOG, TODO, IN_PROGRESS, IN_REVIEW, DONE, CANCELED
允许的值 priority: NONE, URGENT, HIGH, MEDIUM, LOW
允许的值 artifact_type: PLAN, DESIGN_DOC, TECHNICAL_SPEC, TEST_PLAN, OTHER
工件的允许值 status: DRAFT, PENDING_APPROVAL, IN_REVIEW, APPROVED, REJECTED, REVISION_REQUESTED, SUPERSEDED
工作流程(1个工具)
| 工具 | 说明 | 参数 |
|---|---|---|
get_issue_workflow | 获取问题的已解决工作流作为YAML | issue_id (UUID) |
工作区(2个工具)
| 工具 | 说明 | 参数 |
|---|---|---|
list_labels | 列出标记问题的可用标签 | search (可选) |
search_global | 跨问题、项目、团队和标签的全球搜索 | organization_id (UUID), query |
使用示例
# Query projects
"List my projects"
"Give me the details for project abc-123"
"Who are the members of project X?"
# Manage issues
"What are my pending issues?"
"Show me the urgent issues in project Y"
"Create an issue in project Z titled 'Fix login bug' with priority HIGH"
"Change the status of issue ENG-42 to IN_REVIEW"
# Comments and artifacts
"Add a comment to issue ENG-42: 'Fix deployed to staging'"
"Show me the activity history of issue ENG-10"
"Publish a technical plan on issue ENG-42"
# Search
"Search for 'authentication' in organization X"
"List the labels containing 'bug'"建筑
Claude (MCP Client)
|
v
Toony MCP Server (FastMCP)
|
v
ToonyClient (HTTP + Bearer Token)
|
v
Django Backend API (/api/...)- Claude调用MCP工具
- 服务器检索全局
ToonyClient例子 - 客户端使用Bearer令牌发出HTTP请求
- 后端以JSON响应
- 服务器序列化并将结果返回给Claude
发展
在本地运行
git clone https://github.com/bikerlfh/toony-mcp.git
cd toony-mcp
cp .env.example .env # edit with your values
uv run toony-mcp添加新工具
- 在内部相应模块中定义函数
src/toony_mcp/tools/:
from toony_mcp.server import mcp, get_client
@mcp.tool()
def my_new_tool(param: str) -> str:
"""Description of what the tool does."""
client = get_client()
result = client._get(f"/my-endpoint/{param}/")
return json.dumps(result)- 如果创建新的工具模块,请将其导入
server.py:
def main():
import toony_mcp.tools.issues
import toony_mcp.tools.projects
import toony_mcp.tools.workspace
import toony_mcp.tools.my_module # new
mcp.run()- 如果你需要一个新的客户端方法,请将其添加到
client.py.
