PingCode MCP Server
The PingCode MCP Server enables AI assistants to interact with PingCode project management systems for querying, managing, and updating work items and releases.
Authentication Management
login– Open a browser to log into PingCode (supports third-party logins like Feishu/Lark)logout– Log out and clear locally saved credentialscheck_auth– Check the current login/authentication status
Work Item Operations
get_work_item– Retrieve details of a work item by identifier (e.g.,LFY-123,#12345)search_work_items– Search for work items by keyword, optionally scoped to a specific projectupdate_work_item_state– Update the status of a work item by specifying a target state name
Bug Management
Update bug-specific fields such as reason analysis, solutions, and resolution methods
Fetch available options for bug fields
Project & Release Management
list_projects– List all projects accessible to the authenticated userlist_releases– List all release versions for a given projectget_release_items– Retrieve work items (bugs, stories, or all) associated with a specific release version
Credentials are stored locally without third-party data transmission.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@PingCode MCP Servershow me the details for work item LFY-2527"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
PingCode MCP Server
PingCode MCP (Model Context Protocol) 服务器,让 AI 助手能够与 PingCode 项目管理系统交互,支持查询工作项、发布版本管理、更新状态和缺陷字段等操作。
✨ 功能特性
🔐 便捷登录 - 支持浏览器登录和飞书等第三方登录
🔍 工作项查询 - 通过编号快速查看工作项详情
📋 发布管理 - 查询发布版本关联的缺陷和需求
🔎 全文搜索 - 搜索项目中的工作项
📊 版本列表 - 列出项目的所有发布版本
✏️ 状态更新 - 更新工作项的状态
🐛 缺陷管理 - 更新缺陷的原因分析、解决方案和解决方法
Related MCP server: Zentao MCP Server
📦 安装
方式一:全局安装(推荐)
npm install -g pingcode-mcp安装后需要安装 Chromium 浏览器(用于登录):
npx playwright install chromium方式二:使用 npx(无需安装)
npx pingcode-mcp首次使用会自动下载依赖。
🚀 快速开始
1. 配置 MCP 客户端
在你的 MCP 客户端(如 Windsurf、Cursor、Claude Desktop)配置文件中添加:
全局安装后的配置
编辑 ~/.cursor/mcp.json 或 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"pingcode-mcp": {
"command": "pingcode-mcp",
"env": {
"PINGCODE_DOMAIN": "your-company.pingcode.com"
}
}
}
}使用 npx 的配置
{
"mcpServers": {
"pingcode-mcp": {
"command": "npx",
"args": ["-y", "pingcode-mcp"],
"env": {
"PINGCODE_DOMAIN": "your-company.pingcode.com"
}
}
}
}注意: 如果不配置
PINGCODE_DOMAIN,默认使用neuralgalaxy.pingcode.com。
2. 首次登录
重启 MCP 客户端后,让 AI 助手调用 login 工具:
请帮我登录 PingCode会自动打开浏览器,完成授权后凭证会保存在 ~/.pingcode-mcp/credentials.json。
3. 开始使用
查看工作项 LFY-2527 的详情列出优点云项目的所有发布版本查询发布版本 QxednuAG 的所有缺陷🛠️ 可用工具
工具名称 | 说明 | 参数 |
| 打开浏览器进行登录 | 无 |
| 退出登录,清除凭证 | 无 |
| 检查登录状态 | 无 |
| 获取工作项详情 |
|
| 列出所有可访问项目 | 无 |
| 列出项目的发布版本 |
|
| 获取版本关联的工作项 |
|
| 搜索工作项 |
|
| 更新工作项状态 |
|
| 获取缺陷字段可选值 |
|
| 更新缺陷的分析和解决方案 |
|
💡 使用示例
查看工作项详情
查看 LFY-2527 的详情查询发布版本的缺陷
从发布页面 URL 获取参数:
https://yourcompany.pingcode.com/pjm/projects/LFY/releases/QxednuAG/workitems
↑ ↑
project_id release_id然后询问 AI:
查询项目 LFY 的发布版本 QxednuAG 中的所有缺陷搜索工作项
在优点云项目中搜索包含"登录"的工作项更新工作项状态
把 LFY-2527 的状态改为已完成更新缺陷分析字段
帮我更新 LFY-2527 的原因分析和解决方案🔧 环境变量
变量名 | 说明 | 默认值 |
| PingCode 域名 |
|
🔨 本地开发
如果你想修改源码或为项目贡献代码:
# 克隆仓库
git clone https://github.com/ratatatat1/pingcode-mcp.git
cd pingcode-mcp
# 安装依赖
npm install
# 安装浏览器
npx playwright install chromium
# 开发模式(实时编译)
npm run dev
# 构建
npm run build
# 测试构建产物
npm start在 MCP 客户端中使用本地开发版本
{
"mcpServers": {
"pingcode-mcp": {
"command": "npx",
"args": ["tsx", "/absolute/path/to/pingcode-mcp/src/index.ts"]
}
}
}📂 项目结构
pingcode-mcp/
├── src/
│ ├── index.ts # MCP 服务器入口
│ ├── api/
│ │ └── pingcode-client.ts # PingCode API 客户端
│ ├── tools/
│ │ ├── login.ts # 登录相关工具
│ │ └── work-items.ts # 工作项相关工具
│ ├── types/
│ │ └── pingcode.ts # TypeScript 类型定义
│ └── utils/
│ └── credentials.ts # 凭证管理工具
├── dist/ # 编译输出目录
├── package.json
├── tsconfig.json
└── README.md🔒 隐私与安全
登录凭证仅保存在本地
~/.pingcode-mcp/credentials.json不会上传任何数据到第三方服务器
所有 API 请求直接发送到你的 PingCode 实例
❓ 常见问题
Q: 凭证过期了怎么办?
A: 重新调用 login 工具即可。
Q: 支持哪些 MCP 客户端? A: 支持所有实现了 MCP 协议的客户端,包括 Windsurf、Cursor、Claude Desktop 等。
Q: 可以在 CI/CD 中使用吗? A: 登录需要浏览器交互,不适合 CI/CD 环境。如需自动化,建议使用 PingCode API。
📄 许可证
MIT License - 详见 LICENSE 文件
🤝 贡献
欢迎提交 Issue 和 Pull Request!
作者: ratat 关键词: mcp, pingcode, model-context-protocol, ai, release, bug-tracking, project-management
Available Tools
9 toolscheck_authB
检查当前 PingCode 登录状态。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool checks login status but doesn't describe what the check entails (e.g., validates session, returns user info), potential outcomes (e.g., authenticated vs. not), or any side effects (e.g., rate limits, network calls). For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence in Chinese: '检查当前 PingCode 登录状态.' It is front-loaded with the core purpose, has zero wasted words, and is appropriately sized for a simple tool. Every part of the sentence earns its place by directly conveying the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is minimally complete. It states what the tool does but lacks details on behavior, output format, or usage context. Without an output schema, the description should ideally hint at what is returned (e.g., status boolean or user details), but it doesn't, leaving the agent to guess. This is adequate for a basic tool but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description doesn't add parameter semantics, but that's appropriate here. A baseline of 4 is given as the description doesn't need to compensate for any parameter gaps, though it doesn't explicitly state 'no parameters required,' which could slightly improve clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as '检查当前 PingCode 登录状态' (Check current PingCode login status), which is a specific verb ('检查' - check) and resource ('登录状态' - login status). It distinguishes from siblings like 'login' (authentication) and 'logout' (deauthentication) by focusing on status verification rather than authentication actions. However, it doesn't explicitly differentiate from all siblings, keeping it at 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., whether authentication is required first), when it's appropriate (e.g., before performing operations that require login), or alternatives (e.g., using 'login' if not authenticated). The agent must infer usage from the purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_release_itemsC
获取某个发布版本关联的缺陷和需求列表。
| Name | Required | Description | Default |
|---|---|---|---|
| release_id | Yes | 发布版本 ID(可从发布页面 URL 获取) | |
| project_id | Yes | 项目标识,如 LFY | |
| item_type | No | 筛选工作项类型:bug=缺陷,story=需求,all=全部(默认) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states what the tool does ('获取...列表' - get list), implying a read-only operation, but lacks details on permissions, rate limits, pagination, or response format. For a tool with 3 parameters and no output schema, this is insufficient to inform the agent about expected behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's function without unnecessary words. It's front-loaded with the core purpose, making it easy to parse. Every part of the sentence contributes to understanding the tool's role.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (3 parameters, no output schema, and no annotations), the description is incomplete. It doesn't explain what the returned list contains (e.g., item IDs, summaries), how results are structured, or any behavioral traits like error handling. This leaves significant gaps for the agent to operate effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema fully documents all parameters (release_id, project_id, item_type). The description adds no additional semantic context beyond what's in the schema, such as examples or edge cases. This meets the baseline for high schema coverage but doesn't enhance understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: '获取某个发布版本关联的缺陷和需求列表' (Get the list of defects and requirements associated with a release version). It specifies the verb ('获取' - get) and resource ('缺陷和需求列表' - defect and requirement list), making the function unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'search_work_items' or 'get_work_item', which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'search_work_items' (which might search across releases) or 'get_work_item' (which gets a single item), nor does it specify prerequisites such as authentication. This leaves the agent without context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_work_itemB
通过 PingCode 工作项编号获取详情。支持格式:#12345、12345、LFY-123 等。
| Name | Required | Description | Default |
|---|---|---|---|
| identifier | Yes | 工作项编号,如 #12345、12345 或 LFY-123 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the tool '获取详情' (gets details), which implies a read-only operation, but doesn't clarify aspects like authentication needs (e.g., whether it requires login), rate limits, error handling, or what '详情' (details) includes in the response. For a tool with no annotation coverage, this leaves significant gaps in understanding its behavior and constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded, consisting of two sentences that directly state the purpose and supported formats. Every sentence earns its place by providing essential information without redundancy or fluff, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 parameter, no nested objects) and high schema coverage, the description is somewhat complete for basic usage. However, with no annotations and no output schema, it fails to address key aspects like authentication requirements, response format, or error conditions. This makes it adequate but with clear gaps, especially for a tool that might involve external API calls or data retrieval.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the parameter 'identifier' fully documented in the schema. The description adds minimal value by listing example formats (#12345, 12345, LFY-123), but this doesn't significantly enhance the semantics beyond what the schema already provides. With high schema coverage, the baseline score is 3, as the description doesn't compensate with additional insights like validation rules or format nuances.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: '通过 PingCode 工作项编号获取详情' (get details via PingCode work item identifier). It specifies the verb '获取详情' (get details) and resource '工作项' (work item), making the function unambiguous. However, it doesn't explicitly distinguish from sibling tools like 'search_work_items' or 'get_release_items', which is why it doesn't reach a score of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by stating it supports various identifier formats (e.g., #12345, 12345, LFY-123), suggesting this tool is for retrieving specific items by ID. However, it doesn't provide explicit guidance on when to use this versus alternatives like 'search_work_items' (which might handle broader queries) or 'list_projects' (for listing rather than fetching details). No exclusions or prerequisites are mentioned, leaving usage context somewhat implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_projectsB
列出用户可访问的所有项目。返回项目标识和名称列表。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool lists accessible projects and returns identifiers and names, but does not disclose critical behavioral traits such as whether it requires authentication (implied by '用户可访问' - user accessible), pagination behavior, rate limits, error conditions, or if it's read-only. For a tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded, consisting of two clear sentences in Chinese. The first sentence states the action and scope, and the second specifies the return format. There is zero wasted text, and every sentence earns its place by providing essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose and return format, but lacks details on authentication requirements, error handling, or behavioral traits. Without annotations or output schema, the description should do more to compensate, but it meets the minimum viable threshold for a simple list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description does not mention any parameters, which is appropriate. Baseline is 4 for 0 parameters, as the description does not need to compensate for missing schema information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: '列出用户可访问的所有项目' (list all projects accessible to the user) and specifies the return format: '返回项目标识和名称列表' (returns a list of project identifiers and names). It uses a specific verb ('列出' - list) and resource ('项目' - projects), but does not explicitly differentiate from sibling tools like 'list_releases' or 'search_work_items'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., authentication status), exclusions, or comparisons to sibling tools like 'list_releases' or 'search_work_items' for project-related queries. The agent must infer usage from the tool name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_releasesC
列出项目的所有发布版本。用户可以通过此工具查看版本名称和对应的 ID。
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | 项目标识,如 LFY(优点云) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool lists releases and allows viewing names and IDs, but lacks details on permissions required, pagination, rate limits, error handling, or response format. For a read operation with no annotation coverage, this leaves significant gaps in understanding how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded, with two sentences that directly state the purpose and functionality. There's no unnecessary information or repetition. However, it could be slightly more structured by explicitly separating purpose from usage notes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (one parameter, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose but lacks details on behavioral traits, usage context, and output format. Without annotations or output schema, the description should do more to compensate, but it only meets the minimum viable threshold.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with one parameter (project_id) clearly documented in the schema. The description doesn't add any parameter-specific information beyond what the schema provides, such as example values or constraints. Baseline 3 is appropriate since the schema does the heavy lifting, but no extra value is added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: '列出项目的所有发布版本' (list all release versions of a project). It specifies the verb (list) and resource (release versions), and distinguishes it from siblings like get_release_items (which likely fetches items within a release) or list_projects (which lists projects). However, it doesn't explicitly differentiate from all siblings, such as search_work_items, which might overlap in scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions viewing version names and IDs, but doesn't clarify if this is for browsing, filtering, or comparing with tools like get_release_items or search_work_items. No prerequisites, exclusions, or context for usage are specified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
loginA
打开浏览器进行 PingCode 登录(支持飞书等第三方登录)。登录成功后凭证会自动保存。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses key behavioral traits: it opens a browser (implying user interaction), supports third-party logins, and automatically saves credentials upon success. However, it doesn't mention potential side effects (e.g., browser pop-ups, session creation), error handling, or prerequisites. For a login tool with zero annotation coverage, this provides basic context but lacks depth on behavioral aspects like security or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded: two concise sentences that directly state the action and outcome. The first sentence explains the core functionality, and the second adds critical behavioral context (credential saving). Every sentence earns its place with no wasted words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (authentication with browser interaction), no annotations, no output schema, and 0 parameters, the description is moderately complete. It covers the main action and credential persistence, but lacks details on return values, error cases, or integration with sibling tools. For a login tool, more context on session management or failure handling would improve completeness, but it meets minimum viability.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate. Baseline for 0 parameters is 4, as there's no schema burden to compensate for, and the description doesn't introduce unnecessary complexity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: '打开浏览器进行 PingCode 登录(支持飞书等第三方登录)' (Open browser for PingCode login, supports third-party logins like Feishu). It specifies the verb ('打开浏览器进行登录' - open browser for login) and resource (PingCode), distinguishing it from sibling tools like 'check_auth' or 'logout'. However, it doesn't explicitly differentiate from all siblings (e.g., 'logout' is clearly opposite, but 'check_auth' might overlap in authentication context).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context: '登录成功后凭证会自动保存' (Credentials are automatically saved after successful login), suggesting this tool should be used for initial authentication setup. However, it doesn't explicitly state when to use this vs. alternatives like 'check_auth' (which might verify existing credentials) or 'logout' (which ends sessions). The guidance is implied rather than explicit, lacking clear when/when-not instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
logoutA
退出 PingCode 登录,清除本地保存的凭证。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses the key behavioral trait ('清除本地保存的凭证' - clears locally saved credentials), which is crucial for understanding this destructive operation. However, it doesn't mention authentication requirements, error conditions, or what happens to subsequent API calls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that communicates the complete purpose and key behavioral detail with zero wasted words. It's perfectly front-loaded and appropriately sized for this simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive authentication tool with no annotations and no output schema, the description covers the basic operation but lacks important context about authentication state changes, error handling, and what the tool returns (if anything). It's minimally adequate but has clear gaps for a security-sensitive operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema coverage, so the baseline is 4. The description appropriately doesn't discuss parameters since none exist, focusing instead on the tool's behavioral effect.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('退出' meaning 'logout') and resource ('PingCode'), distinguishing it from sibling tools like 'login' and 'check_auth'. It provides a complete verb+resource+outcome statement: logout from PingCode and clear local credentials.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context (when you need to end a PingCode session and remove stored credentials), but doesn't explicitly state when to use this vs. alternatives like 'login' or 'check_auth'. It provides clear functional context but lacks explicit comparative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_work_itemsC
搜索 PingCode 工作项。
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | 搜索关键词 | |
| project_id | No | 限定在某个项目中搜索(可选) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool searches work items but doesn't describe behavioral traits such as whether it's read-only, how results are returned (e.g., pagination, sorting), error handling, or performance considerations like rate limits. The description is minimal and fails to compensate for the lack of annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single sentence, '搜索 PingCode 工作项', which is front-loaded and wastes no words. It efficiently states the core purpose without unnecessary elaboration, making it easy to parse quickly. However, this conciseness comes at the cost of completeness, as noted in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a search tool with 2 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what a 'work item' entails, how search results are structured, or any limitations (e.g., search scope, result formats). The description fails to provide sufficient context for an agent to use the tool effectively beyond basic invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with clear documentation for 'query' (search keyword) and 'project_id' (optional project limitation). The description adds no additional meaning beyond what the schema provides, such as examples of query syntax or how project_id affects results. Since schema coverage is high, the baseline score of 3 is appropriate, as the description doesn't enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '搜索 PingCode 工作项' (Search PingCode work items) states the basic action and resource but is vague about scope and functionality. It doesn't differentiate from sibling tools like 'get_work_item' (which retrieves a specific item) or 'list_projects' (which lists projects rather than searching work items). The description lacks specificity about what constitutes a 'work item' or how the search operates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to prefer 'search_work_items' over 'get_work_item' (for specific items) or 'list_projects' (for project-level information), nor does it specify prerequisites like authentication or context for search operations. Usage is implied only by the tool name, with no explicit instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_work_item_stateC
更新工作项(缺陷/需求/任务)的状态。通过状态名称指定目标状态。
| Name | Required | Description | Default |
|---|---|---|---|
| work_item_id | Yes | 工作项编号,如 LFY-2527 | |
| state_name | Yes | 目标状态名称,如 "已完成"、"进行中"、"待处理" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It implies a mutation ('更新'), but doesn't disclose behavioral traits like required permissions, whether changes are reversible, error handling (e.g., invalid state names), or side effects. For a mutation tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose. It avoids unnecessary details but could be slightly more structured (e.g., separating usage notes). No wasted words, though it's brief given the lack of behavioral context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a mutation tool with no annotations, no output schema, and incomplete behavioral disclosure, the description is insufficient. It doesn't cover key aspects like authentication needs (implied by 'login' sibling), error responses, or state transition rules, leaving gaps for an AI agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters ('work_item_id' and 'state_name') with examples. The description adds minimal value by mentioning '通过状态名称指定目标状态' (specify target state via state name), which is redundant with the schema. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('更新' meaning 'update') and the resource ('工作项状态' meaning 'work item state'), specifying it applies to defects/requirements/tasks. It distinguishes from siblings like 'get_work_item' (read) and 'search_work_items' (search), but doesn't explicitly differentiate from other potential state-related tools (none exist in siblings).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., authentication via 'login'), constraints (e.g., valid state transitions), or compare to siblings like 'get_work_item' for checking current state. The description only states what it does, not when or why to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
9 tool updates
v1.0.0- First observed
check_auth - First observed
get_release_items - First observed
get_work_item - First observed
list_projects - First observed
list_releases - First observed
login - First observed
logout - First observed
search_work_items - First observed
update_work_item_state
TDQS
Most tools have distinct purposes, such as authentication (check_auth, login, logout), project/release management (list_projects, list_releases), and work item operations (get_work_item, search_work_items, update_work_item_state). However, get_release_items overlaps slightly with list_releases in dealing with releases, but its focus on associated items provides enough differentiation to avoid major confusion.
The tools follow a consistent verb_noun pattern throughout, such as check_auth, get_work_item, and list_projects, which enhances readability. There are minor deviations like update_work_item_state using 'state' instead of a more specific noun, but overall the naming is predictable and well-structured.
With 9 tools, the server is well-scoped for managing PingCode projects, releases, and work items. Each tool serves a clear purpose, such as authentication, listing, searching, and updating, without redundancy, making the count appropriate for the domain's core workflows.
The tool set covers key operations like authentication, project/release listing, and work item retrieval/search/updates, providing a solid foundation. A minor gap exists in the lack of tools for creating or deleting work items or releases, which agents might need to work around, but core lifecycle management is largely supported.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Manage projects, tasks, time tracking, and team collaboration through natural language.
Create and manage MeisterTask projects, tasks, and notes from your AI assistant.
AI-native project management + agent memory: tasks, sprints, risk, burnout, knowledge search.
- mcpOAuthcom.vibgrate
Query your team's drift, vulnerability, and upgrade data from any AI assistant. OAuth 2.1, 51 tools.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to interact with OpenProject's API v3 for comprehensive project management operations including work packages, projects, time tracking, users, and all other OpenProject features through natural language.4MIT
- FlicenseNot gradedqualityFmaintenanceEnables AI assistants to manage Zentao bugs, requirements, and test cases through natural language interactions. It supports querying, creating, and updating various Zentao data entities including products, projects, and executions.1511-
- AlicenseNot gradedqualityDmaintenanceEnables AI applications to interact with Redmine project management systems for issue tracking, time logging, and project management through natural language.24MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to query, create, and manage Targetprocess entities like user stories, bugs, tasks, and features through natural language and structured tools.1427ISC
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ratatatat1/pingcode-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server