smithery/mcphero

meta-mcp-wizard

Use the MCPHero Meta-MCP server inside AI clients (Claude Desktop, Cursor, etc.) to create, deploy, and manage MCP servers through the wizard pipeline. Use this skill when the user wants to connect the Meta-MCP server, build MCP servers interactively via MCP tools, or asks about the meta-mcp endpoint at api.mcphero.app.

Installation

$ npx skills add smithery/mcphero --skill meta-mcp

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Declared
Cursor Declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Skill metadata

Parsed from SKILL.md frontmatter.

Declared agents claude-code cursor

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 6,444 B
  • docs SUMMARY.md 346 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

Meta-MCP Wizard

The MCPHero Meta-MCP server lets agents build persistent tools without leaving their MCP client. Instead of re-explaining an API or re-generating SQL on every run, the agent creates a hosted MCP server once and calls it forever — saving 95-99% on token usage for recurring tasks.

Connect it to Claude Desktop, Cursor, or any MCP client, and your agent can build, deploy, and register new MCP servers on the fly.

Meta-MCP endpoint: https://api.mcphero.app/mcp/meta/mcp


Setup

Add the Meta-MCP server to your MCP client config:

Claude Desktop

// ~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "mcphero": {
      "url": "https://api.mcphero.app/mcp/meta/mcp"
    }
  }
}

Config file locations:

  • macOS: ~/Library/Application Support/Claude/claudedesktopconfig.json
  • Windows: %APPDATA%\Claude\claudedesktopconfig.json
  • Linux: ~/.config/claude/claudedesktopconfig.json

Cursor and other MCP clients

Add the same URL https://api.mcphero.app/mcp/meta/mcp to your client's MCP server config. The client handles OAuth 2.1 authentication automatically on first use.


Available Tools

The Meta-MCP server exposes these tools:

Tool Purpose
wizardcreatesession Start session; returns server_id
wizard_chat Send requirement message; returns is_ready flag
wizard_start Transition to tool suggestion (async)
wizardlisttools List suggested tools with IDs, code, params
wizardrefinetools Refine with feedback (async)
wizardsubmittools Confirm selection by tool UUID list
wizardsuggestenv_vars Re-trigger env var suggestion (async)
wizardlistenv_vars List env vars with IDs and descriptions
wizardrefineenv_vars Refine env vars with feedback (async)
wizardsubmitenv_vars Submit values as {uuid: value} dict
wizardsetauth Generate bearer token
wizardgeneratecode Trigger code gen (async)
wizardregeneratetool_code Regenerate single tool code (sync)
wizard_deploy Deploy and get server URL
wizard_state Poll current state — use after all async steps

Async vs Sync Tools

Async (trigger then poll wizardstate): wizardstart, wizardrefinetools, wizardsuggestenvvars, wizardrefineenvvars, wizardgeneratecode

Sync (wait for result): wizardcreatesession, wizardchat, wizardlisttools, wizardsubmittools, wizardlistenvvars, wizardsubmitenvvars, wizardsetauth, wizardregeneratetoolcode, wizarddeploy, wizardstate


The Wizard Pipeline

1. wizard_create_session    → Returns server_id (save it, needed everywhere)
2. wizard_chat (loop)       → Gather requirements; stop when is_ready: true
3. wizard_start             → Transition to tool suggestion (async → poll)
4. wizard_list_tools        → Review AI-suggested tools
5. wizard_refine_tools      → Iterate on tools until satisfied (optional, async → poll)
6. wizard_submit_tools      → Confirm selection by tool UUID list
7. wizard_list_env_vars     → Review suggested env vars
8. wizard_refine_env_vars   → Iterate on env vars (optional, async → poll)
9. wizard_submit_env_vars   → Provide values as {uuid: value} dict (call even if empty)
10. wizard_set_auth         → Generate bearer token
11. wizard_generate_code    → Trigger code generation (async → poll)
12. wizard_deploy           → Deploy → returns server_url + bearer_token

Always call wizardsubmitenvvars, even when wizardlistenvvars returns []. Pass an empty dict {} so the backend transitions to the next state.


State Machine

The setupstatus field in wizardstate tells you where you are:

gathering_requirements     → User is chatting about requirements
tools_generating           → LLM is generating tool suggestions (async, poll)
tools_selection            → Tools ready for review/selection
env_vars_generating        → LLM is generating env var suggestions (async, poll)
env_vars_setup             → Env vars ready for review/submission
auth_selection             → Ready for auth setup
code_generating            → LLM is generating code (async, poll)
code_gen                   → Code ready for review
deployment_selection       → Ready to deploy
ready                      → Server deployed and live

States ending in generating are transient — poll until they transition. The processingstatus field is the reliable check: "idle" means done, "processing" means wait, "error" means check processing_error.


Polling Pattern

After any async tool, poll wizardstate until processingstatus is "idle":

wizard_state(server_id) → check .processing_status
  "processing"  → wait and call again
  "idle"        → ready for next step
  "error"       → check .processing_error

Connecting a Deployed Server to MCP Clients

After wizard_deploy, construct the full server URL:

https://api.mcphero.app{server_url}

where server_url is the relative path returned (e.g., /mcp/<server-id>/mcp).

Claude Desktop config

{
  "mcpServers": {
    "my-server": {
      "url": "https://api.mcphero.app/mcp/<server-id>/mcp",
      "headers": {
        "Authorization": "Bearer <bearer_token>"
      }
    }
  }
}

Key Tips

Free tier: Max 5 tools per server. wizardsubmittools will error if more are selected.

serverid is everything: Save the UUID returned from wizardcreate_session. Every subsequent call needs it.

Empty env vars: Even if wizardlistenvvars returns [], you must still call wizardsubmitenvvars with {} so the backend transitions to the next state.

Regenerate without redeploy: After using wizardregeneratetool_code, the code change takes effect immediately for already-deployed servers (the server auto-remounts).