使用说明
调试MCP服务器
一个模型上下文协议(MCP)服务器,为AI驱动的scraper开发工作流提供调试和开发操作。
🚀 特性
- 📁 文件操作:以行级精度读取、写入、搜索和编辑文件
- 💻 终端执行:运行命令、Python脚本和管理虚拟环境
- 🔍 代码分析:提取CSS/XPath选择器、验证语法和分析代码模式
- 📊 会话管理:具有结构化工件管理的持久调试会话
- 🔗 集成就绪:设计用于与Playwright MCP和HTTP MCP服务器无缝协作
📦 安装
来自GitHub(推荐)
pip install git+https://github.com/alexwilliamson/debug-mcp-server.git
为了发展
git clone https://github.com/alexwilliamson/debug-mcp-server.git
cd debug-mcp-server
pip install -e .
🏃 快速开始
1.启动服务器
# HTTP transport (recommended for AI agents)
debug-mcp http --port 8932
# Or stdio transport (for direct MCP clients)
debug-mcp stdio
2.从AI代理连接
from mcp.client.sse import sse_client
from mcp import ClientSession
from langchain_mcp_adapters.tools import load_mcp_tools
async with sse_client("http://localhost:8932/sse") as (read, write):
async with ClientSession(read, write) as session:
await session.initialize()
debug_tools = await load_mcp_tools(session)
# Now you have 9 powerful debugging tools available!
for tool in debug_tools:
print(f"Available: {tool.name}")
3.在调试工作流中使用
此服务器支持自动刮刀调试工作流,其中AI代理:
- 生成刮刀代码
- 执行并测试它
- 自动分析错误
- 生成并应用修复程序
- 重试,直到工作
🛠️ 可用工具
文件操作
| 工具 | 说明 | 示例使用 |
|---|---|---|
read_file |
使用可选的行范围读取文件内容 | 读取scraper代码,调试响应 |
write_file |
将内容写入文件 | 保存生成的抓取器、调试脚本 |
search_file |
在文件中搜索正则表达式模式 | 查找CSS选择器、错误模式 |
edit_file |
替换现有文件中的内容 | 应用目标代码修复 |
终端操作
| 工具 | 说明 | 示例使用 |
|---|---|---|
run_command |
执行带超时的shell命令 | 运行抓取器,安装软件包 |
run_python |
在可选的venv中运行Python脚本 | 测试scraper执行 |
代码分析
| 工具 | 说明 | 示例使用 |
|---|---|---|
extract_selectors |
在代码中查找CSS/XPath/Playwright选择器 | 审计刮刀选择器 |
会话管理
| 工具 | 说明 | 示例使用 |
|---|---|---|
setup_debug_session |
使用工件初始化调试会话 | 启动调试工作流 |
get_session_artifacts |
列出所有会话文件和数据 | 查看调试历史记录 |
🏗️ 体系结构集成
此服务器是完整的AI scraper调试堆栈的一部分:
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Playwright MCP │ │ Debug MCP │ │ HTTP MCP │
│ Browser Auto │ │ This Server │ │ Network Test │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
└───────────────────────┼───────────────────────┘
│
┌─────────────────────┐
│ AI Agent │
│ │
│ 1. Plan Website │
│ 2. Generate Code │
│ 3. Debug & Fix │
│ 4. Deliver Scraper │
└─────────────────────┘
🔧 配置
命令行选项
debug-mcp --help
# Common configurations:
debug-mcp http --port 8932 # HTTP on custom port
debug-mcp stdio # Stdio for direct integration
debug-mcp http --session-dir ./my_sessions # Custom session directory
会话工件
调试会话创建结构化工件目录:
debug_artifacts/
└── sessions/
└── {session_id}/
├── metadata.json # Session info
├── responses/ # HTTP responses, HTML files
├── code/ # Generated scrapers, fixes
├── analysis/ # Error analysis, reports
└── logs/ # Execution logs
🤝 集成示例
使用LangGraph代理
from debug_subgraph import run_debug_workflow
from scraping_plan_models import PageAnalysis
# Your AI agent creates a scraping plan
plan = PageAnalysis(url="...", selectors=["..."], ...)
# Debug workflow automatically implements and tests
result = await run_debug_workflow(plan, goal, url)
if result["success"]:
print(f"Working scraper: {result['scraper_path']}")
else:
print(f"Debug failed: {result['error']}")
独立使用
# Setup debug session
session = await setup_debug_session("/path/to/project")
# Generate and test code
scraper_code = "..."
await write_file(f"{session['debug_directory']}/scraper.py", scraper_code)
result = await run_python(f"{session['debug_directory']}/scraper.py")
# Analyze and fix if needed
if not result["success"]:
errors = await search_file("debug.log", "ERROR")
# Apply fixes based on error analysis
🧪 测试
# Test the server directly
python -m debug_mcp.server http --port 8932
# In another terminal:
curl http://localhost:8932/health
🐛 故障排除
常见问题
- 导入错误:确保所有依赖项都已安装
pip install -r requirements.txt - 端口冲突:使用不同的端口
--port 8933 - 权限错误:检查会话目录的文件系统权限
- 超时问题:增加长时间运行操作的超时时间
调试模式
设置详细输出的日志记录级别:
export PYTHONPATH=/path/to/debug-mcp-server/src
debug-mcp http --port 8932 --log-level DEBUG
🤝 贡献
- 分叉存储库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
📜 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
🙏 致谢
- 专为人工智能驱动的开发工作流程而构建
- 与集成 模型上下文协议(MCP)
- 设计用于 LangGraph 代理工作流
- 自动化刮刀开发流水线的一部分
