提示优化器——Flask代理(MCP+Agno+Chrome扩展程序)
位于以下位置之间的最小Flask代理 提示优化器MCP服务器 (通过Agno通过SSE)和 Chrome扩展程序.它公开了一个启用CORS的单一端点-- /optimize -因此扩展(或任何客户端)可以请求优化的提示,而无需在浏览器中嵌入API密钥。
______________________________________________________________________
这个repo做什么
- 单端点:
POST /optimize→ 回报{ "optimized_prompt": "..." }. - 通往MCP的桥梁: 用途 硝酸银 + MCPTools 通过以下方式呼叫您的MCP服务器 服务器发送的事件(SSE).
- 模型提供者: 经营Groq's
qwen/qwen3-32b通过Agno建模。 - CORS已启用: 接受跨源请求(适用于Chrome扩展程序)。
- 调试友好: 在以下情况下打印工具调用痕迹
debug_mode=True(本地开发代码中的默认值)。
快速启动
1) 安装
pip install -r requirements.txt2) 配置环境
创建一个 .env 文件(或导出为env变量):
GROQ_API_KEY=your_groq_api_key # required
PORT=8000 # optional; defaults to 8000如果您托管自己的MCP服务器,请更新 _SSE_URL 在……里面 app.py.
3) 在本地运行
python app.py
# Server listens on 0.0.0.0:${PORT:-8000}4) 测试端点
curl -X POST http://127.0.0.1:8000/optimize \
-H "Content-Type: application/json" \
-d '{"prompt":"Write a cheerful out-of-office message."}'响应
{"optimized_prompt":"..."}端点合约
发布 /optimize
- 请求体:
{ "prompt": "" } - 响应:
{ "optimized_prompt": "" } - 错误:
400如果prompt失踪;500后端/MCP问题(JSON{ "error": "..." }).
它是如何工作的(引擎盖下)
- Flask收到提示并呼叫
query_agent().
query_agent()运行异步代理(Agno):
- 打开与MCP服务器的SSE连接(MCPTools(server_params=get_sse_params(), transport="sse")), - 呼叫 快速优化器 MCP工具, - 返回工具输出 逐字.
- Flask将结果包装成
{ "optimized_prompt": ... }.
超时: SSE连接/读取超时设置为 300秒 默认情况下 get_sse_params().
部署(以Gunicorn为例)
gunicorn app:app --bind 0.0.0.0:${PORT:-8000}渲染/Heroku提示
- 集
GROQ_API_KEY在仪表板上。 - 确保您的MCP服务器(例如,在Hugging Face Spaces上)可以从部署访问。
- 如果您的MCP主机处于睡眠状态,则唤醒时第一个请求可能会很慢。
安全与可靠性注意事项
- 跨域资源共享 目前允许开发。在生产中,将来源限制在您的扩展/站点。
- 考虑添加一个 共享密钥 标题或简单 速率限制 (例如在反向代理后面)如果端点是公共的。
- 服务是 无状态 并且不存储提示或结果。
项目结构
flask-proxy-mcp-and-prompt-optimizer-chrome-extension/
├── app.py # Flask app + Agno agent + MCP SSE client
├── requirements.txt # Flask, flask-cors, agno, groq, mcp, dotenv, gunicorn
├── LICENSE # MIT
└── README.md # You are here故障排除
- 500:“未设置环境变量'GROQ_API_KEY'。” → 创建
.env或者设置变量。 - 浏览器中发生CORS错误 → 验证
flask_cors.CORS(app)活跃;根据需要限制/允许来源。 - 长/空闲响应 → 您的MCP主机可能正在休眠;保持活力或升级托管计划。
- 刀具不匹配 → 确保您的MCP服务器公开代理所需的Prompt Optimizer工具。
许可证
麻省理工学院——见 LICENSE.
