Create a new skill that uses an MCP server, following best practices from the MCP CLI guide. Use when user wants to create a skill for a new MCP server or integrate MCP functionality into a skill.
Guide for creating new skills that use MCP (Model Context Protocol) servers with optimized performance patterns.
📚 Reference: See MCP CLI Guide for detailed patterns and best practices.
This skill helps you create a new skill that uses an MCP server by:
brew install mcp or go install github.com/f/mcptools/cmd/mcptools@latest)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 help
Example:
# Chrome DevTools
mcp tools bunx -y chrome-devtools-mcp@latest
# Filesystem server
mcp tools npx @modelcontextprotocol/server-filesystem ~
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 -- --isolated
Check for:
skills/SKILL_NAME/
├── SKILL.md # Main skill documentation
└── .examples/ # (Optional) Example outputs
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](../../.docs/mcp-cli.md)
## 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
\`\`\`
When creating an MCP-based skill, ensure:
cleanup; sleep; echo | timeout shell{"arguments":{}} wrapper)mcp call TOOL SERVER --params '{}'-- separatorSee skills/chrome-devtools/SKILL.md for a complete example that follows all best practices.
Key features:
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](../../.docs/mcp-cli.md)
## Setup
```bash
# TODO - Add installation
pkill -9 -f "SERVER_PATTERN" 2>/dev/null; sleep 1; \
echo -e 'COMMAND\nexit' | \
timeout 30 mcp shell SERVER_COMMAND
Problem: Issue
# Solution
EOF
mcp tools $SERVER_COMMAND
mcp shell $SERVER_COMMAND
## Common Patterns
### Pattern 1: Single Command Check
```bash
pkill -9 -f "PATTERN" 2>/dev/null; sleep 1; \
echo -e 'TOOL {"param":"value"}\nexit' | \
timeout 30 mcp shell SERVER -- --isolated
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 -- --isolated
pkill -9 -f "PATTERN" 2>/dev/null; sleep 1; \
echo -e 'COMMAND\nexit' | \
timeout 30 mcp shell SERVER -- --flag1 --flag2=value
Test cleanup pattern works:
pkill -9 -f "PATTERN" 2>/dev/null; sleep 1; echo "Cleanup OK"
Test basic command:
echo -e 'list_tools\nexit' | timeout 10 mcp shell SERVER
Test multi-command:
echo -e 'cmd1\ncmd2\ncmd3\nexit' | timeout 30 mcp shell SERVER
Test with cleanup:
pkill -9 -f "PATTERN" 2>/dev/null; sleep 1; \
echo -e 'cmd1\ncmd2\nexit' | timeout 30 mcp shell SERVER
Verify no hanging:
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% |
Every MCP skill should have:
cleanup; sleep; echo | timeout shell.docs/mcp-cli.mdEvery command should:
pkill -9 -f "PATTERN")sleep 1)exit