Spaces:
Build error
Build error
| # AI Prompt Optimizer MCP Server | |
| This MCP (Model Context Protocol) server provides AI-powered prompt optimization tools to reduce token usage while preserving meaning. | |
| ## Features | |
| - **3 Optimization Methods**: | |
| - `simple`: LLM-based optimization using personas | |
| - `agent`: Advanced optimization with web search integration | |
| - `spacy`: Local NLP-based optimization (no API required) | |
| - **8 Specialized Personas**: Default, UI/UX Designer, Software Engineer, Marketing Copywriter, Creative Writer, Technical Writer, Legal Advisor, Medical Professional, Financial Analyst | |
| - **Token Counting**: Accurate token counting for various models | |
| ## Tools Available | |
| 1. **optimize_prompt**: Optimize prompts using different methods | |
| 2. **get_available_personas**: List all available optimization personas | |
| 3. **count_tokens**: Count tokens in text for specific models | |
| ## Installation & Setup | |
| ### Prerequisites | |
| - Python 3.8+ | |
| - UV package manager | |
| - API keys for AIMLAPI and Tavily (for LLM-based optimization) | |
| ### 1. Clone and Install Dependencies | |
| ```bash | |
| git clone <your-repo> | |
| cd AI-Prompt-Optimizer | |
| pip install -r requirements.txt | |
| ``` | |
| ### 2. Set Up Environment Variables | |
| Create a `.env` file in the `mcp/` directory: | |
| ```bash | |
| AIMLAPI_API_KEY=your_aimlapi_key_here | |
| TAVILY_API_KEY=your_tavily_key_here | |
| ``` | |
| ## Configuration | |
| ### Option 1: STDIO Transport (Recommended) | |
| #### For Claude Desktop/Cursor | |
| Add to your MCP configuration file (`~/.cursor/mcp.json` or Claude Desktop config): | |
| ```json | |
| { | |
| "mcpServers": { | |
| "promptcraft": { | |
| "command": "uv", | |
| "args": ["run", "--python", "/path/to/your/project/.venv/bin/python3", "mcp_server_stdio.py"], | |
| "cwd": "/path/to/your/project/mcp", | |
| "env": { | |
| "AIMLAPI_API_KEY": "your_aimlapi_key_here", | |
| "TAVILY_API_KEY": "your_tavily_key_here" | |
| } | |
| } | |
| } | |
| } | |
| ``` | |
| #### For Claude CLI | |
| ```bash | |
| # Add STDIO transport | |
| claude mcp add --transport stdio promptcraft uv run mcp_server_stdio.py --cwd /path/to/your/project/mcp --env AIMLAPI_API_KEY=your_key --env TAVILY_API_KEY=your_key | |
| ``` | |
| ### Option 2: HTTP Transport | |
| #### Start the HTTP Server | |
| ```bash | |
| cd mcp | |
| python mcp_server_fastmcp.py | |
| ``` | |
| #### For Claude Desktop/Cursor | |
| ```json | |
| { | |
| "mcpServers": { | |
| "promptcraft-http": { | |
| "name": "promptcraft", | |
| "url": "http://127.0.0.1:8003/mcp/" | |
| } | |
| } | |
| } | |
| ``` | |
| #### For Claude CLI | |
| ```bash | |
| # Add HTTP transport | |
| claude mcp add --transport http promptcraft http://127.0.0.1:8003/mcp/ | |
| ``` | |
| ## Usage Examples | |
| ### Basic Prompt Optimization | |
| ``` | |
| Use the optimize_prompt tool with: | |
| - prompt: "Can you please help me write a very detailed explanation about machine learning?" | |
| - method: "spacy" | |
| - aggressiveness: 0.8 | |
| ``` | |
| ### Persona-based Optimization | |
| ``` | |
| Use the optimize_prompt tool with: | |
| - prompt: "We need to create a comprehensive user interface design document" | |
| - method: "simple" | |
| - persona: "UI/UX Designer" | |
| ``` | |
| ### Advanced Agent Optimization | |
| ``` | |
| Use the optimize_prompt tool with: | |
| - prompt: "I want you to research and provide information about the latest trends in AI" | |
| - method: "agent" | |
| - persona: "Technical Writer" | |
| ``` | |
| ## Available Methods | |
| 1. **spacy**: Local optimization using NLP techniques | |
| - Removes filler words | |
| - Simplifies complex phrases | |
| - Applies lemmatization | |
| - No API keys required | |
| 2. **simple**: LLM-based optimization with persona guidance | |
| - Requires AIMLAPI_API_KEY | |
| - Uses specialized personas for domain-specific optimization | |
| 3. **agent**: Advanced optimization with web search | |
| - Requires both AIMLAPI_API_KEY and TAVILY_API_KEY | |
| - Enhances prompts with real-time web information | |
| ## Troubleshooting | |
| ### Common Issues | |
| 1. **"No tools found"**: Ensure the server is starting correctly and environment variables are set | |
| 2. **Import errors**: Make sure all dependencies are installed in the correct virtual environment | |
| 3. **API key errors**: Verify your AIMLAPI and TAVILY API keys are valid and properly set | |
| ### Testing the Server | |
| #### Test with MCP Inspector | |
| ```bash | |
| # Install MCP Inspector | |
| npm install -g @modelcontextprotocol/inspector | |
| # Test the server | |
| mcp-inspector | |
| # Use these settings: | |
| # Command: uv | |
| # Arguments: run mcp_server_stdio.py | |
| # Working Directory: /path/to/your/project/mcp | |
| # Environment Variables: AIMLAPI_API_KEY=your_key, TAVILY_API_KEY=your_key | |
| ``` | |
| #### Direct Testing | |
| ```bash | |
| cd mcp | |
| uv run mcp_server_stdio.py | |
| ``` | |
| ## Architecture | |
| - `mcp_server_stdio.py`: STDIO transport server (recommended) | |
| - `mcp_server_fastmcp.py`: HTTP transport server with Bearer token auth | |
| - `engine.py`: Core spaCy-based optimization logic | |
| - `llm_optimizer.py`: LLM-based optimization with personas and agents | |
| ## API Keys | |
| - **AIMLAPI**: Get your key from [AIMLAPI](https://aimlapi.com) | |
| - **Tavily**: Get your key from [Tavily](https://tavily.com) | |
| Both keys are required for full functionality, but spaCy-based optimization works without any API keys. |