Claude Prompts MCP Server

A universal MCP server that loads prompts from an external JSON configuration file.

Claude Prompts MCP Server

npm version License: AGPL v3

An MCP workflow server.

Craft reusable prompts with validation and reasoning guidance. Orchestrate agentic workflows with a composable operator syntax. Export as native skills.

Quick Start · What You Get · Compose Workflows · Run Anywhere · Docs

Chain + gate validation in action (haiku model) — gates catch errors and guide self-correction, even on the cheapest model

What your AI client gives you — and what this server adds

Your client already doesThis server adds
Run a promptCompose prompts with validation, reasoning guidance, and formatting in one expression
Single-shot skillsMulti-step workflows that thread context between steps
Execute subagentsHand off mid-chain steps to agents with full workflow context
Client-native skill formatAuthor once as YAML, export to any client with skills:export
Manual prompt writingVersioned templates with hot-reload, rollback, and history
Trust the outputValidate output between steps — self-evaluation and shell commands

Quick Start

Claude Code (Recommended)

# Add marketplace (first time only)
/plugin marketplace add minipuft/minipuft-plugins

# Install
/plugin install claude-prompts@minipuft

# Try it
>>tech_evaluation_chain library:'zod' context:'API validation'

Load plugin from local source for development:

git clone https://github.com/minipuft/claude-prompts ~/Applications/claude-prompts
cd ~/Applications/claude-prompts/server && npm install && npm run build
claude --plugin-dir ~/Applications/claude-prompts

Edit hooks/prompts → restart Claude Code. Edit TypeScript → rebuild first.

User Data: Custom prompts stored in ~/.local/share/claude-prompts/ persist across updates.


Claude Desktop

Option A: GitHub Release (recommended)

  1. Download claude-prompts-{version}.mcpb from Releases
  2. Drag into Claude Desktop Settings → MCP Servers
  3. Done

The .mcpb bundle is self-contained (~5MB) — no npm required.

Option B: NPX (auto-updates)

Add to your config file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "claude-prompts": {
      "command": "npx",
      "args": ["-y", "claude-prompts@latest", "--client", "claude-code"]
    }
  }
}

Restart Claude Desktop and test: >>research_chain topic:'remote team policies'


Install in VS Code

Click the badge above for one-click install, or add manually to .vscode/mcp.json:

{
  "servers": {
    "claude-prompts": {
      "command": "npx",
      "args": ["-y", "claude-prompts@latest"]
    }
  }
}

Install in Cursor

Click the badge above for one-click install, or add manually to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "claude-prompts": {
      "command": "npx",
      "args": ["-y", "claude-prompts@latest", "--client=cursor"]
    }
  }
}

Install the opencode-prompts plugin — it registers the MCP server and adds hooks for chain tracking, gate enforcement, and state preservation:

npm install -g opencode-prompts
opencode-prompts install

[!NOTE] MCP server only (no hooks): Add to ~/.config/opencode/opencode.json with --client=opencode. You'll have MCP tools but no chain tracking, gate enforcement, or state preservation across compactions. See opencode-prompts for what hooks provide.

Install the gemini-prompts extension — it registers the MCP server and adds hooks for >> syntax detection, chain tracking, and gate reminders:

gemini extensions install https://github.com/minipuft/gemini-prompts

[!NOTE] MCP server only (no hooks): Run npx -y claude-prompts@latest --client=gemini directly. You'll have MCP tools but no >> syntax detection, chain tracking, or gate reminders. See gemini-prompts for what hooks provide.

Add to your MCP config file with a --client preset for deterministic handoff guidance:

ClientConfig LocationRecommended --client
Codex~/.codex/config.tomlcodex
Windsurf~/.codeium/windsurf/mcp_config.jsoncursor (experimental)
Zed~/.config/zed/settings.jsonmcp keyunknown

JSON-based configs (Windsurf/Zed):

{
  "mcpServers": {
    "claude-prompts": {
      "command": "npx",
      "args": ["-y", "claude-prompts@latest", "--client=cursor"]
    }
  }
}

Codex (~/.codex/config.toml):

[mcp_servers.claude_prompts]
command = "npx"
args = ["-y", "claude-prompts@latest", "--client=codex"]

Supported presets: claude-code, codex, gemini, opencode, cursor, unknown.

For complete per-client setup and limitations:

git clone https://github.com/minipuft/claude-prompts.git
cd claude-prompts/server
npm install && npm run build && npm test

