name: mcp-skill-creator description: Create skills that wrap MCP (Model Context Protocol) servers for use with mcp-skill-client. Use when user wants to create a new MCP-based skill, wrap an existing MCP server as a skill, or generate SKILL.md with tool documentation from an MCP server.
MCP Skill Creator
Create skills that wrap MCP servers for browser automation, database access, API integrations, and more. Generated skills use mcp-skill-client to maintain persistent MCP sessions.
Skill Structure
skill-name/
├── SKILL.md # Skill instructions with tool documentation
├── config.json # MCP server configuration
└── scripts/
└── mcp # Wrapper script for short commands
Creating a Skill
Step 1: Create skill directory and config.json
mkdir -p skill-name/scripts
Create config.json:
{
"name": "skill-name",
"transport": "stdio",
"command": "npx",
"args": ["@org/mcp-package@version", "--option1", "--option2"],
"env": {}
}
Transport options:
stdio: Spawns MCP server as subprocess (most common)http: Connects to running MCP server at URL
Step 2: Create wrapper script
Create scripts/mcp (executable):
#!/bin/bash
SKILL_DIR="$(cd "$(dirname "$0")/.." && pwd)"
SESSION="${MCP_SESSION:-default}"
exec npx github:runoshun/mcp-skill-client --config "$SKILL_DIR/config.json" --session "$SESSION" "$@"
Make it executable:
chmod +x scripts/mcp
Step 3: Fetch Tool List
# Set session name (optional, defaults to "default")
export MCP_SESSION=dev
# Start daemon temporarily
./scripts/mcp start
# Get tool list (copy this output for SKILL.md)
./scripts/mcp tools
# Stop daemon
./scripts/mcp stop
Step 4: Write SKILL.md
Use this template:
---
name: skill-name
description: [What the skill does and when to use it]
---
# Skill Name
[Brief description of what this skill enables]
## Setup
Set session name (optional):
\`\`\`bash
export MCP_SESSION=myproject
\`\`\`
Start the MCP daemon:
\`\`\`bash
$SKILL_DIR/scripts/mcp start
\`\`\`
## Available Tools
[Document each tool from the tools list]
### tool_name
[Description from MCP server]
\`\`\`bash
$SKILL_DIR/scripts/mcp call tool_name param1=value
\`\`\`
## Cleanup
\`\`\`bash
$SKILL_DIR/scripts/mcp stop
\`\`\`
Example: Playwright MCP Skill
config.json
{
"name": "playwright-mcp",
"transport": "stdio",
"command": "npx",
"args": ["@playwright/mcp@latest", "--headless", "--browser", "chromium", "--no-sandbox"]
}
scripts/mcp
#!/bin/bash
SKILL_DIR="$(cd "$(dirname "$0")/.." && pwd)"
SESSION="${MCP_SESSION:-default}"
exec npx github:runoshun/mcp-skill-client --config "$SKILL_DIR/config.json" --session "$SESSION" "$@"
SKILL.md (excerpt)
---
name: playwright-mcp
description: Browser automation via Playwright MCP server. Navigate pages, click elements, fill forms, take screenshots. Use for web testing, scraping, or any browser automation task.
---
# Playwright MCP
Browser automation with persistent session via MCP.
## Setup
\`\`\`bash
export MCP_SESSION=myproject # optional
$SKILL_DIR/scripts/mcp start
\`\`\`
## Tools
### browser_navigate
Navigate to a URL.
\`\`\`bash
$SKILL_DIR/scripts/mcp call browser_navigate url=https://example.com
\`\`\`
### browser_snapshot
Get accessibility snapshot with element refs.
\`\`\`bash
$SKILL_DIR/scripts/mcp call browser_snapshot
\`\`\`
### browser_click
Click an element by reference.
\`\`\`bash
$SKILL_DIR/scripts/mcp call browser_click element="Submit" ref=e12
\`\`\`
Session Management
Sessions allow parallel usage from different projects:
# Project A
cd ~/project-a
export MCP_SESSION=project-a
./scripts/mcp start # port auto-assigned (e.g., 8940)
# Project B (different terminal)
cd ~/project-b
export MCP_SESSION=project-b
./scripts/mcp start # different port auto-assigned (e.g., 8941)
Session state is stored in .<skill-name>/ in the current directory:
.skill-name/
├── sessions.json # All session info
├── project-a/
│ ├── daemon.log
│ └── output/
└── project-b/
├── daemon.log
└── output/
List all sessions:
./scripts/mcp sessions
Tool Documentation Format
When documenting tools in SKILL.md:
- Tool name as heading - Use
### tool_name - Brief description - One line explaining what it does
- Example - Show actual command with realistic values
Templates
Copy templates from assets/ directory:
assets/config.json- MCP server configuration templateassets/SKILL.md.template- SKILL.md template with placeholdersassets/mcp.sh- Wrapper script template
Tips
- $SKILL_DIR: Use this placeholder for skill directory path
- MCP_SESSION: Environment variable for session name (default: "default")
- Session persistence: Daemon maintains browser/connection state between calls
- Error handling: Check daemon status if tools fail (
$SKILL_DIR/scripts/mcp status) - Parallel usage: Each session gets auto-assigned port, no manual port management needed