| 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