村民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许可证(占位符,根据需要替换作者/年份)。
快速启动(最小)
- 将此文件夹复制到您的Villager主机(或在文件夹中运行这些步骤)。
- 确保已安装Python deps:
python3 -m pip install --user flask requests. - (可选)安装
nmap对于扩展检查:sudo apt update && sudo apt install -y nmap. - 启动MCP:
nohup python3 mcp_local.py > mcp_local.log 2>&1 &. - 测试MCP:
./mcp_test_curl.sh您应该看到NDJSON chunk 条目和a final 进入与 MERMAID_START / MERMAID_END.
- 重启村民(所以它指向
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沙盒错误。
