mcp-prompt-optimizer
Version:
Professional cloud-based MCP server for AI-powered prompt optimization with intelligent context detection, Bayesian optimization, AG-UI real-time optimization, template auto-save, optimization insights, personal model configuration via WebUI, team collabo
504 lines (391 loc) ⢠20.2 kB
Markdown
# MCP Prompt Optimizer v3.7.2
[](https://www.npmjs.com/package/mcp-prompt-optimizer)
[](LICENSE)
[](https://github.com/prompt-optimizer/mcp-prompt-optimizer/actions)
[](https://snyk.io/advisor/npm-package/mcp-prompt-optimizer)
š **Professional cloud-based MCP server** for AI-powered prompt optimization with intelligent context detection, template management, team collaboration, and enterprise-grade reliability. Starting at $0/month.
## ⨠Key Features
š§ **AI Context Detection** ā Automatically detects and optimizes for code, creative writing, image generation, communication, and more
š **Template Management** ā Auto-save high-confidence optimizations, search & reuse patterns
š„ **Team Collaboration** ā Shared quotas, team templates, role-based access
š **Confidence Scoring** ā Honest quality signal with per-tier annotations
āļø **Cloud Processing** ā Always up-to-date AI models via backend LLM pipeline
š§ **Resilient Fallback** ā Structured local optimization if the backend is unreachable
šļø **Personal Model Choice** ā Use your own OpenRouter models via WebUI configuration
š§ **Universal MCP** ā Works with Claude Desktop, Cursor, Windsurf, Cline, VS Code, Zed, Replit
---
## š Quick Start
**1. Get your API key:**
- **š Free Tier** (`sk-opt-*`): 20 LLM optimizations/month, 1 API key ā no credit card required
- **ā Pro** (`sk-opt-*`): 500 optimizations/month, full model config, Context Engineer
- **š¢ Enterprise** (`sk-team-*`): Unlimited optimizations, team keys, shared quotas
Sign up and generate your key at [promptoptimizer.xyz/dashboard](https://promptoptimizer.xyz/dashboard).
**2. Install:**
```bash
npm install -g mcp-prompt-optimizer
```
**3. Connect to Claude Desktop (one command):**
```bash
npx mcp-prompt-optimizer connect
```
This wizard reads your API key and writes the MCP server entry to Claude Desktop config automatically. Cross-platform (macOS, Windows, Linux).
**Or configure manually** ā add to `~/.claude/claude_desktop_config.json`:
```json
{
"mcpServers": {
"mcp-prompt-optimizer": {
"command": "npx",
"args": ["-y", "mcp-prompt-optimizer"],
"env": {
"OPTIMIZER_API_KEY": "sk-opt-your-key-here"
}
}
}
}
```
**4. Restart your MCP client** and start optimizing.
> **Note:** API keys are validated against the backend server. An internet connection is required (responses are cached for up to 2 hours for reliability).
---
## āļø How Optimization Works
Prompts are routed through a three-tier pipeline based on complexity and context. Each tier produces a different output format and confidence range.
### Tier 1 ā LLM Optimization (backend, confidence 70ā95%)
The backend routes complex or high-sophistication prompts through a Gemini Flash LLM pass that genuinely rewrites and enriches the prompt. This is the highest-quality output.
```
# šÆ Optimized Prompt
My Python script crashes with a KeyError on line 47. I need help diagnosing
the root cause. I am using Python 3.11 with pandas 2.0. The error occurs
when accessing dictionary keys after a merge operation.
**Confidence:** 82.0%
**AI Context:** code_generation
```
### Tier 2 ā Backend Rules Optimization (backend, confidence < 25%)
For simpler or lower-sophistication prompts the backend applies rules-based optimization without an LLM. When this happens, confidence will be below 25% and a note will appear explaining what to check if you expected full LLM enhancement.
```
# šÆ Optimized Prompt
My Python script crashes with a KeyError. Please provide the error message
and relevant code.
> ā¹ļø *Low confidence indicates the backend applied rules-based optimization
> (no LLM). Ensure `OPENROUTER_API_KEY` is configured in the backend for
> full LLM enhancement.*
**Confidence:** 18.0%
**AI Context:** code_generation
```
### Tier 3 ā Local Rules Fallback (npm, confidence 35ā55%)
If the backend is unreachable, the npm package applies optimization locally using a library of domain-specific templates. The output is a structured, user-facing prose prompt ā no XML scaffolding. The confidence annotation makes the quality tier explicit.
```
# š§ Rules-Based Optimization Applied
ā ļø *Backend unreachable ā your prompt has been structured using local rule
templates (no LLM). Re-run when the backend is available for full LLM
optimization.*
**Template:** `debugging_request`
**Optimized Prompt:**
```
My Python script crashes with a KeyError
To address this effectively:
- Identify the most likely root causes given the error description.
- Request the full error message and stack trace, plus the relevant code snippet.
- Ask about expected vs. actual behavior, programming language, and library versions.
*Response format: Step-by-step debugging walkthrough with a specific fix or next diagnostic steps.*
```
**Confidence:** 51.0% *(rules-based ā LLM optimization typically 70ā95%)*
**AI Context:** code_generation
```
---
## š§ AI Context Detection
The server automatically detects your prompt type and routes it to the appropriate optimization template.
| Context | `ai_context` value | Example patterns |
|---|---|---|
| Code & debugging | `code_generation` | `debug`, `fix`, `error`, `python`, `sql`, `refactor` |
| Web development | `code_generation` | `landing page`, `react`, `css`, `html`, `tailwind` |
| API & integration | `api_automation` | `api`, `rest`, `endpoint`, `oauth`, `webhook` |
| DevOps & automation | `technical_automation` | `deploy`, `docker`, `ci/cd`, `terraform`, `bash` |
| Data & schemas | `structured_output` | `json`, `schema`, `csv`, `yaml`, `transform` |
| Analysis & research | `llm_interaction` | `analyze`, `explain`, `compare`, `research` |
| Creative writing | `creative_writing` | `story`, `poem`, `script`, `blog`, `copywriting` |
| Email & communication | `human_communication` | `email`, `letter`, `memo`, `formal`, `reply` |
| Image generation | `image_generation` | `photorealistic`, `midjourney`, `dall-e`, `portrait` |
| Business & Strategy | `business_strategy` | `market analysis`, `swot`, `business plan` |
| Technical Strategy | `technical_strategy` | `architecture`, `system design`, `migration plan` |
| Legal & Compliance | `legal_compliance` | `contract`, `gdpr`, `terms of service`, `audit` |
| Medical & Health | `medical_healthcare` | `clinical`, `diagnosis`, `treatment`, `hipaa` |
| Education | `educational_content` | `lesson plan`, `syllabus`, `curriculum`, `quiz` |
| General | `general_assistant` | Everything else |
### Image Generation
Image prompts are handled separately. The local fallback appends style-matched quality boosters directly to the prompt (comma-separated), rather than producing structured bullets. This matches how image generation models consume prompts.
```
Input: "Draw a photorealistic portrait of an astronaut"
Output: "Draw a photorealistic portrait of an astronaut, ultra realistic,
sharp focus, professional photography, dynamic lighting, balanced
composition, high quality, 4K"
```
---
## š ļø Available MCP Tools
### `optimize_prompt`
AI optimization with context detection, auto-save, and insights.
```json
{
"prompt": "Your prompt text",
"goals": ["clarity", "specificity"],
"ai_context": "code_generation",
"enable_bayesian": true
}
```
### `detect_ai_context`
Detect the AI context for a given prompt.
```json
{
"prompt": "The prompt text for which to detect the AI context"
}
```
### `create_template`
Save an optimization as a reusable template.
```json
{
"title": "Template title",
"description": "Optional description",
"original_prompt": "The original prompt",
"optimized_prompt": "The optimized prompt",
"optimization_goals": ["clarity"],
"confidence_score": 0.9,
"ai_context_detected": "code_generation",
"is_public": false,
"tags": ["debugging", "python"]
}
```
### `get_template`
Retrieve a saved template by ID.
```json
{
"template_id": "the-template-id"
}
```
### `update_template`
Update an existing template.
```json
{
"template_id": "the-template-id",
"title": "Updated title",
"is_public": true
}
```
### `search_templates`
Search your saved template library.
```json
{
"query": "debugging",
"ai_context": "code_generation",
"limit": 5,
"sort_by": "confidence_score",
"sort_order": "desc"
}
```
### `get_quota_status`
Check subscription status and quota usage. No parameters required.
### `get_optimization_insights` *(conditional)*
Bayesian optimization insights and parameter tuning recommendations. Requires the feature to be enabled in the backend; returns mock data otherwise.
```json
{
"analysis_depth": "detailed",
"include_recommendations": true
}
```
### `get_real_time_status` *(conditional)*
Real-time optimization status and AG-UI capabilities. Requires the feature to be enabled in the backend; returns mock data otherwise. No parameters required.
---
## š¤ Context Engineer (CE) Tools
Requires a Pro or Enterprise subscription. CE tools generate agentic scaffolding artifacts (SOPs, skill packages, framework code) directly in your IDE.
### `generate_agent_sop`
Generate a structured SOP document for an AI agent from a goal description. Returns markdown SOP ready for use.
```json
{
"goal": "What the agent should accomplish",
"context": "Additional context, constraints, or domain info (optional)",
"model_id": "Model to use (optional)"
}
```
### `generate_skill_package`
Generate a complete skill package (SOP + SKILL.md + reference + examples + helper.py) for a given agent goal. Takes 30ā90 seconds (async with polling).
```json
{
"goal": "What the agent should accomplish",
"format": "knowledge_doc",
"model_id": "Model to use (optional)"
}
```
`format` is one of `knowledge_doc` (default) or `agent_spec`.
### `generate_harness_bundle`
Generate a deployment-ready Agentic Harness ZIP bundle for a specific platform. Returns a confirmation when the bundle is queued for download.
```json
{
"goal": "The workflow goal the harness is built for",
"deploy_target": "claude_code",
"sop_content": "The SOP markdown content (required if no session_id)",
"session_id": "Optional: session ID from a prior generate_skill_package call"
}
```
`deploy_target` accepts a single string (Pro+) or an array of strings (Enterprise ā multi-platform simultaneously). Supported targets include `claude_code`, `langchain`, `autogen`, `crewai`, `amazon_q`, `aider`, `continue_dev`, and more. `amazon_q`, `aider`, `continue_dev`, `crewai` require Enterprise.
### `explore_sop_approaches`
Generate 3 parallel SOP variants (process-oriented, decision-tree, role-based) for comparison before committing to one. Returns an HTML comparison grid, a `variants` array, and a recommended variant. Enterprise required.
```json
{
"goal": "The workflow goal to generate SOP variants for",
"context": "Optional background context",
"blend_description": "Optional: blend all 3 variants into one SOP using this description"
}
```
IntentFrame fields (`perspective`, `out_of_scope`, `success_definition`) are also accepted to scope the generation.
### `transform_for_framework`
Transform a SOP into native code for your agent framework: LangChain tool, AutoGen agent, or Claude Code skill.
```json
{
"sop_content": "The SOP markdown content",
"goal": "What the agent should accomplish",
"framework": "langchain_tool"
}
```
`framework` is one of `langchain_tool`, `autogen_agent`, or `claude_skill`.
### `get_ce_quota_status`
Check your Context Engineer credit balance and what workflows are available at your tier. No parameters required.
---
## šļø Advanced Model Configuration (Optional)
Configure custom models in the WebUI and the MCP server uses them automatically.
**Step 1 ā Configure in WebUI:**
1. Visit [Dashboard](https://promptoptimizer.xyz/dashboard)
2. Go to Settings ā User Settings
3. Add your OpenRouter API key (from [openrouter.ai](https://openrouter.ai))
4. Select your preferred models for optimization and evaluation
**Step 2 ā Use the npm package as normal.** Your WebUI model settings are applied automatically ā no changes to the MCP configuration required.
### Model Selection Priority
```
1. Your WebUI-configured models (highest priority)
2. Request-specific model override
3. System default (google/gemini-flash-1.5-8b)
```
### Example Model Recommendations
| Use case | Optimization model | Evaluation model |
|---|---|---|
| Creative / complex | `anthropic/claude-3-5-sonnet` | `google/gemini-pro-1.5` |
| Fast / simple | `openai/gpt-4o-mini` | `openai/gpt-3.5-turbo` |
| Code / technical | `anthropic/claude-3-5-sonnet` | `anthropic/claude-3-haiku` |
> **Two different API keys:**
> - **Service key** (`sk-opt-*` or `sk-team-*`) ā your MCP Prompt Optimizer subscription
> - **OpenRouter key** ā your personal OpenRouter account for model usage costs
---
## š° Subscription Plans
| Plan | Price | Optimizations/month | CE Credits | API Keys |
|---|---|---|---|---|
| š Free | $0 | 20 LLM | ā | 1 |
| ā Pro | $19/mo | 500 | 5 | 1 |
| š¢ Enterprise | Custom | Unlimited | 50 | 10 (shared) |
All plans include AI context detection, template management, personal model configuration, and optimization insights.
[Get started free ā](https://promptoptimizer.xyz/dashboard)
---
## š§ CLI Commands
```bash
npx mcp-prompt-optimizer connect # Interactive wizard: add API key to Claude Desktop config
mcp-prompt-optimizer check-status # Check API key and quota status
mcp-prompt-optimizer validate-key # Validate API key with backend
mcp-prompt-optimizer diagnose # Run comprehensive diagnostic
mcp-prompt-optimizer clear-cache # Clear validation cache
mcp-prompt-optimizer help # Show help and setup instructions
mcp-prompt-optimizer version # Show version information
```
---
## š¢ Team Collaboration
### Team API Keys (`sk-team-*`)
- Shared quotas across team members
- Centralized billing and management
- Team template libraries for consistency
- Role-based access control
### Individual API Keys (`sk-opt-*`)
- Personal quotas and billing ā available on Free and Pro tiers
- Individual template libraries
- Account self-management
---
## š Security & Privacy
- Encrypted data transmission
- API key validation with secure backend authentication
- Quota enforcement with real-time usage tracking
- No prompt data retained ā processed and discarded immediately
- GDPR compliant
---
## š§ Universal MCP Client Support
### Claude Desktop
```json
{
"mcpServers": {
"mcp-prompt-optimizer": {
"command": "npx",
"args": ["-y", "mcp-prompt-optimizer"],
"env": { "OPTIMIZER_API_KEY": "sk-opt-your-key-here" }
}
}
}
```
### Cursor IDE
Add to `~/.cursor/mcp.json`:
```json
{
"mcpServers": {
"mcp-prompt-optimizer": {
"command": "npx",
"args": ["-y", "mcp-prompt-optimizer"],
"env": { "OPTIMIZER_API_KEY": "sk-opt-your-key-here" }
}
}
}
```
### Other clients
Windsurf, Cline, VS Code, Zed, Replit, JetBrains IDEs, and Neovim are all supported via standard MCP server configuration.
---
## š¦ Changelog
### v3.7.2
- **Stdout / JSON-RPC safety** ā All MCP server startup logs (banner, status, mode indicators, key validation) now route to **stderr** instead of stdout. On stdio transports stdout is the JSON-RPC channel; previously any non-protocol writes there risk corrupting the stream. No user-facing change beyond logging.
- **Contract test** ā `npm run test:contract` pins the `/optimize` response shape (Pydantic fields + runtime-injected `quota_used`/`quota_limit` + metadata `routing_score`/`routing_tier`/`model_used`) against a canonical fixture. Catches backend drift before publish.
- **CI workflow** ā `.github/workflows/ci.yml` runs `npm ci` + health check + contract check on push/PR across Node 18, 20, and 22.
### v3.6.0
- **Free tier MCP access** ā Free users can now create an API key (`sk-opt-*`) and use the MCP server for 7 LLM optimizations/month at no cost. Previously, key creation was blocked in the live service due to a bug introduced when the free-tier launch landed in an unused module. Keys with `subscription_status: NULL` (all free accounts) now validate correctly.
- **`connect` wizard** ā `npx mcp-prompt-optimizer connect` interactively writes your API key to Claude Desktop config on macOS, Windows, and Linux. Replaces manual JSON editing for new users.
- **Upsell block** ā Local rules fallback output now includes a concise upgrade prompt with a one-command onboarding path when no API key is configured.
### v3.5.0
- LLM upsell block added to local fallback output
- `connect` subcommand added (interactive Claude Desktop config wizard)
### v3.4.1
- Tier names migrated from Explorer/Creator/Innovator to Free/Pro/Enterprise (D6 pricing)
### v3.4.0
- `explore_sop_approaches` tool: generates 3 parallel SOP variants (process-oriented, decision-tree, role-based) for comparison before committing. Optionally accepts `blend_description` to blend variants directly. Enterprise tier required.
### v3.3.0
- `generate_harness_bundle` tool: generates deployment-ready ZIP harness for 14+ platforms. Single deploy target (Pro+) or multi-platform array (Enterprise).
- Intent frame fields (`perspective`, `out_of_scope`, `success_definition`) added to `generate_agent_sop` for scoped SOP generation.
### v3.2.x
- `transform_for_framework` tool: converts SOP to native LangChain tool, AutoGen agent, or Claude Code skill
- CE harness HTML review layer with interactive DAG visualization
### v3.0.3
- **Rules fallback output rewritten** ā local optimization now produces user-facing prose prompts instead of raw XML scaffolding. The output is directly usable as a prompt without modification.
- **All 18 local templates reworded** ā template principles are now phrased as user request guidance rather than AI-assistant directives, producing more natural and actionable structured prompts.
- **`creative_writing` context** now routes correctly to the creative writing template (previously fell through to a generic fallback).
- **`general_assistant` context** now maps explicitly to the LLM interaction template.
- **Backend rules-tier detection** ā when the backend returns confidence below 25% (indicating it ran its own rules tier without an LLM), a note appears explaining the cause and how to resolve it (`OPENROUTER_API_KEY` configuration).
- **Confidence scale annotation** ā rules-based fallback confidence now shows `*(rules-based ā LLM optimization typically 70ā95%)*` so users understand where their result sits relative to full LLM optimization.
### v3.0.2
- Cross-platform binary compatibility improvements
- Bayesian optimization integration
- AG-UI feature flag support
### v3.0.0
- API key now required for all operations
- Development mode and offline mode removed for security
- All keys validated against backend server
---
## š ļø Support & Resources
- š **Documentation:** [promptoptimizer.xyz/docs](https://promptoptimizer.xyz/docs)
- š **Dashboard & model config:** [promptoptimizer.xyz/dashboard](https://promptoptimizer.xyz/dashboard)
- š **Pricing & API Keys**: [promptoptimizer.xyz/pricing](https://promptoptimizer.xyz/pricing)
- š **Issues:** [GitHub Issues](https://github.com/prompt-optimizer/mcp-prompt-optimizer/issues)
- š **License:** [Commercial License](LICENSE)
- š **Security:** [Security Policy](SECURITY.md)
- š¤ **Contributing:** [Contributing Guide](CONTRIBUTING.md)
- š **Code of Conduct:** [Contributor Covenant](CODE_OF_CONDUCT.md)
- š **Changelog:** [Release History](CHANGELOG.md)
- š§ **Email support:** support@promptoptimizer.xyz
---
*Start free at [promptoptimizer.xyz](https://promptoptimizer.xyz) ā 20 LLM optimizations/month, no credit card required.*