Point your MCP config to server/dist/index.js. The esbuild bundle is self-contained.

Transport options: --transport=stdio (default), --transport=streamable-http (HTTP clients).

Custom Resources

Use your own prompts without cloning. Add MCP_RESOURCES_PATH to any MCP config:

{
  "mcpServers": {
    "claude-prompts": {
      "command": "npx",
      "args": ["-y", "claude-prompts@latest", "--client", "claude-code"],
      "env": {
        "MCP_RESOURCES_PATH": "/path/to/your/resources"
      }
    }
  }
}

Your resources directory can contain: prompts/, gates/, methodologies/, styles/.

See CLI Configuration for all options including fine-grained path overrides.


Loaded resources, active configuration, and server health at a glance


What You Get

Four resource types you author, version, and compose into workflows.

90 prompts across 11 categories — all hot-reloadable and versionable

Prompt Templates

Versioned YAML with hot-reload. Edit a template, test it immediately — or ask your AI to update it through MCP.

>>code_review target:'src/auth/' language:'typescript'

Validation Rules (Gates)

Criteria the AI checks its own output against. Blocking or advisory.

:: 'no false positives' :: 'cite sources with links'

Failed checks can retry automatically or pause for your decision.

Reasoning Guidance (Methodologies)

Frameworks that shape how the AI thinks through a problem — not just what it outputs. 6 built-in, or create your own.

@CAGEERF    # Context → Analysis → Goals → Execution → Evaluation → Refinement
@ReACT      # Reason → Act → Observe loops
@5W1H       # Who, What, Where, When, Why, How

Styles

Response formatting and tone.

#analytical    # Structured, evidence-based output
#concise       # Brief, action-focused

All resources are hot-reloadable, versioned with rollback history, and managed through the resource_manager tool.

[!TIP] Ready to build your own? Start with the Prompt Authoring Tutorial.


Compose Workflows

The operator syntax wires resources together — chain steps, add validation inline, hand off steps to agents.

>>review target:'src/auth/' @CAGEERF :: 'no false positives'
  --> security_scan :: verify:"npm test"
  --> recommendations :: 'actionable, with code'
  ==> implementation

Phases compound reasoning across steps — each step builds on validated output from the previous one

Context7 fetches live library docs mid-chain — final output is a structured assessment with sources

What happened:

  1. Loaded the review template with arguments
  2. Injected CAGEERF reasoning guidance
  3. Added a validation rule (AI self-evaluates against it)
  4. Chained output to the next step
  5. Ran a shell command for ground-truth validation
  6. Handed the final step off to a client-native subagent

Verification Loops

Ground-truth validation via shell commands — the AI keeps iterating until tests pass:

>>implement-feature :: verify:"npm test" loop:true

Implements, runs the test, reads failures, fixes, retries. Spawns a fresh context after repeated failures to avoid context rot.

PresetTriesTimeoutUse Case
:fast130sQuick check
:full55 minCI validation
:extended1010 minLarge test suites

Judge Mode

Let the AI pick the right resources for the task:

%judge Help me refactor this authentication module

Analyzes available templates, reasoning frameworks, validation rules, and styles — applies the best combination automatically.

[!TIP] Chains support conditional branching, context threading, and agent handoffs. Chains Lifecycle · MCP Tools Reference


Run Anywhere

Author workflows as YAML templates. Export as native skills to your client.

# skills-sync.yaml — choose what to export
registrations:
  claude-code:
    user:
      - prompt:development/review
      - prompt:development/validate_work
npm run skills:export

The review prompt becomes a /review Claude Code skill. validate_work becomes /validate_work. Same source, native experience — no MCP call required at runtime.

Compiles to Claude Code skills, Cursor rules, OpenCode commands, and more. npm run skills:diff flags when exports drift from source.

Dry-run compiles YAML templates into native client skills — review before writing

[!TIP] The Skills Sync Guide covers configuration, supported clients, and drift detection.


With Hooks

Well-composed prompts carry their own structure. Hooks keep the experience consistent across models and long sessions.

Route operator syntax to the right tool automatically. Track workflow progress across steps and long sessions. Enforce validation rules and step handoffs between agents.

BehaviorWhat happens
Prompt routing>>analyze in conversation → correct MCP tool call
Chain continuityInjects step progress and continuation between steps
Validation trackingTracks pass/fail verdicts across chain steps
Agent handoffsRoutes ==> steps to client-native subagents
Session persistencePreserves workflow state through context compaction

