MCP Prompt Optimizer
Automatically analyzes and optimizes AI prompts by calculating clarity scores, detecting risks, asking clarifying questions, and adding domain-specific requirements to improve AI interaction quality.
README
MCP Prompt Optimizer
An MCP server that automatically analyzes and optimizes AI prompts using the OTA (Optimize-Then-Answer) Framework
šÆ What It Does
This MCP server provides an optimize_prompt tool that:
- š Analyzes prompts - Calculates clarity score (0-100%) and identifies domain
- š Detects risks - Flags security, privacy, policy, safety, and compliance concerns
- ā Asks smart questions - Generates 1-3 targeted questions when clarity < 60%
- ⨠Enhances prompts - Adds domain-specific requirements (tests for code, accessibility for UX, etc.)
- š Provides structure - Returns optimized prompts ready for AI processing
š Quick Start
Installation
For Claude Code:
# Clone the repository
git clone https://github.com/grandinh/mcp-prompt-optimizer.git
cd mcp-prompt-optimizer
# Install dependencies
npm install
# Build
npm run build
Add to .mcp.json:
{
"mcpServers": {
"prompt-optimizer": {
"command": "node",
"args": ["/path/to/mcp-prompt-optimizer/dist/index.js"],
"description": "Optimizes prompts using the OTA Framework"
}
}
}
Restart your MCP client (Claude Code, Cursor, etc.)
Usage
Option 1: Use the MCP tool directly
Once installed, use the optimize_prompt tool:
Use the optimize_prompt tool to analyze: "build a dashboard"
Option 2: Use the /ori slash command (Claude Code)
The /ori (Optimize-Research-Implement) command provides an autonomous workflow with intelligent multi-model selection:
/ori add JWT authentication to the Express API
This will: 0. Strategy (Opus) - Design optimal research plan and select best models
- Research (Dynamic) - Automatically search docs, best practices, and codebase
- Verify (Sonnet) - Cross-validate findings and check for risks
- Implement (Sonnet/Haiku) - Apply changes with error handling
- Document (Haiku) - Update README, CHANGELOG, and other docs
Multi-Model Benefits:
- 40% cost reduction vs. all-Opus
- 30% faster execution
- Each model used in its optimal zone
See /ori command documentation for details.
Output:
[OPTIMIZED] Domain: code | Clarity: 30% | Risks: none
ā ļø Clarification Needed (Clarity: 30%)
Please answer these questions before I proceed:
1. What programming language or framework are you using?
2. What specific features or components are you building?
3. Do you need tests, validation, or specific security considerations?
After answering:
Use optimize_prompt tool: "build a React dashboard with user analytics,
chart visualizations using Chart.js, and real-time data updates.
Need responsive design and accessibility compliance."
Output:
[OPTIMIZED] Domain: code | Clarity: 85% | Risks: none
ā Ready to Process (Clarity: 85%)
[Shows enhanced prompt with code-specific requirements including
security, testing, accessibility, and structured output format]
š Features
Domain Detection
Automatically identifies the domain of your request:
- code - Programming, APIs, debugging
- UX - UI design, interfaces, accessibility
- data - Analytics, statistics, calculations
- writing - Content, documentation, articles
- research - Studies, investigations, analysis
- finance - ROI, budgets, pricing
- product - Features, roadmaps, strategy
Clarity Scoring
Calculates a 0-1 clarity score based on:
| Factor | Weight | Measures |
|---|---|---|
| Goal clarity | 30% | Is objective explicit and measurable? |
| Context completeness | 25% | Are inputs/constraints provided? |
| Format specification | 15% | Is output format defined? |
| Success criteria | 20% | Are acceptance criteria stated? |
| Technical detail | 10% | Stack, versions, specifics included? |
Risk Detection
Flags potential concerns:
- security - auth, passwords, tokens, vulnerabilities
- privacy - PII, email, phone, GDPR
- policy - fake, bypass, illegal activities
- safety - harm, dangerous content
- compliance - medical/legal/financial advice
Smart Questions
When clarity < 60%, generates targeted questions:
Code domain:
- What programming language or framework?
- What specific feature/component?
- Testing/security needs?
UX domain:
- Who are the target users?
- What platform (web/mobile)?
Data domain:
- What's the data structure?
- What specific metrics?
Domain-Specific Enhancement
Adds requirements based on domain:
Code:
- Include code summary and complexity notes
- Add security considerations
- Provide test plan and example I/O
- Include error handling
UX:
- Evaluate against usability heuristics
- Include accessibility checklist (WCAG 2.1 AA)
- Consider mobile responsiveness
- Address error and loading states
Data:
- Describe dataset shape and structure
- Show calculation steps explicitly
- Validate data and identify edge cases
- Make results reproducible
š Examples
Example 1: Vague Request
Input:
optimize_prompt: "help me with my app"
Output:
[OPTIMIZED] Domain: code | Clarity: 25% | Risks: none
ā ļø Clarification Needed
1. What programming language or framework are you using?
2. What specific feature or component are you building?
Example 2: Clear Request with Security
Input:
optimize_prompt: "Create a REST API for user authentication in Express.js.
Need endpoints for register, login, logout. Use JWT tokens with refresh
token rotation. Store passwords with bcrypt."
Output:
[OPTIMIZED] Domain: code | Clarity: 90% | Risks: security
ā Ready to Process
**Domain:** code
**Requirements:**
- Include code summary and complexity notes
- **CRITICAL:** Address security concerns (auth, validation, token storage)
- Provide test plan and example I/O
- Include error handling
**Risk Flags:** security
Please address these concerns in your response.
Example 3: UX Request
Input:
optimize_prompt: "Review my checkout flow for usability issues"
Output:
[OPTIMIZED] Domain: UX | Clarity: 70% | Risks: none
ā Ready to Process
**Requirements:**
- Evaluate against usability heuristics
- Include accessibility checklist (WCAG 2.1 AA)
- Consider mobile responsiveness
- Address error and loading states
š§ Configuration
Adjust Clarity Threshold
Edit src/index.ts:
const needsClarification = clarityScore < 0.6; // Change to 0.7 for stricter
Change Question Limit
In generateQuestions():
return questions.slice(0, 3); // Change to 2 for fewer questions
Add Custom Domain
Add to detectDomain():
if (/(your|custom|keywords)/i.test(prompt)) {
return 'your_domain';
}
Then add handling in generateQuestions() and createOptimizedPrompt().
šļø Development
Build
npm run build
Watch Mode
npm run dev
Project Structure
mcp-prompt-optimizer/
āāā src/
ā āāā index.ts # Main server code
āāā dist/ # Built output (git-ignored)
āāā package.json
āāā tsconfig.json
āāā README.md
āāā LICENSE
āāā .gitignore
š How It Works
The OTA (Optimize-Then-Answer) Loop
1. Parse & Classify
āāā Detect domain
āāā Calculate clarity score
āāā Identify risk flags
2. Generate Questions (if clarity < 60%)
āāā Max 3 targeted questions
3. Create Optimized Prompt
āāā Add domain-specific requirements
āāā Include risk warnings
āāā Specify output format
4. Return Analysis
āāā Optimization header
āāā Questions (if needed)
āāā Enhanced prompt (if ready)
Keyword-Based Detection
The server uses keyword matching for:
- Domain classification - Fast, deterministic
- Clarity scoring - Heuristic-based
- Risk detection - Pattern matching
Note: This is intentionally simple and fast. No ML models, no API calls, works offline.
š¤ Contributing
Contributions welcome! Areas for improvement:
- [ ] ML-based domain classification
- [ ] Multi-language support
- [ ] Learning from user feedback
- [ ] Integration with custom knowledge bases
- [ ] Automatic prompt rewriting (not just enhancement)
š License
MIT License - see LICENSE file for details
š Related
ā Support
If this tool helps you get better AI responses, give it a star!
š Changelog
v1.1.0 (2025-11-08)
- Added
/orislash command for autonomous research-implement workflow - Intelligent multi-model selection (Opus ā Sonnet ā Haiku)
- Phase 0: Opus creates research strategy
- Phase 1: Dynamic model selection based on complexity
- Phase 2-4: Optimized model per phase (40% cost savings)
- Integrated OODA framework with OTA Loop in optimized_prompts.md
- Added automatic web search and documentation research
- Implemented error handling and rollback mechanisms
- Added automatic documentation updates (README, CHANGELOG)
- Created configurable workflow via
.claude/ori-config.json
v1.0.0 (2025-11-08)
- Initial release
- Domain detection (7 domains)
- Clarity scoring (0-1 scale)
- Risk detection (5 categories)
- Smart question generation (max 3)
- Domain-specific prompt enhancement
Made with ā¤ļø for better AI interactions
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
E2B
Using MCP to run code via e2b.