mcp-dev

Develop and debug launchd-managed MCP server processes with atomic edit-kill-verify cycles.

Updated Aug 23, 2026
One-click install
npx skills add https://github.com/thomasttvo/claude-skills --skill mcp-dev
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: mcp-dev
Source: https://github.com/thomasttvo/claude-skills/tree/main/skills/mcp-dev
Command: npx skills add https://github.com/thomasttvo/claude-skills --skill mcp-dev

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Provides practical guidance to reliably develop, restart, and verify long-lived MCP server processes that are managed by launchd, preventing mistakes where edited code is not actually loaded, clients remain connected to dead sockets, or subprocesses silently fail.

Core Features & Use Cases

  • Atomic edit→kill→verify cycle: Enforces completing the full workflow of editing code, killing the process, and verifying the new code path is active.
  • Transport-aware verification: Distinguishes HTTP (stateless) and stdio (persistent) transports and prescribes the correct test and reconnection steps for each.
  • Launchd and subprocess reliability: Covers launchd quirks, working directory issues, zombie subprocess handling, and best practices for spawning and validating subprocesses.
  • Use Case: Iterate on an MCP tool on macOS, restart via launchd, confirm the new behavior via the exact changed tool, and validate via log markers and port/process checks.

Quick Start

Describe the code change, name the MCP service and transport, and ask the assistant to run through the edit→kill→verify steps and specific checks to confirm the new code is live.

Frequently Asked Questions about mcp-dev

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I verify that edited code is actually loaded in a launchd-managed MCP server?

To verify edited code is loaded, follow an atomic edit→kill→verify cycle: kill the launchd-managed MCP process, restart it, and confirm the new code path via log markers and port or process checks to avoid clients remaining on dead sockets.

What is the best way to debug an MCP server using stdio transport during iterative development?

Debugging an MCP server using stdio transport requires managing persistent connections. You must kill and restart the process to load code changes, then verify reconnection steps specific to stdio to ensure the persistent transport is correctly re-established.

Does MCP server verification differ between HTTP and stdio transports?

MCP server verification distinguishes HTTP as stateless, allowing direct endpoint testing, while stdio is persistent and requires specific reconnection steps and subprocess management to confirm the new code is live.

Why does my launchd-managed MCP subprocess silently fail after a code change?

A launchd-managed MCP subprocess might silently fail due to working directory issues or zombie subprocesses. Without an atomic edit→kill→verify cycle, launchd quirks can prevent new code from loading correctly or cause silent failures.

Can I use this approach to validate MCP server changes in a CI pipeline?

You can validate MCP server changes in a CI pipeline using this approach. It applies to CI-related validation by enforcing atomic edit→kill→verify cycles, transport-specific testing, and robust subprocess management to ensure code changes are functional.