AI调试服务器

一个为AI驱动的爬虫开发工作流提供调试和开发操作的模型上下文协议(MCP)服务器。

  • by alexrwilliam
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 alexrwilliam/debug-mcp-server

使用说明

调试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代理:

  1. 生成刮刀代码
  2. 执行并测试它
  3. 自动分析错误
  4. 生成并应用修复程序
  5. 重试,直到工作

🛠️ 可用工具

文件操作

工具 说明 示例使用
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

🐛 故障排除

常见问题

  1. 导入错误:确保所有依赖项都已安装 pip install -r requirements.txt
  2. 端口冲突:使用不同的端口 --port 8933
  3. 权限错误:检查会话目录的文件系统权限
  4. 超时问题:增加长时间运行操作的超时时间

调试模式

设置详细输出的日志记录级别:

export PYTHONPATH=/path/to/debug-mcp-server/src
debug-mcp http --port 8932 --log-level DEBUG

🤝 贡献

  1. 分叉存储库
  2. 创建要素分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

📜 许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

🙏 致谢