performance-mcp
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., "@performance-mcpshow my current performance review periods"
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.
Performance MCP
一个基于 stdio 的 MCP 服务,用于查询和保存绩效考核草稿。服务通过绩效系统 API 获取考核周期、考核记录与详情,并且只提供草稿保存能力,不包含最终提交接口。
功能
查询当前账号可见的绩效考核周期。
按周期查询绩效考核记录,支持分页、状态和排序条件。
查询单条考核详情,包括任务、评分和评语。
保存自评评分、自评总结和“文档和代码”内容为草稿。
Related MCP server: recap
前置条件
Node.js 18 或更高版本。
可访问的绩效系统地址。
有效的登录凭据:短期 Token,或用户名与密码。
安装
git clone git@github.com:yc-lm/performance-mcp.git
Set-Location performance-mcp
npm install环境变量
复制 .env.example 的变量名,在运行 MCP 的宿主环境中配置真实值。不要将 .env、真实 Token、用户名或密码提交到 Git。
变量 | 是否必填 | 说明 |
| 是 | 绩效系统服务地址,例如 |
| 二选一 | 已登录账号的短期 API Token。 |
| 二选一 | 登录账号;仅在未设置 Token 时使用。 |
| 二选一 | 登录密码;仅在未设置 Token 时使用。 |
优先使用短期 Token:
$env:PERFORMANCE_BASE_URL = 'https://performance.example.com'
$env:PERFORMANCE_TOKEN = 'your-short-lived-token'
npm start也可以使用用户名和密码:
$env:PERFORMANCE_BASE_URL = 'https://performance.example.com'
$env:PERFORMANCE_USERNAME = 'your-username'
$env:PERFORMANCE_PASSWORD = 'your-password'
npm start配置 Codex
在 Codex 全局配置文件的 MCP 服务区段中添加以下内容。将路径和环境变量替换为本机实际值;凭据只应保存在本机配置中。
[mcp_servers.performance-mcp]
command = "node"
args = ['D:\\project\\performance-mcp\\src\\index.js']
[mcp_servers.performance-mcp.env]
PERFORMANCE_BASE_URL = "https://performance.example.com"
PERFORMANCE_TOKEN = "your-short-lived-token"若使用用户名和密码,将上述 Token 配置替换为:
[mcp_servers.performance-mcp.env]
PERFORMANCE_BASE_URL = "https://performance.example.com"
PERFORMANCE_USERNAME = "your-username"
PERFORMANCE_PASSWORD = "your-password"保存配置后,重启 Codex 或重新加载 MCP 配置使其生效。
配置 Claude Code
Claude Code 的全局 MCP 配置通常保存在 %USERPROFILE%\\.claude.json。在其中的 mcpServers 对象添加或更新 performance-mcp 条目。路径与凭据请替换为本机实际值。
{
"mcpServers": {
"performance-mcp": {
"type": "stdio",
"command": "node",
"args": [
"D:\\project\\performance-mcp\\src\\index.js"
],
"env": {
"PERFORMANCE_BASE_URL": "https://performance.example.com",
"PERFORMANCE_TOKEN": "your-short-lived-token"
}
}
}
}若使用用户名和密码,将 PERFORMANCE_TOKEN 替换为 PERFORMANCE_USERNAME 与 PERFORMANCE_PASSWORD。完成后重启 Claude Code;在 MCP 服务列表中确认 performance-mcp 已连接。
MCP 工具
list_periods
查询当前登录账号可见的考核周期。通常先调用此工具,再将返回的周期 ID 传给考核记录查询。
list_performance_evaluations
查询绩效考核记录。
参数 | 说明 |
| 可选,考核周期 ID。 |
| 可选,分页参数; |
| 可选,按考核状态筛选。 |
| 可选,排序字段和方向。 |
get_performance_evaluation_detail
传入 evaluationId,获取任务、各项评分、自评总结、主管评语和“文档和代码”等完整信息。
save_performance_draft
保存一份自评草稿。请求需包含 evaluationId 和完整的 scores 数组;可选填写 selfComment 与 docAndCode。
该工具只调用评分草稿接口,不会提交最终考核。保存前应确认:
所有评分项均在 0 到 100 之间。
自定义任务包含计划天数和完成天数。
自评总结和“文档和代码”是字符串。
绩效任务、评分和文档证据已由填写人核对。
安全说明
仓库不包含任何真实账号、密码、Token 或内部服务地址。
.env、node_modules/与 IDE 配置目录已被忽略。不要在 Issue、提交信息、README 或示例中写入真实凭据。
推荐使用短期 Token,避免长期保存账号密码。
若凭据曾被提交到公开仓库,应立即在服务端失效并重新签发。
开发与验证
npm test测试覆盖登录 Token 复用、考核查询、草稿保存、参数校验,以及必须显式配置 PERFORMANCE_BASE_URL 的行为。
项目结构
src/
index.js MCP 服务和工具定义
performance-client.js 绩效系统 API 客户端
test/
performance-client.test.js
.env.example 环境变量示例Available Tools
4 toolsget_performance_evaluation_detailA
Get the complete detail for one performance evaluation, including tasks, scores, comments, and code/document summary.
| Name | Required | Description | Default |
|---|---|---|---|
| evaluationId | Yes | Evaluation ID to query. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden. It indicates a read operation via 'Get' and lists the output components. However, it does not explicitly state it is read-only or idempotent, nor mention any authentication or error conditions. Still, the verb 'Get' strongly implies safety.
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 with no redundant words. It efficiently conveys the action and the scope of output.
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 simple one-parameter tool with no output schema, the description adequately lists the return fields (tasks, scores, comments, summary). It could be more complete by mentioning if the evaluation must exist or if there are access constraints, but overall it provides sufficient context given the tool's simplicity.
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 coverage is 100% with a single parameter 'evaluationId' described as 'Evaluation ID to query.' The description does not add meaning beyond the schema; it just repeats the parameter usage contextually. Since schema already covers it, baseline 3 is appropriate.
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 gets complete detail for one performance evaluation, specifying included content (tasks, scores, comments, code/document summary). It distinguishes from sibling tools like list_performance_evaluations which likely provide summaries, and save_performance_draft which creates/edits.
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 explicit guidance on when to use this tool versus alternatives like list_performance_evaluations or save_performance_draft. The tool name and description imply it's for retrieving a single evaluation's full details, but no when-not-to-use or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_performance_evaluationsA
List the current user performance evaluations. Use list_periods first when a period ID is needed.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number. Defaults to 1. | |
| limit | No | Rows per page. Defaults to 10. | |
| sortBy | No | Sort field. Defaults to finalTotal. | |
| status | No | Optional evaluation status filter. | |
| periodId | No | Assessment period ID. | |
| sortOrder | No | Sort direction. Defaults to desc. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that it lists evaluations for the current user, which is a behavioral scope. However, no annotations are provided, and the description does not mention pagination, rate limits, or other behavioral traits beyond the schema. Acceptable but could be more explicit.
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?
Two sentences, front-loaded with purpose, and a clear usage hint. No wasted words.
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 low complexity and good schema coverage, the description is reasonably complete. It could mention that all parameters are optional, but the schema implies that. No output schema means return values are not described, which is acceptable.
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 coverage is 100%, so the description adds minimal parameter semantics beyond the hint about period ID. The description does not elaborate on parameter behavior or constraints that are not already in the schema.
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 it lists performance evaluations for the current user, with a specific verb and resource. It distinguishes from siblings like list_periods (which lists periods) and get_performance_evaluation_detail (which gets a single evaluation).
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?
Provides explicit guidance: 'Use list_periods first when a period ID is needed.' This helps the agent understand the prerequisite. However, it does not mention when not to use this tool or alternative tools for other operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_periodsA
List available performance assessment periods for the logged-in user.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description only states basic function; does not disclose ordering, pagination, or whether periods are active/inactive. Minimal behavioral insight.
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?
Single sentence, front-loaded, no redundant words. Every word earns its place.
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?
Simple tool with no complexity. Description covers main purpose, but could mention additional context like sort order or scope (e.g., 'current and upcoming periods').
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?
No parameters, so description need not add param info. Baseline 4 per guidelines for zero-parameter tool.
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?
Clear verb 'list' and resource 'performance assessment periods' with context 'for the logged-in user'. Distinguishes from sibling tools like list_performance_evaluations.
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 on when to use this tool versus siblings such as list_performance_evaluations, get_performance_evaluation_detail, or save_performance_draft. Missing context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_performance_draftA
Save self-evaluation scores and comments as a draft using the evaluation scores endpoint. This tool never submits a final evaluation.
| Name | Required | Description | Default |
|---|---|---|---|
| scores | Yes | All evaluation indicator scores to persist. | |
| docAndCode | No | Brief code and document delivery summary. | |
| selfComment | No | Short self-evaluation summary. | |
| evaluationId | Yes | Evaluation ID to save. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It explicitly states the tool does not submit a final evaluation, but lacks details on idempotency, overwrite behavior, or success/failure outcomes.
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?
Two sentences that are immediately informative: the first gives the core purpose and endpoint, the second reinforces the non-submission trait. No wasted words.
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 lack of output schema and annotations, the description is adequate but not rich. It covers the essential behavioral trait (draft only) but omits return value, prerequisites, and error scenarios. Sibling tools are list/get, so no conflict.
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 coverage is 100% and all parameters have clear descriptions in the schema. The description adds minimal additional meaning beyond mentioning the endpoint. Baseline 3 is appropriate.
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 verb 'save' and the resource 'self-evaluation draft', and explicitly distinguishes from final submission. Sibling tools are list/get operations, so this tool's purpose is distinct.
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 tells the agent to use this for saving drafts and not for final submission ('never submits'). It does not explicitly list alternatives or when not to use, but the context is sufficiently clear.
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.
4 tool updates
v0.1.0- First observed
get_performance_evaluation_detail - First observed
list_performance_evaluations - First observed
list_periods - First observed
save_performance_draft
TDQS
Each tool targets a distinct resource or action: periods, evaluations list, evaluation detail, and draft saving. Descriptions clearly differentiate them, with no overlapping purposes.
All tool names follow a consistent verb_noun pattern using snake_case: 'list_periods', 'list_performance_evaluations', 'get_performance_evaluation_detail', 'save_performance_draft'. The verb choice (list vs get) appropriately distinguishes collection from single item retrieval.
With 4 tools, the server covers basic viewing and drafting for performance evaluations, which is a reasonable minimal set. It does not feel overly thin or excessive for the stated purpose.
The toolset supports listing periods and evaluations, viewing details, and saving drafts, but critically lacks a tool to submit or finalize an evaluation. This is a notable gap that would prevent completing the core evaluation workflow.
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
An MCP server that automatically collects feedback on your MCP server.
Marketing intelligence MCP server providing campaign performance data and analytics tools.
MCP server providing access to the Scorecard API to evaluate and optimize LLM systems.
MCP server for managing FormDesigner forms, fields, logic rules, themes, and entries
Related MCP Servers
- FlicenseCqualityDmaintenanceMCP server that enables deployment and management of MCP servers through a simple configuration-based interface.1-
- AlicenseNot gradedqualityDmaintenanceMCP server for conversation recording and review management, supporting recording, querying, and statistical analysis of conversation history with dual transport mode.15MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that performs automated code reviews by analyzing git diffs against configurable review standards with custom reviewer personas.2MIT
- AlicenseBqualityBmaintenanceMCP server for job search, enabling profile creation, job hunting, review, and supervised application preparation without auto-submission.41Apache 2.0
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/yc-lm/performance-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server