MC

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.zip

Installs 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.
118 charsno explicit “when” trigger
Intermediate

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

You give it
Capability slice definition
You get back
JSON status object with parity validation evidence

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:

  1. Define capability slice
  • User action in plain language
  • Tool contract: name, args, response shape
  • Done criteria (observable)
  1. Write failing parity tests first (TDD red)
  • tools/list includes required tool(s)
  • tools/call succeeds with fixture args
  • Expected output shape is returned
  1. Implement UI behavior
  • Wrapper/component calls tool via useCallTool
  • Keep UI logic thin; tool does data mutation/retrieval
  1. Implement real server tool
  • Add handler in server/src/tools/
  • Register tool in server/src/index.ts
  • Return structured, debuggable output
  1. Prove real parity (TDD green)
  • Run tests
  • Run validation through real MCP path
  • Record status: success | partial | blocked
  1. 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 passed
  • partial: meaningful progress, at least one required check still failing
  • blocked: 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:

  1. Discovery check
  • Call tools/list
  • Assert required tool names exist
  1. Execution check
  • Call each required tool once with fixture args
  • Assert non-error response and expected shape
  1. 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:

  1. Check tools/list for missing registration
  2. Check server handler input schema vs wrapper args mismatch
  3. Check handler output shape mismatch vs UI expectations
  4. 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.

SkillInstallsUpdatedSafetyDifficulty
mcp-app-development (this skill)06moNo flagsIntermediate
run-api-e2e-tests76moReviewBeginner
http-generate17moReviewIntermediate
twinmind-local-dev-loop127dCautionBeginner

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.

711

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

16

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".

13

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.

12

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".

11

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".

11

Search skills

Search the agent skills registry