
Create Mcp Skill
- 26 installs
- Updated January 1, 1970
- cygnusfear/agent-skills
Scaffolds a new skill that wraps an MCP server, following the MCP CLI guide's best practices.
About
Create-mcp-skill is a Claude Code skill that helps you author a new skill wrapping an MCP server, following the best practices in the MCP CLI guide. A solo builder reaches for it when they want to turn a new MCP server into a reusable, well-structured skill or add MCP functionality to an existing one.
- Scaffolds an MCP-backed skill
- Follows MCP CLI best practices
- Integrates MCP functionality
Create Mcp Skill by the numbers
- 26 all-time installs (skills.sh)
- Ranked #435 of 781 Skill Development skills by installs in the Skillselion catalog
- Data as of Jul 29, 2026 (Skillselion catalog sync)
npx skills add https://github.com/cygnusfear/agent-skills --skill create-mcp-skillAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 26 |
|---|---|
| Last updated | January 1, 1970 |
| Repository | cygnusfear/agent-skills ↗ |
What it does
Scaffolds a new skill that wraps an MCP server, following the MCP CLI guide's best practices.
Who is it for?
Building an MCP-backed skill
Skip if: Non-MCP skills
Files
Create MCP Skill
Guide for creating new skills that use MCP (Model Context Protocol) servers with optimized performance patterns.
📚 Reference: See MCP CLI Guide (this document) for detailed patterns and best practices.
Overview
This skill helps you create a new skill that uses an MCP server by: 1. Setting up the skill directory structure 2. Discovering available MCP tools 3. Creating optimized command patterns 4. Applying performance best practices
Prerequisites
- MCP CLI installed (
brew install mcporgo install github.com/f/mcptools/cmd/mcptools@latest) - Target MCP server available (npm package, binary, etc.)
Process
1. Discover Available Tools
First, explore what the MCP server offers:
# List all tools
mcp tools SERVER_COMMAND
# Get detailed JSON schema
mcp tools SERVER_COMMAND --format json
# Interactive exploration
mcp shell SERVER_COMMAND
# Type /h for helpExample:
# Chrome DevTools
mcp tools bunx -y chrome-devtools-mcp@latest
# Filesystem server
mcp tools npx @modelcontextprotocol/server-filesystem ~2. Test Individual Tools
Test each tool before documenting:
# Template
echo -e 'TOOL_NAME {"param":"value"}\nexit' | timeout 30 mcp shell SERVER_COMMAND
# Example
echo -e 'navigate_page {"url":"https://example.com"}\nexit' | timeout 30 mcp shell bunx -y chrome-devtools-mcp@latest -- --isolatedCheck for:
- Required vs optional parameters
- Empty parameter schema issues
- Response format
- Execution time
3. Create Skill Structure
skills/SKILL_NAME/
├── SKILL.md # Main skill documentation
└── .examples/ # (Optional) Example outputs4. Write Skill Documentation
Template for SKILL.md:
---
name: SKILL_NAME
description: Brief description of what this skill does and when to use it.
allowed-tools: Bash, Read, Write
---
# Skill Name
Brief overview.
**📚 See also:** MCP CLI Guide (this document)
## Setup
\`\`\`bash
# Installation instructions for the MCP server
\`\`\`
## Quick Start (FASTEST)
### Common Task 1
\`\`\`bash
pkill -9 -f "server-pattern" 2>/dev/null; sleep 1; \\
echo -e 'command1 {"param":"value"}\\ncommand2 {"param":"value"}\\nexit' | \\
timeout 30 mcp shell SERVER_COMMAND [FLAGS]
\`\`\`
### Common Task 2
\`\`\`bash
# Another optimized pattern
\`\`\`
**⚡ Pattern:** cleanup; sleep; echo commands | timeout shell
## Key Tools
- **tool1** - Description (required params: `param1`, `param2`)
- **tool2** - Description (optional params: `param1`)
## Important Notes
- Server-specific quirks
- Performance considerations
- Common gotchas
## Troubleshooting
**Problem: [Common issue]**
\`\`\`bash
# Solution
\`\`\`Best Practices Checklist
When creating an MCP-based skill, ensure:
✅ Performance
- [ ] Quick Start section at the top with copy-paste ready commands
- [ ] All examples use the optimized pattern:
cleanup; sleep; echo | timeout shell - [ ] Shell mode recommended over individual calls
- [ ] Cleanup commands included (pkill pattern)
- [ ] Timeout wrapper on all shell commands (30s default)
✅ Parameter Handling
- [ ] Parameters passed directly (no
{"arguments":{}}wrapper) - [ ] Tools with optional-only params documented with workaround
- [ ] Empty parameter bug addressed where applicable
- [ ] Example commands show correct parameter format
✅ Documentation
- [ ] Reference to MCP CLI guide included
- [ ] Server installation instructions provided
- [ ] Quick start patterns for common tasks
- [ ] Key tools listed with parameter requirements
- [ ] Troubleshooting section for common issues
- [ ] Performance tips highlighted
✅ Command Structure
- [ ] Correct argument order:
mcp call TOOL SERVER --params '{}' - [ ] Server flags properly positioned with
--separator - [ ] Exit command included in shell mode examples
- [ ] One-liner format (no backslash continuations if possible)
Example: Chrome DevTools Skill
See skills/chrome-devtools/SKILL.md for a complete example that follows all best practices.
Key features:
- Quick start patterns at the top
- 6-9x performance improvement documented
- Optimized one-liners for common tasks
- Comprehensive troubleshooting guide
- References MCP CLI guide
Template Generator
Generate a basic skill structure:
# Set variables
SKILL_NAME="my-mcp-skill"
SERVER_COMMAND="bunx my-mcp-server@latest"
SERVER_PATTERN="my-mcp-server"
# Create directory
mkdir -p "skills/$SKILL_NAME"
# Create SKILL.md with template
cat > "skills/$SKILL_NAME/SKILL.md" << 'EOF'
---
name: SKILL_NAME
description: TODO - Add description
allowed-tools: Bash, Read, Write
---
# Skill Name
TODO - Add overview
**📚 See also:** MCP CLI Guide (this document)
## Setup
TODO - Add installation
## Quick Start (FASTEST)
### Common Task
pkill -9 -f "SERVER_PATTERN" 2>/dev/null; sleep 1; \ echo -e 'COMMAND\nexit' | \ timeout 30 mcp shell SERVER_COMMAND
## Key Tools
- **tool1** - TODO
## Important Notes
- TODO
## Troubleshooting
**Problem: Issue**
Solution
EOF
# Discover tools
mcp tools $SERVER_COMMAND
# Test interactively
mcp shell $SERVER_COMMANDCommon Patterns
Pattern 1: Single Command Check
pkill -9 -f "PATTERN" 2>/dev/null; sleep 1; \
echo -e 'TOOL {"param":"value"}\nexit' | \
timeout 30 mcp shell SERVER -- --isolatedPattern 2: Multi-Command Debug
pkill -9 -f "PATTERN" 2>/dev/null; sleep 1; \
echo -e 'CMD1 {"p":"v"}\nCMD2 {"p":"v"}\nCMD3 {"p":"v"}\nexit' | \
timeout 30 mcp shell SERVER -- --isolatedPattern 3: With Custom Flags
pkill -9 -f "PATTERN" 2>/dev/null; sleep 1; \
echo -e 'COMMAND\nexit' | \
timeout 30 mcp shell SERVER -- --flag1 --flag2=valueTesting Your Skill
1. Test cleanup pattern works:
pkill -9 -f "PATTERN" 2>/dev/null; sleep 1; echo "Cleanup OK"2. Test basic command:
echo -e 'list_tools\nexit' | timeout 10 mcp shell SERVER3. Test multi-command:
echo -e 'cmd1\ncmd2\ncmd3\nexit' | timeout 30 mcp shell SERVER4. Test with cleanup:
pkill -9 -f "PATTERN" 2>/dev/null; sleep 1; \
echo -e 'cmd1\ncmd2\nexit' | timeout 30 mcp shell SERVER5. Verify no hanging:
- Commands should complete within timeout
- Exit command should terminate session cleanly
Optimization Checklist
Compare your skill against the optimized pattern:
| Aspect | Before | After |
|---|---|---|
| Commands per task | 5-10 | 1 |
| Manual cleanup | Yes | Automated |
| Failures from locks | Common | Zero |
| Execution time | 60-90s | 5-10s |
| Success rate | 60-70% | 100% |
Resources
- MCP CLI Guide (this document) - Complete MCP CLI reference
- Chrome DevTools Skill - Reference implementation
- MCP Documentation - Official MCP docs
- mcptools GitHub - CLI tool source
Quick Reference
Every MCP skill should have:
1. Quick Start section - Copy-paste ready commands 2. Optimized pattern - cleanup; sleep; echo | timeout shell 3. Performance note - Document speed improvement 4. MCP CLI guide reference - MCP CLI patterns are documented in this skill 5. Troubleshooting - Common issues and solutions
Every command should:
1. Include cleanup (pkill -9 -f "PATTERN") 2. Wait after cleanup (sleep 1) 3. Use shell mode for 2+ commands 4. Have timeout wrapper 5. End with exit 6. Use correct parameter format (no "arguments" wrapper)