pproenca/dot-skills/eval-mcp
Claude Code and agent skill by pproenca/dot-skills
- community
Checking that the SKILL.md file is still in the repository.
Measures whether Claude uses an MCP server's tools correctly — tests tool selection accuracy, analyzes schema quality, and iteratively optimizes descriptions. Triggers when the user asks to "evaluate MCP tools", "test tool selection", "improve tool descriptions", "check MCP schema quality", or "eval my MCP server". Companion to build-mcp-server.
Install
npx vskill@latest install pproenca/dot-skills/eval-mcpSKILL.md
Evaluate MCP Tools
Tool descriptions are prompt engineering — they land directly in Claude's context window and determine whether Claude picks the right tool with the right arguments. This skill makes tool quality measurable and improvable instead of guesswork.
Three levels of testing, each building on the last:
- Static Analysis — deterministic schema quality checks (no Claude calls)
- Selection Testing — does Claude pick the right tool for each intent?
- Description Optimization — iterative improvement based on confusion patterns
When to Apply
- User wants to check if their MCP tool schemas are well-designed
- User wants to test whether Claude selects the right tools for user intents
- User is debugging tool confusion (Claude picks the wrong tool)
- User wants to optimize tool descriptions for better selection accuracy
- User has finished scaffolding with
build-mcp-serverand wants to validate quality
Workflow Overview
Phase 4 loops back: apply rewrites → refetch schemas → retest → compare accuracy.
Prerequisites
- Node.js >= 18 — required for the MCP Inspector CLI (
npx) - jq — required for schema analysis scripts
- A running MCP server — the server must respond to
tools/list. Usebuild-mcp-server/scripts/test-server.shto verify connectivity first.
Phase 1 — Connect & Inventory
Connect to the user's MCP server and fetch the tool schemas.
1a: Get connection details
Ask the user how to reach their server:
- HTTP/SSE: URL (e.g.,
http://localhost:3000/mcp) - stdio: spawn command (e.g.,
node dist/server.js)
1b: Fetch tool schemas
This calls tools/list via the MCP Inspector CLI and saves the schemas.
1c: Display inventory
Show a summary table:
Flag tool count: 1-15 optimal, 15-30 warning, 30+ excessive (consider search+execute pattern).
1d: Create workspace
Create workspace at {server-name}-eval/ adjacent to the skill directory or in the user's project:
Phase 2 — Static Analysis
Run deterministic quality checks — no Claude calls needed. This gives immediate feedback during development.
2a: Run analysis
2b: Display results
Show per-tool quality scores. Read `references/quality-checklist.md` for the criteria being checked.
2c: Flag sibling pairs
If the analysis found tools with high description overlap, highlight them as confusion risks:
2d: Decision point
If critical issues exist (missing descriptions, zero annotations), recommend fixing them before Phase 3. Static issues create noise in selection testing — fix the obvious problems first, then measure the subtle ones.
If all tools score well, proceed to Phase 3.
Phase 3 — Selection Testing
Test whether Claude picks the right tool for each user intent. This is the core eval.
3a: Generate test intents
Read `references/eval-patterns.md` for intent generation patterns.
For each tool, generate:
- 3 should-trigger intents — direct, implicit, and casual phrasings
- 2 should-not-trigger intents — near-miss and keyword overlap
For each sibling pair flagged in Phase 2:
- 1 disambiguation intent per tool — tests whether Claude picks the RIGHT sibling
Present all intents to the user for review. Ask if any should be added, removed, or modified.
3b: Save intents
Save to {workspace}/evals/evals.json:
3c: Run selection tests
For each intent, spawn a subagent that receives:
- The full tool schemas from tools.json (formatted as they'd appear in Claude's context)
- The user intent text
- Instructions to select exactly one tool and provide arguments, or decline if no tool fits
The subagent prompt:
Save each result to {workspace}/iteration-N/selection/intent-{ID}/result.json.
Launch all selection tests in parallel for efficiency.
3d: Grade results
3e: Display results
Phase 4 — Optimize & Iterate
Analyze confusion patterns and suggest description improvements. Read `references/optimization.md` for rewrite patterns.
4a: Analyze confusions
For each confused pair (from worst_confusions):
- Read both tools' current descriptions
- Identify why they're confusing (missing negation, overlapping scope, no cross-reference)
- Draft a specific rewrite following the disambiguation patterns in optimization.md
4b: Present suggestions
Save to {workspace}/iteration-N/suggestions.json (format defined in optimization.md).
4c: Apply and retest
After the user applies the rewrites to their server code:
- Restart the server
- Re-run Phase 1 to refetch tools.json (descriptions may have changed)
- Re-run Phase 2 for updated static analysis
- Re-run Phase 3 into
iteration-N+1using the same evals.json - Compare accuracy:
4d: Iteration guidance
- Change one sibling pair per iteration so you can attribute improvements
- If accuracy plateaus, the remaining confusions may need architectural changes (merging tools, renaming, or restructuring the tool surface)
- Stop when accuracy exceeds 90% or when remaining confusions are in ambiguous edge cases that humans would also struggle with
Reference Files
Read these when you reach the relevant phase — not upfront:
- `references/quality-checklist.md` — Testable quality criteria for tool schemas (Phase 2)
- `references/eval-patterns.md` — How to write tool selection test intents (Phase 3)
- `references/optimization.md` — How to improve descriptions from eval results (Phase 4)
Related Skills
build-mcp-server— Design and scaffold MCP servers (run this first, then eval-mcp to validate)build-mcp-app— MCP servers with interactive UI widgets
Security
- Security scanPassed, 93 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/.experimental/eval-mcp/SKILL.md
Popularity
- Repository stars
- 169
- Repository forks
- 12
- 7-day trend score
- 26
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/pproenca/dot-skills/eval-mcp)