mcp-app-development
Development framework for building MCP apps with real-world parity testing and validation.
Install
mkdir -p .claude/skills/mcp-app-development && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/9741" && unzip -o skill.zip -d .claude/skills/mcp-app-development && rm skill.zipInstalls to .claude/skills/mcp-app-development
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Build and debug MCP Apps in capability slices with TDD and real MCP parity proof, avoiding mock-only false confidence.Key capabilities
- →Define MCP tool contracts
- →Implement parity tests for MCP tools
- →Register server-side MCP handlers
- →Validate tool discovery and execution
How it works
The skill enforces a TDD-based workflow where developers write failing parity tests for real MCP tools before implementing the UI and server-side handlers.
Inputs & outputs
When to use mcp-app-development
- →Building MCP tools
- →Testing MCP tool functionality
- →Validating server-side MCP handlers
- →Ensuring real-world tool parity
About this skill
MCP App Development Skill
Use this skill when building or debugging MCP Apps in this repo with a coding agent.
Outcome
Ship capability slices quickly without fake confidence.
A slice is only done when UI + real MCP tool + parity proof are complete.
Non-Negotiable Rule
Mock-only success is never ship-ready success.
- Mocks/sim are allowed for rapid iteration.
- Completion requires real MCP checks.
Default Slice Workflow (80/20)
For every user request, execute this as one chunk of work:
- Define capability slice
- User action in plain language
- Tool contract: name, args, response shape
- Done criteria (observable)
- Write failing parity tests first (TDD red)
tools/listincludes required tool(s)tools/callsucceeds with fixture args- Expected output shape is returned
- Implement UI behavior
- Wrapper/component calls tool via
useCallTool - Keep UI logic thin; tool does data mutation/retrieval
- Implement real server tool
- Add handler in
server/src/tools/ - Register tool in
server/src/index.ts - Return structured, debuggable output
- Prove real parity (TDD green)
- Run tests
- Run validation through real MCP path
- Record status:
success | partial | blocked
- Only then iterate polish
- Better error states
- Better loading states
- Better copy/UX
Completion Semantics
Use these exact statuses:
success: all required real parity checks passedpartial: meaningful progress, at least one required check still failingblocked: cannot continue without external dependency/input
Never report success if validation evidence is mock/sim only.
Where To Edit
- Workbench host execution path:
lib/workbench/iframe/widget-iframe-host.tsx - MCP proxy bridge:
app/api/mcp-proxy/route.ts - MCP client:
lib/workbench/mcp-client.ts - Server tool registration:
server/src/index.ts - Server tool handlers:
server/src/tools/*.ts - UI wrappers that call tools:
lib/workbench/wrappers/*.tsx - Exported server tool generation:
lib/export/mcp-server/generate-tools.ts
Real Validation Contract (Simple)
For an impacted wrapper, validate:
- Discovery check
- Call
tools/list - Assert required tool names exist
- Execution check
- Call each required tool once with fixture args
- Assert non-error response and expected shape
- Status output
- Emit one summary object:
{
"status": "success | partial | blocked",
"requiredTools": ["..."],
"missingTools": ["..."],
"failingCalls": [{ "tool": "...", "reason": "..." }],
"evidence": ["test names or run ids"]
}
Debugging Heuristic
If UI works in workbench but real validation fails:
- Check
tools/listfor missing registration - Check server handler input schema vs wrapper args mismatch
- Check handler output shape mismatch vs UI expectations
- Check proxy/server URL/session issues
Fix parity first, then continue UI polish.
Minimal Agent Prompt Template
Use this when delegating to a coding agent:
Implement this as one capability slice: [describe action].
Requirements:
1. Write failing tests first for real MCP parity (`tools/list` + `tools/call`).
2. Implement both UI and MCP server tool(s) in one pass.
3. Make tests pass.
4. Return completion status as `success | partial | blocked` with evidence.
Constraint: do not report success from mock-only behavior.
Anti-Patterns
- Building UI against mocks without creating real tools
- Reporting done without parity evidence
- Creating workflow-heavy tools that hide logic from the agent
- Deferring tests until after implementation
Practical Scope Control
Keep the first slice small:
- Prefer one wrapper + one to three tools
- Prefer fixture-driven parity checks over full e2e automation
- Defer comprehensive telemetry and orchestration until repeated pain proves need
When not to use it
- →When relying solely on mock-based success
- →When deferring parity tests until after implementation
Limitations
- →Requires real MCP tool implementation for success
- →Mock-only success is not considered ship-ready
How it compares
It mandates real MCP parity proof instead of allowing mock-only development.
Compared to similar skills
mcp-app-development side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| mcp-app-development (this skill) | 0 | 6mo | No flags | Intermediate |
| run-api-e2e-tests | 7 | 6mo | Review | Beginner |
| http-generate | 1 | 7mo | Review | Intermediate |
| twinmind-local-dev-loop | 1 | 27d | Caution | Beginner |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
run-api-e2e-tests
novuhq
Run e2e tests for the API service. Use when the user wants to run API E2E tests.
http-generate
spring-ai-alibaba
Generates HTTP request examples for Spring Boot Web interfaces according to task specification and saves them as .http files in module-generate.md directories
twinmind-local-dev-loop
jeremylongshore
Set up local development workflow with TwinMind API integration. Use when building applications that integrate TwinMind transcription, testing API calls locally, or developing meeting automation tools. Trigger with phrases like "twinmind dev setup", "twinmind local development", "twinmind API testing", "build with twinmind".
write-test
useautumn
Write integration tests for the Autumn billing system. Use when creating tests, writing test scenarios for billing/subscription features, track/check endpoints, or when the user asks about testing, test cases, or QA.
deepgram-hello-world
jeremylongshore
Create a minimal working Deepgram transcription example. Use when starting a new Deepgram integration, testing your setup, or learning basic Deepgram API patterns. Trigger with phrases like "deepgram hello world", "deepgram example", "deepgram quick start", "simple transcription", "transcribe audio".
groq-hello-world
jeremylongshore
Create a minimal working Groq example. Use when starting a new Groq integration, testing your setup, or learning basic Groq API patterns. Trigger with phrases like "groq hello world", "groq example", "groq quick start", "simple groq code".