mcp-tool-creator

Installation
SKILL.md

MCP Tool Creator

Create a project-scoped MCP server that wraps docker compose exec commands into named tools. The generated server lives in the project and is registered in .mcp.json.

Workflow

Five interactive steps. Ask for user input at each step before proceeding.

Step 1: Discover

Step 2: Design

Step 3: Generate

Python tool generation pattern:

@mcp.tool()
async def tool_name(param: str = "default") -> str:
    """Tool description.

    Args:
        param: Parameter description.
    """
    return await run_docker_command("service", ["command", param])

Node.js tool generation pattern: Add to TOOLS array:

{
  name: "tool_name",
  description: "Tool description.",
  inputSchema: {
    type: "object",
    properties: {
      param: { type: "string", description: "Parameter description" },
    },
    required: [],
  },
},

Add to HANDLERS map:

tool_name: async (args) => {
  return await runDockerCommand("service", ["command", args.param || "default"]);
},
  1. Replace the {{TOOLS_MARKER}} / {{HANDLERS_MARKER}} comments with generated code
  2. For database tools with credentials, read defaults from docker-compose.yml env vars
  3. Show the generated file to the user for review

Step 4: Configure

Python server (system python3):

{
  "mcpServers": {
    "{{SERVER_NAME}}": {
      "command": "python3",
      "args": ["mcp-tools/server.py"]
    }
  }
}

Python server (venv, when system Python is locked):

{
  "mcpServers": {
    "{{SERVER_NAME}}": {
      "command": "mcp-tools/.venv/bin/python",
      "args": ["mcp-tools/server.py"]
    }
  }
}

Node.js server:

{
  "mcpServers": {
    "{{SERVER_NAME}}": {
      "command": "node",
      "args": ["mcp-tools/server.js"]
    }
  }
}
  1. Show the resulting .mcp.json to the user

Step 5: Validate

Next steps:

  1. Restart Claude Code (or reload MCP servers)
  2. The following tools are now available: [list]
Related skills
Installs
1
First Seen
Mar 29, 2026