本地MCP助手工具包

为Villager项目提供本地最小化MCP服务器、离线分发打包及Mermaid图表渲染功能的开发工具包,适用于安全测试环境搭建和任务流程自动化。

  • by 13FPS
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 13FPS/VillagerAI

使用说明

村民MCP包(本地助手+发布工具)

此捆绑包包含几个帮助文件,用于运行 本地MCP(最小) 对于Villager项目,再加上捆绑Villager进行离线分发和渲染美人鱼图的脚本。

包含文件

  • mcp_local.py --正在侦听的最小本地MCP服务器(Flask) 127.0.0.1:5173.流NDJSON块和 final 包含MERMAID块的条目。
  • install.sh --安装Python deps(用户站点)并启动的简单助手 mcp_local.py 随着 nohup.
  • villager_release_script.sh --将已安装的Villager venv打包到包含需求和轮子的发布文件夹中的脚本。
  • sample_config.py --示例 config.py 放置在村民可以导入它的地方(或调整您安装的 config.py)因此村民知道MCP的基本URL和模型。
  • mcp_test_curl.sh --快速curl测试,向本地MCP发送提示并查看流式NDJSON。
  • mermaid_render.sh --渲染助手 .mermaid 文件到 .svg 使用 mmdc (通过xvfb-run处理root)。
  • LICENSE --MIT许可证(占位符,根据需要替换作者/年份)。

快速启动(最小)

  1. 将此文件夹复制到您的Villager主机(或在文件夹中运行这些步骤)。
  2. 确保已安装Python deps: python3 -m pip install --user flask requests.
  3. (可选)安装 nmap 对于扩展检查: sudo apt update && sudo apt install -y nmap.
  4. 启动MCP: nohup python3 mcp_local.py > mcp_local.log 2>&1 &.
  5. 测试MCP:
    ./mcp_test_curl.sh
    
    您应该看到NDJSON chunk 条目和a final 进入与 MERMAID_START / MERMAID_END.
  6. 重启村民(所以它指向 http://127.0.0.1:5173 在你的 config.py)并像之前一样提交任务:
    curl -X POST "http://127.0.0.1:37695/task" -H "Content-Type: application/json" -d '{"abstract":"Scan local juice-shop","description":"Crawl http://127.0.0.1:3000","verification":"Manual"}'
    

在哪里放置 config.py

村民进口 config 通过平原 import config典型选项:

  • 地方 config.py 在您启动Villager的同一目录中(因此它位于 sys.path).
  • 或替换/编辑 /root/venvs/villager/lib/python3.13/site-packages/config.py (您之前已经使用过此路径)。
  • 使用 sample_config.py 作为起点——编辑值并复制到上述位置之一:
    cp sample_config.py /root/venvs/villager/lib/python3.13/site-packages/config.py
    

渲染美人鱼图形

  • 任务完成后,村民可以返回嵌入在MCP最终内容中的美人鱼文本。
  • 另存为 /tmp/TASK_ID.mermaid 然后跑 ./mermaid_render.sh /tmp/TASK_ID.mermaid 生产 /tmp/TASK_ID.svg.
  • 如果以root身份运行, mmdc (Mermaid CLI)需要非root执行或 xvfb-run.

注意事项和安全

  • MCP脚本故意保守: 仅 允许目标决心 127.0.0.1 或 localhost。这是为了实验室系统的安全——除非您了解网络/安全影响,否则不要扩大此白名单。
  • MCP执行简单的HTTP GET请求和可选 nmap -sV 扫描。这些都是积极的行动。仅在您拥有或授权测试的基础设施上运行(例如,您当地的Juice Shop VM/容器)。
  • 此捆绑包按原样提供。在运行大量扫描之前,请调整超时和命令时间限制。

故障排除

  • 如果村民报告NDJSON解码警告,请检查 /root/mcp_local.log 还有村民的日志。确保 content-type 是 application/x-ndjson (脚本设置了这一点)。
  • 如果mermaid SVG为空,请运行 mmdc 作为非root用户或使用 xvfb-run 以避免Puppeter沙盒错误。