CRO MCP服务器
异步转换率优化(CRO)分析器,获取网页,使用BeautifulSoup构建结构指标,并将其输入Ollama托管的LLM,以返回三个优先问题,并给出建议和估计影响。设计为作为简单的CLI驱动的MCP(模型上下文协议)助手运行,或嵌入到更大的自动化流中。
亮点
- 异步HTTP获取
httpx(重定向支持和每个请求超时) - 通过以下方式进行确定性DOM解析
BeautifulSoup再加上CTA、表单和信任信号的轻量级启发式方法 - 结构化度量层(
PageMetrics)将解析与推理逻辑分开 - Ollama客户(
llama3默认情况下)强制转换为严格的JSON输出,以获得可重复的问题列表 - 用于单次或批量URL分析的MCP工具
项目布局
src/api.py–编排获取→ 解析→ 指标→ 推理流程src/analyzer.py–HTML解析工具和MetricsBuildersrc/metrics.py–数据类(PageMetrics,CROIssue)src/reasoning.py–CROReasoningEngine与Ollama对话并执行JSON合同src/utils.py–日志记录、URL验证、安全的JSON助手examples/sample_output.json–响应有效载荷示例tests/test_analyzer.py–用于解析器+度量构建器的Pytest覆盖率
先决条件
- Python 3.12+
- 奥拉玛 使用可访问的模型在本地或远程运行(默认为
llama3)
设置
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt创建一个 .env 文件(或导出变量)以调整运行时行为:
OLLAMA_HOST=http://localhost:11434
OLLAMA_MODEL=llama3
MCP_PORT=3000
DEBUG=false配置已加载 src/config.py,这也应用了合理的超时默认值。
用作MCP服务器
运行基于stdio的MCP服务器:
python server.py从游标连接
- 打开
Settings → Features → MCP. - 点击
+ Add New MCP Server. - 选择
stdio并将命令设置为python /absolute/path/to/server.py. - 保存,然后调用
analyze_url或analyze_urls来自Composer/Chat的工具。
从ChatGPT桌面(或其他MCP客户端)连接
- 添加自定义MCP源,并将其指向上面的相同stdio命令。
- 确保环境能够进入Ollama(
OLLAMA_HOST)在启动客户端之前。 - 注册后,像任何其他MCP集成一样调用公开的工具——服务器返回JSON,其中包含指标和三个问题。
测试
pytest当前的测试涵盖了DOM解析器和度量生成器。扩展 tests/ 在更改提示格式或数据类之前,使用推理引擎进行模拟。
开发说明
- 所有日志记录都会通过
src/utils.logger;如果需要调试跟踪,请调整那里的日志级别。 CROReasoningEngine.safe_json_parse防御性地修剪格式错误的输出,但保持提示符合“仅JSON”规则会产生最佳的可靠性。- 如果添加新指标,请更新
PageMetrics、构建器和内部的响应序列化器src/api.py一起。
故障排除
- 获取页面时超时: 提高
FETCH_TIMEOUT在src/config.py或者验证目标URL是否可访问。 - Ollama连接错误: 确保
ollama serve正在运行,并且OLLAMA_HOST可以从这台机器访问。 - 模型中的JSON无效: 引擎退回到单个“无法分析页面”问题;检查日志并在提示下迭代。