Hooks ship with the plugin install. Available for Claude Code (full), OpenCode (full), Gemini CLI (partial). Other clients: MCP tools only.

hooks/README.md


SymbolNameWhat It DoesExample
>>PromptExecute template>>code_review
-->ChainPipe to next stepstep1 --> step2
==>HandoffRoute step to agentstep1 ==> agent_step
*RepeatRun prompt N times>>brainstorm * 5
@FrameworkInject reasoning guidance@CAGEERF
::GateAdd validation criteria:: 'cite sources'
%ModifierToggle behavior%clean, %judge
#StyleApply formatting#analytical

Modifiers:

  • %clean — No framework/gate injection
  • %lean — Gates only, skip framework
  • %guided — Force framework injection
  • %judge — AI selects best resources

MCP Tools Reference for full command documentation.

ToolPurpose
prompt_engineExecute prompts with frameworks and validation
resource_managerCreate, update, version, and export resources
system_controlStatus, analytics, framework switching
prompt_engine(command:"@CAGEERF >>analysis topic:'AI safety'")
resource_manager(resource_type:"prompt", action:"list")
system_control(action:"status")

How It Works

%%{init: {'theme': 'neutral', 'themeVariables': {'background':'#0b1224','primaryColor':'#e2e8f0','primaryBorderColor':'#1f2937','primaryTextColor':'#0f172a','lineColor':'#94a3b8','fontFamily':'"DM Sans","Segoe UI",sans-serif','fontSize':'14px','edgeLabelBackground':'#0b1224'}}}%%
flowchart TB
    classDef actor fill:#0f172a,stroke:#cbd5e1,stroke-width:1.5px,color:#f8fafc;
    classDef server fill:#111827,stroke:#fbbf24,stroke-width:1.8px,color:#f8fafc;
    classDef process fill:#e2e8f0,stroke:#1f2937,stroke-width:1.6px,color:#0f172a;
    classDef client fill:#f4d0ff,stroke:#a855f7,stroke-width:1.6px,color:#2e1065;
    classDef clientbg fill:#1a0a24,stroke:#a855f7,stroke-width:1.8px,color:#f8fafc;
    classDef decision fill:#fef3c7,stroke:#f59e0b,stroke-width:1.6px,color:#78350f;

    linkStyle default stroke:#94a3b8,stroke-width:2px

    User["1. User sends command"]:::actor
    Example[">>analyze @CAGEERF :: 'cite sources'"]:::actor
    User --> Example --> Parse

    subgraph Server["MCP Server"]
        direction TB
        Parse["2. Parse operators"]:::process
        Inject["3. Inject framework + gates"]:::process
        Render["4. Render prompt"]:::process
        Decide{"6. Route verdict"}:::decision
        Parse --> Inject --> Render
    end
    Server:::server

    subgraph Client["Claude (Client)"]
        direction TB
        Execute["5. Run prompt + check gates"]:::client
    end
    Client:::clientbg

    Render -->|"Prompt with gate criteria"| Execute
    Execute -->|"Verdict + output"| Decide

    Decide -->|"PASS → render next step"| Render
    Decide -->|"FAIL → render retry prompt"| Render
    Decide -->|"Done"| Result["7. Return to user"]:::actor

Command with operators → server parses and injects resources → client executes and self-evaluates → route: next step (pass), retry (fail), or return result (done).


Documentation

I want to...Go here
Build my first promptPrompt Authoring Tutorial
Chain multi-step workflowsChains Lifecycle
Add validation to workflowsGates Guide
Use or create reasoning frameworksMethodologies Guide
Use autonomous verification loopsRalph Loops
Configure per-client MCP installs and --client presetsClient Integration Guide
Compare client profile mapping and limitationsClient Capabilities Reference
Export skills to other clientsSkills Sync
Configure the serverCLI & Configuration
Look up MCP tool parametersMCP Tools Reference
Understand the architectureArchitecture Overview

Contributing

cd server
npm install
npm run build        # esbuild bundles to dist/index.js
npm test             # Run test suite
npm run validate:all # Full CI validation

The build produces a self-contained bundle. server/dist/ is gitignored — CI builds fresh from source.

See CONTRIBUTING.md for workflow details.


License

AGPL-3.0

Related Servers