skills/mcp-tool-creator/SKILL.md
Create a project-scoped MCP server that exposes Docker Compose services as named tools. Use when a project has a docker-compose.yml and the user wants to create MCP tools for running commands like linting, testing, database queries, or any docker compose exec operation. Triggers: "create MCP tools", "expose docker tools", "setup project tools", "mcp server for docker", "docker tools for Claude".
npx skillsauth add nicolas-codemate/claudecodeconfig mcp-tool-creatorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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.
Five interactive steps. Ask for user input at each step before proceeding.
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"]);
},
{{TOOLS_MARKER}} / {{HANDLERS_MARKER}} comments with generated codePython 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"]
}
}
}
.mcp.json to the user
</instructions>
Next steps:
tools
--- name: deep-review description: Performs deep code review via an isolated fresh agent (triple perspective, anti-bias). Use when the user asks for an in-depth review of current branch changes, or when invoked by /resolve step 08. Do NOT use for reviewing PRs from GitHub (use review-pr skill instead) or for a quick correctness scan with effort levels (use bundled /code-review instead). argument-hint: [--ticket <id>] [--base <branch>] [--fix] [--severity <level>] allowed-tools: Read, Glob, Grep,
tools
Resolve git rebase conflicts methodically. Classifies each conflict (imports/namespace cleanup vs real logic clash), analyzes the commit introducing the change against the current ticket context, auto-fixes only trivial cases with a per-file summary, and asks the user when ambiguous. Verifies static analysis tools pass at the end and optionally runs functional tests. Use after `git rebase` triggers conflicts, or when the user asks to "resolve conflicts", "fix rebase", "j'ai des conflits", "aide-moi sur ce rebase".
development
Synchronize the markdown test plan in docs/qa/ with the current state of the codebase. Use after adding or modifying features to keep the plan up to date, or to bootstrap a test plan for the first time. Do NOT use to execute tests (use /qa-run instead) and do NOT use to design product specs (use /express-need instead).
tools
Execute the markdown test plan in docs/qa/ via Playwright MCP and create a ticket on each failing scenario. Use after /qa-sync, before a release, or to validate a feature end-to-end. Do NOT use to design or update scenarios (use /qa-sync instead) and do NOT use for visual regression (use visual-verify agent instead).