Smithery Logo
MCPsSkillsDocsPricing
Login
Smithery Logo

Accelerating the Agent Economy

Resources

DocumentationPrivacy PolicySystem Status

Company

PricingAboutBlog

Connect

© 2026 Smithery. All rights reserved.

    nemori-ai

    mcp-skill-creator

    nemori-ai/mcp-skill-creator
    Planning
    11

    About

    SKILL.md

    Install

    Install via Skills CLI

    or add to your agent
    • Claude Code
      Claude Code
    • Codex
      Codex
    • OpenClaw
      OpenClaw
    • Cursor
      Cursor
    • Amp
      Amp
    • GitHub Copilot
      GitHub Copilot
    • Gemini CLI
      Gemini CLI
    • Kilo Code
      Kilo Code
    • Junie
      Junie
    • Replit
      Replit
    • Windsurf
      Windsurf
    • Cline
      Cline
    • Continue
      Continue
    • OpenCode
      OpenCode
    • OpenHands
      OpenHands
    • Roo Code
      Roo Code
    • Augment
      Augment
    • Goose
      Goose
    • Trae
      Trae
    • Zencoder
      Zencoder
    • Antigravity
      Antigravity
    ├─
    ├─
    └─

    About

    Meta-skill for creating workflow-optimized skills from MCP servers. Use when users want to create a custom skill that integrates one or more MCP servers into a specialized workflow.

    SKILL.md

    MCP-Powered Skill Creator

    This meta-skill creates workflow-optimized skills from MCP servers using code execution patterns inspired by Anthropic's MCP engineering practices.

    Core Concept

    Transform MCP servers into specialized, personalized workflow skills by:

    1. Progressive Disclosure: Generate code APIs for MCP tools, loaded on-demand (not all upfront)
    2. Context Efficiency: Process data in execution environment, minimize token usage
    3. Workflow Optimization: Combine MCP calls with parallel execution, filtering, control flow
    4. Personalization: Embed user preferences, SOPs, and domain knowledge into the skill

    When to Use This Skill

    Use this skill when a user wants to:

    • Create a custom skill from one or more MCP servers
    • Optimize a workflow that involves multiple MCP tool calls
    • Build reusable automation scripts for specific work scenarios
    • Capture personal SOPs and preferences into a skill

    ⚠️ IMPORTANT: Before You Start

    ALWAYS check and install dependencies FIRST before doing anything else:

    python3 -c "import mcp; print('✓ MCP SDK is installed')" 2>/dev/null || pip3 install mcp --break-system-packages
    

    Automatic Installation Process:

    1. First, check if MCP SDK is installed
    2. If not installed, automatically install it using pip3 install mcp --break-system-packages
    3. Verify installation succeeded before continuing
    4. Then proceed with skill creation

    DO NOT ask the user to manually install dependencies - you should handle this automatically as part of the skill creation process.

    Why this matters: The introspector and generated scripts require the mcp package. Installing it upfront ensures a smooth workflow.

    Skill Creation Process

    Follow these steps to create an MCP-powered skill. This process combines programmatic MCP infrastructure generation with LLM-driven skill design, following skill-creator principles.

    Overview of Steps

    1. Prerequisites - Install required dependencies
    2. Gather Input - Collect MCP servers and workflow description from user
    3. Generate MCP Infrastructure - Use scripts to introspect servers and create wrappers (programmatic)
    4. Understand the Workflow - Analyze user's scenario with concrete examples (LLM-driven)
    5. Plan Skill Contents - Determine what scripts, references, and guidance to include (LLM-driven)
    6. Implement the Skill - Write workflow scripts and SKILL.md with embedded preferences (LLM-driven)
    7. Package and Deliver - Create distributable .skill file

    Step 0: Prerequisites (Automatic)

    You should automatically check and install the MCP SDK if needed:

    python3 -c "import mcp; print('✓ MCP SDK is installed')" 2>/dev/null || pip3 install mcp --break-system-packages
    

    Process:

    1. Check if MCP SDK is already installed
    2. If not, install it automatically with pip3 install mcp --break-system-packages
    3. Verify installation succeeded
    4. Inform the user that dependencies have been installed

    Why needed: The introspector and generated scripts use the mcp package to connect to MCP servers.

    DO NOT ask the user to manually install - handle this automatically as part of the workflow.

    Step 1: Gather Input

    Before starting, collect the following from the user:

    MCP Server Configurations (required):

    {
      "mcp_servers": [
        {
          "name": "server-name",
          "command": ["npx", "-y", "@modelcontextprotocol/server-..."]
        }
      ]
    }
    

    Workflow Description (required):

    • Clear description of the workflow steps
    • Can be numbered list, sequential narrative, or structured steps
    • Example: "First I visit the official website, then check ProductHunt, then search Twitter/Reddit, finally generate a report"

    User Preferences (optional):

    • How they like to work
    • What data they prioritize
    • Quality standards
    • Example: "I prefer quantitative metrics over qualitative descriptions"

    Standard Operating Procedures (optional):

    • Company-specific practices
    • Domain knowledge
    • Best practices
    • Example: "Always verify information from at least 3 sources"

    If user provides a single configuration file, parse it to extract these components.

    Step 2: Generate MCP Infrastructure (Programmatic)

    This step generates the MCP client infrastructure and tool discovery utilities.

    2.1 Introspect MCP Servers

    Use scripts/mcp_introspector.py to discover available tools:

    # Create MCP config file in skill directory
    echo '{
      "servers": [
        {
          "name": "filesystem",
          "command": ["npx", "-y", "@modelcontextprotocol/server-filesystem", "/path/to/dir"]
        }
      ]
    }' > <skill-dir>/mcp_config.json
    
    # Run introspection
    python scripts/mcp_introspector.py <skill-dir>/mcp_config.json introspection.json
    

    This produces a JSON file with all available tools, their parameters, and descriptions.

    2.2 Generate MCP Client and Tool Discovery

    Use scripts/generate_mcp_wrappers.py to create the infrastructure:

    python scripts/generate_mcp_wrappers.py introspection.json <skill-dir>
    

    This creates:

    • scripts/mcp_client.py - Working MCP client with proper connection management
    • scripts/list_mcp_tools.py - Dynamic tool discovery (Progressive Disclosure)
    • scripts/tools/<server>/ - (Optional) Type-safe wrappers for each tool

    Generated structure:

    <skill-dir>/
    ├── mcp_config.json           # Server configuration
    ├── scripts/
    │   ├── mcp_client.py         # ✅ Working implementation
    │   ├── list_mcp_tools.py     # 🆕 View tool docs on-demand
    │   └── workflows/            # (You'll create these)
    │       └── your_workflow.py
    

    2.3 How to View MCP Tool Documentation

    Progressive Disclosure means tools are discovered on-demand, not pre-loaded. Three ways to view docs:

    1. Dynamic Query (Recommended):

      cd <skill-dir>/scripts
      python list_mcp_tools.py
      

      Shows all available tools with parameters and descriptions.

    2. Generate Static Reference:

      python list_mcp_tools.py > references/mcp_tools_reference.txt
      

      Save for offline reference.

    3. In SKILL.md: List only the most commonly used tools, full docs available via method 1 or 2.

    Key Insight: You don't need wrapper files for each tool. Just use call_mcp_tool() directly:

    from mcp_client import call_mcp_tool
    
    result = await call_mcp_tool('filesystem', 'search_files', {
        'path': '/path',
        'pattern': 'myfile'
    })
    

    Step 3: Understand the Workflow (LLM-Driven)

    Now analyze the user's workflow description to understand what this skill needs to accomplish. Similar to skill-creator's Step 1.

    Ask clarifying questions if needed:

    • "What specific data sources do you use?"
    • "How do you handle cases where data is missing?"
    • "What does the final output look like?"
    • "Are there any steps that must happen sequentially vs in parallel?"

    Identify workflow characteristics:

    • Which steps are data fetching operations (candidates for parallelization)
    • Which steps are data processing (candidates for execution environment filtering)
    • Which steps have complex control flow (loops, conditionals, polling)
    • What intermediate state needs to be preserved

    Example Analysis:

    User says: "I research products by checking the official site, ProductHunt, Twitter, and Reddit, then create a report"

    Analysis:

    • 4 data fetch operations (parallel opportunity)
    • 1 aggregation step (data filtering opportunity)
    • 1 output generation (report creation)
    • Sequential dependency: Fetch all → Aggregate → Generate report

    Step 4: Plan Skill Contents (LLM-Driven)

    Based on the workflow analysis, determine what to include in the skill. Follow skill-creator principles.

    4.1 Decide on Scripts vs Guidance

    Create scripts when:

    • Same code would be rewritten repeatedly
    • Complex workflow with multiple MCP calls
    • Parallel execution can improve performance
    • Data filtering reduces context usage significantly
    • Polling/monitoring patterns

    Use text guidance when:

    • Workflow varies significantly each time
    • Simple single-tool operations
    • User needs flexibility in approach
    • Context helps more than code

    4.2 Plan Script Structure

    For each workflow script to create, determine:

    Script purpose: What part of the workflow does it handle?

    MCP tools needed: Which tools from which servers?

    Optimization patterns:

    • Parallel execution: asyncio.gather() for independent fetches
    • Data filtering: Process in execution environment before returning
    • Control flow: Loops, conditionals, error handling
    • State persistence: Save intermediate results to filesystem

    Parameters: What inputs does the script need?

    Output: What does it return? (Prefer summaries over full data)

    4.3 Plan SKILL.md Structure

    Determine what goes in SKILL.md:

    Essential:

    • Workflow overview (user's mental model)
    • When to use each script
    • User preferences (embedded as guidance)
    • SOPs (embedded as procedural instructions)
    • Available MCP tools (reference, not full docs)

    Optional references/:

    • Detailed MCP tool catalog
    • Complex schemas or API documentation
    • Additional examples
    • Troubleshooting guides

    Step 5: Implement the Skill (LLM-Driven)

    Now create the actual skill files. This is where you write code and documentation.

    5.1 Write Workflow Scripts

    For each planned script, create scripts/workflows/<script_name>.py:

    Follow these patterns from Anthropic's MCP best practices:

    Pattern 1: Parallel Fetch + Aggregate

    async def research_pipeline(product_url: str, product_name: str) -> dict:
        """Complete research workflow with parallel data gathering"""
        
        # Parallel fetch from multiple sources
        official_task = google_devtools.fetch_page(product_url)
        twitter_task = x_com.search_tweets(f'"{product_name}"')
        reddit_task = reddit.search_discussions(product_name)
        
        # Execute concurrently (3x faster than sequential)
        official, twitter, reddit = await asyncio.gather(
            official_task, twitter_task, reddit_task
        )
        
        # Filter and aggregate in execution environment
        # (keeps raw data out of context)
        key_features = extract_features(official, top_n=10)
        sentiment = analyze_sentiment([twitter, reddit])
        highlights = extract_highlights(twitter + reddit, top_n=5)
        
        # Return summary (not full data)
        return {
            'key_features': key_features,
            'sentiment': sentiment,
            'highlights': highlights,
            'source_count': len(twitter) + len(reddit)
        }
    

    Pattern 2: Polling/Monitoring

    async def wait_for_deployment(channel: str, keyword: str, timeout: int = 300):
        """Poll Slack channel for deployment completion"""
        start = time.time()
        
        while time.time() - start < timeout:
            messages = await slack.get_channel_history(channel, limit=10)
            
            if any(keyword in m['text'].lower() for m in messages):
                return {'status': 'complete', 'message': messages[0]}
            
            await asyncio.sleep(10)
        
        return {'status': 'timeout'}
    

    Pattern 3: Bulk Processing

    async def sync_contacts(sheet_id: str, crm_object: str):
        """Sync contacts from sheet to CRM (privacy-preserving)"""
        
        # Load data once
        contacts = await google_sheets.get_sheet(sheet_id)
        
        # Filter in execution environment (not in context)
        valid = [c for c in contacts if validate_email(c['email'])]
        
        # Batch update (PII never enters model context)
        results = []
        for batch in chunked(valid, batch_size=50):
            batch_results = await asyncio.gather(*[
                crm.update_record(crm_object, contact)
                for contact in batch
            ])
            results.extend(batch_results)
        
        # Return summary only
        return {
            'processed': len(valid),
            'successful': sum(1 for r in results if r['success'])
        }
    

    Key Principles for Scripts:

    • Use async/await for IO-bound MCP calls
    • Combine related operations into single scripts
    • Filter/aggregate data before returning to model
    • Return summaries, not raw data
    • Include type hints and docstrings
    • Add helper functions for data processing

    5.2 Write SKILL.md

    Create the SKILL.md following skill-creator structure, with MCP-specific additions.

    YAML Frontmatter:

    ---
    name: <skill-name>
    description: <Brief description of workflow + when to use + MCP servers involved>
    ---
    

    Body Structure:

    # [Skill Name]
    
    [Overview of what this skill does]
    
    ## Prerequisites
    
    This skill requires the MCP SDK. **The scripts will automatically check and install it if needed.**
    
    If you want to manually verify or install:
    
    ```bash
    python3 -c "import mcp; print('✓ MCP SDK ready!')" 2>/dev/null || pip3 install mcp --break-system-packages
    

    Why needed: This skill uses MCP tools to [brief explanation of what MCP servers do]. The workflow scripts require the mcp package to connect to MCP servers.

    Note: When you run any workflow script, it will automatically check for MCP SDK and display a helpful error message if not installed.

    Workflow Overview

    [User's workflow steps in their own language]

    [USER PREFERENCES - Embedded as guidance] When using this skill:

    • [Preference 1]
    • [Preference 2]

    [SOPs - Embedded as procedural instructions] Standard procedure:

    1. [SOP step 1]
    2. [SOP step 2]

    Quick Start

    Before running workflows, ensure MCP SDK is installed (see Prerequisites above).

    [Simple example of using the main workflow script]

    Available Workflows

    [Primary Workflow Script]

    Use when: [Scenario]

    Location: scripts/workflows/<script>.py

    Usage:

    from scripts.workflows import workflow_name
    result = await workflow_name(params)
    

    Optimizations:

    • Parallel execution of [X] data sources
    • Context-efficient data filtering
    • [Other optimizations]

    [Repeat for other workflow scripts]

    MCP Tools Available

    [Brief overview of integrated MCP servers]

    [Server Name]

    Tools: [Count] available

    Location: scripts/tools/[server]/

    Key tools: [List 3-5 most relevant]

    Discovery: Use ls scripts/tools/[server]/ to see all tools

    [Repeat for each server]

    Advanced Usage

    [Guidance on combining scripts, customization, etc.]

    Performance Notes

    [Context optimization benefits, speedups from parallelization]

    
    **Critical**: Embed user preferences and SOPs directly into the workflow guidance, not as separate sections. They should inform HOW to use the skill.
    
    **Example of embedded preferences**:
    ```markdown
    ## Workflow Overview
    
    This skill automates product research with the following steps:
    
    1. Official website analysis
    2. Community feedback gathering
    3. Report generation
    
    **Research approach**: Always prioritize quantitative metrics (user counts, ratings) over qualitative descriptions. Recent information (last 6 months) is valued over older reviews. Cross-reference official claims against community feedback to identify contradictions.
    

    5.3 Create References (If Needed)

    Only create references/ files if SKILL.md would exceed 500 lines or if there's detailed reference material that doesn't belong in the main workflow.

    Possible reference files:

    • references/mcp_tools.md - Detailed catalog of all MCP tools
    • references/schemas.md - Data schemas for APIs
    • references/examples.md - Additional usage examples

    Step 6: Package and Deliver

    Once the skill is complete:

    1. Review the skill structure

      • SKILL.md is clear and under 500 lines
      • Scripts are tested (or marked as TODO)
      • User preferences are embedded
      • MCP tool wrappers are generated
    2. Package the skill

      python /mnt/skills/public/skill-creator/scripts/package_skill.py <skill-dir>
      
    3. Provide to user

      • Share the .skill file
      • Explain key workflows
      • Highlight personalized aspects (preferences, SOPs)

    Key Differences from Standard Skill-Creator

    This meta-skill extends skill-creator with MCP-specific capabilities:

    1. MCP Infrastructure (Unique)

    Standard skill-creator: You manually write scripts or provide instructions

    MCP skill-creator: Programmatically generates type-safe tool wrappers from MCP servers, enabling progressive disclosure

    2. Optimization Focus

    Standard skill-creator: General workflow guidance

    MCP skill-creator: Specific optimization patterns (parallel execution, data filtering, control flow, privacy)

    3. Personalization Depth

    Standard skill-creator: Domain knowledge in references/

    MCP skill-creator: User preferences and SOPs embedded directly into workflow guidance

    Best Practices

    When to Create Scripts vs Text Guidance

    Create scripts for:

    • End-to-end workflows with 3+ steps
    • Operations that benefit from parallelization
    • Data processing that should happen in execution environment
    • Polling/monitoring patterns
    • Bulk operations

    Use text guidance for:

    • Ad-hoc tool usage
    • Workflows with high variability
    • Simple single-tool operations
    • Exploratory tasks

    Embedding User Preferences

    ❌ Don't: Create separate "User Preferences" section ✅ Do: Weave preferences into workflow guidance

    Example:

    ## Workflow Overview
    
    This skill follows your research methodology:
    1. Start with official sources (per your SOP)
    2. Gather community feedback in parallel
    3. Cross-reference claims (highlighting contradictions as you prefer)
    4. Generate report with quantitative metrics emphasized
    

    Optimization Patterns

    Always consider these opportunities when analyzing workflows:

    Parallel Execution: Any independent fetch operations Data Filtering: Processing that reduces data size Control Flow: Loops, conditionals, error handling
    State Persistence: Long-running or resumable workflows Privacy: Sensitive data that shouldn't enter context

    Example: Product Research Skill

    User Input:

    MCP Servers: puppeteer, twitter, reddit
    Workflow: Research products by visiting official site, checking ProductHunt, 
              searching Twitter/Reddit, then creating markdown report
    Preferences: Quantitative metrics > qualitative, recent info > old
    SOPs: Start with official sources, cross-reference claims, cite sources
    

    Generated Skill:

    SKILL.md:

    ---
    name: product-research-workflow  
    description: Automated product research integrating official sources and community platforms
    ---
    
    # Product Research Workflow
    
    Research internet products efficiently by gathering data from official sources 
    and community platforms, with emphasis on quantitative metrics and recent information.
    
    ## Workflow Overview
    
    This skill implements your standard research process:
    
    1. **Official Source Analysis**: Visit product website and extract key features, 
       pricing, and positioning (per your SOP: always start with official sources)
    
    2. **Community Intelligence**: Gather feedback from ProductHunt, Twitter, and Reddit 
       in parallel (optimized for speed)
    
    3. **Cross-Reference**: Identify contradictions between official claims and community 
       feedback (your preference for critical analysis)
    
    4. **Report Generation**: Create comprehensive markdown report with quantitative 
       metrics emphasized (ratings, user counts, pricing comparisons)
    
    ## Quick Start
    
    ```python
    from scripts.workflows import product_research_pipeline
    
    report = await product_research_pipeline(
        product_url='https://example.com',
        product_name='ExampleApp'
    )
    

    Available Workflows

    product_research_pipeline

    Use when: Researching any new internet product or SaaS tool

    Optimizations:

    • 3x faster via parallel social media gathering
    • Context-efficient: processes 1000s of posts, returns top 10 insights
    • Recent info prioritized (last 6 months)

    [... rest of SKILL.md with embedded preferences and SOPs ...]

    
    `scripts/workflows/product_research_pipeline.py`:
    ```python
    async def product_research_pipeline(product_url: str, product_name: str):
        # Official source
        official = await puppeteer.fetch_page(product_url)
        
        # Parallel community research (3x faster)
        twitter, reddit, ph = await asyncio.gather(
            twitter_mcp.search_tweets(f'"{product_name}"', recent_days=180),
            reddit_mcp.search(product_name, time_filter='6months'),
            producthunt_mcp.get_product(product_name)
        )
        
        # Filter in execution env (user preference: quantitative focus)
        metrics = extract_quantitative_metrics(official)
        sentiment = calculate_sentiment_score([twitter, reddit, ph])
        recent_feedback = filter_recent(twitter + reddit, days=180)
        contradictions = find_contradictions(official, recent_feedback)
        
        # Return summary (not raw data)
        return {
            'official_metrics': metrics,
            'sentiment_score': sentiment,
            'recent_mention_count': len(recent_feedback),
            'contradictions': contradictions[:5],
            'top_praise': extract_top_feedback(recent_feedback, 'positive', 3),
            'top_complaints': extract_top_feedback(recent_feedback, 'negative', 3)
        }
    

    References

    For detailed MCP optimization patterns and examples:

    • references/mcp-best-practices.md - Comprehensive guide to MCP + code execution
    • references/quick-start.md - Step-by-step tutorial
    • references/example-config.json - Complete configuration example
    Repository
    nemori-ai/skills
    Files