Back to Help Center
Model Context Protocol

Connect PromptHub via MCP

Let Claude Code, Claude Desktop, claude.ai, or the Claude API search, run, and improve your Prompts, Chains, Skills, PlugIns, and Agents directly from the tools you already use.

What is the PromptHub MCP server?

The Model Context Protocol (MCP) is an open standard that lets AI assistants call tools on external services. PromptHub runs an MCP server at a single endpoint — https://promthub.ai/api/mcp/mcp — over Streamable HTTP, exposing 15 tools across 5 areas: Prompts, Prompt Chains (including Composite Steps), Skills, PlugIns, and Agents.

Once connected, you can ask your AI assistant things like “search my PromptHub prompts for anything about onboarding” or “run my Summarize & Translate chain on this text” — the assistant calls the matching tool, PromptHub executes it against your real data, and the result comes back into the conversation.

Step 1 — Create an API key

Go to Dashboard → Settings → API Keys → Create API Key. Give it a name and pick only the scopes it needs — read-only integrations should stick to the *:read scopes. You can optionally set an expiry and a token spend cap.

The plaintext key is shown exactly once. Copy it immediately — PromptHub only stores a hash and cannot show it to you again. If you lose it, revoke it and create a new one.

Prefer not to manage a key at all? If you use claude.ai in the browser, skip to the “claude.ai” tab below — it connects via OAuth instead.

Step 2 — Connect your client

One command, replacing <YOUR_KEY> with your plaintext key:

claude mcp add --transport http prompthub https://promthub.ai/api/mcp/mcp \
  --header "Authorization: Bearer <YOUR_KEY>"

Or, to avoid hardcoding the key, add it to .mcp.json:

{
  "mcpServers": {
    "prompthub": {
      "type": "http",
      "url": "https://promthub.ai/api/mcp/mcp",
      "headers": {
        "Authorization": "Bearer ${PROMPTHUB_API_KEY}"
      }
    }
  }
}

What can you ask it to do? (15 tools, 5 areas)

Prompts

Scope: prompts:read / prompts:improve

  • search_promptsSearch prompts by title/description substring — your own, public, or both.
  • get_promptFetch a prompt's full final text by id.
  • improve_promptAI-optimize a prompt for clarity or effectiveness. Spends tokens.

Prompt Chains

Scope: chains:read / chains:execute

  • list_chainsSearch chains by title/description substring.
  • get_chainFetch a chain's ordered nodes by id.
  • execute_chainRun a chain end-to-end with input variables. Spends tokens.
  • get_chain_executionPoll a chain execution by id for status and results.

Skills

Scope: skills:read

  • list_skillsSearch reusable instruction-module Skills by name/description.
  • get_skillFetch a Skill’s full instruction content and resources by id.

PlugIns

Scope: plugins:read

  • list_pluginsSearch versioned Skill collections (PlugIns) by name/description.
  • get_pluginFetch a PlugIn’s published-version content snapshot by id.

Agents

Scope: agents:read / agents:execute

  • list_agentsSearch Agents (persona + model + tools) by name/description.
  • get_agentFetch an Agent’s full configuration by id.
  • execute_agentRun one Agent turn with a message. Spends tokens.
  • get_agent_executionPoll an Agent execution by id for status and transcript.

Token billing

improve_prompt, execute_chain, and execute_agent spend your normal PromptHub AI token balance. If a key has a spend cap, calls that would exceed it are rejected once the cap is reached. Running low returns a clear error pointing at your token dashboard.

Rate limits

  • Any tool call: 120 requests/minute per key
  • execute_chain / execute_agent: 10 requests/minute per key

How is my data protected?

  • Plaintext keys are shown once and never stored — only a SHA-256 hash is kept server-side.
  • Every call is scoped to the key’s owner — tools only ever read or write data you own or that is public.
  • A resource that would reveal someone else’s private content returns the same generic “not found” whether it exists or not — so a resource URI can’t be used to probe for other users’ data.
  • Every tool result is marked as untrusted user data before it re-enters your assistant’s context, so content stored in a prompt or chain can’t be misread as instructions to the assistant.
  • Deactivated accounts and expired or revoked keys are rejected before any tool runs.