Files
leo-claude-mktplace/plugins/debug-mcp/skills/mcp-protocol.md
lmiranda 2d51df7a42 feat(marketplace): command consolidation + 8 new plugins (v8.1.0 → v9.0.0) [BREAKING]
Phase 1b: Rename all ~94 commands across 12 plugins to /<noun> <action>
sub-command pattern. Git-flow consolidated from 8→5 commands (commit
variants absorbed into --push/--merge/--sync flags). Dispatch files,
name: frontmatter, and cross-reference updates for all plugins.

Phase 2: Design documents for 8 new plugins in docs/designs/.

Phase 3: Scaffold 8 new plugins — saas-api-platform, saas-db-migrate,
saas-react-platform, saas-test-pilot, data-seed, ops-release-manager,
ops-deploy-pipeline, debug-mcp. Each with plugin.json, commands, agents,
skills, README, and claude-md-integration. Marketplace grows from 12→20.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 14:52:11 -05:00

2.5 KiB

MCP Protocol Skill

Model Context Protocol (MCP) specification reference for debugging and development.

Protocol Overview

MCP uses JSON-RPC 2.0 over stdio (standard input/output) for communication between Claude Code and MCP servers.

Transport Types

Transport Description Use Case
stdio JSON-RPC over stdin/stdout Default for Claude Code
SSE Server-Sent Events over HTTP Remote servers

Tool Definitions

Tools are the primary way MCP servers expose functionality.

Tool Registration

@mcp.tool()
def list_issues(state: str = "open", labels: list[str] = None) -> str:
    """List issues from the repository.

    Args:
        state: Issue state filter (open, closed, all)
        labels: Filter by label names
    """
    # implementation

Tool Schema (JSON)

{
  "name": "list_issues",
  "description": "List issues from the repository",
  "inputSchema": {
    "type": "object",
    "properties": {
      "state": {
        "type": "string",
        "enum": ["open", "closed", "all"],
        "default": "open",
        "description": "Issue state filter"
      },
      "labels": {
        "type": "array",
        "items": { "type": "string" },
        "description": "Filter by label names"
      }
    },
    "required": []
  }
}

Resource Definitions

Resources expose data that can be read by the client.

@mcp.resource("config://settings")
def get_settings() -> str:
    """Return current configuration."""
    return json.dumps(config)

Prompt Definitions

Prompts provide reusable prompt templates.

@mcp.prompt()
def analyze_issue(issue_number: int) -> str:
    """Generate a prompt to analyze a specific issue."""
    return f"Analyze issue #{issue_number} and suggest solutions."

JSON-RPC Message Format

Request

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_issues",
    "arguments": {"state": "open"}
  }
}

Response (Success)

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [{"type": "text", "text": "..."}]
  }
}

Response (Error)

{
  "jsonrpc": "2.0",
  "id": 1,
  "error": {
    "code": -32600,
    "message": "Invalid Request"
  }
}

Error Codes

Code Meaning
-32700 Parse error (invalid JSON)
-32600 Invalid request
-32601 Method not found
-32602 Invalid params
-32603 Internal error