LLAMATOR
用于llamator的MCP服务器:自动化LLM红队工作流程
 
概述
此存储库提供了一个面向生产的服务包装器 羊驼 用于自动化LLM红队。 它暴露了两个集成表面:
- HTTP API(FastAPI) 用于作业提交、作业状态检索和工件访问。
- MCP服务器(流式HTTP传输) 对于代理/工具集成,启用LLAMATOR运行作为
工具。
执行是异步的,并通过以下方式进行编排 ARQ+Redis。工件上传到 MinIO 并被检索 通过预签名的URL(返回为JSON;API不重定向)。
能力
- Redis中持久状态的异步测试运行。
- 请求带有秘密编辑的持久性:
- API密钥不是以明文存储的。 - 存储的有效载荷仅包括布尔标记(例如。 api_key_present).
- 工件生命周期管理:
- 工人在以下位置创建本地工件 LLAMATOR_MCP_ARTIFACTS_ROOT//.... - 工件作为名为的存档上传到MinIO artifacts.zip. - HTTP API可以在作业前缀下列出可用对象,并解析预先签名的下载链接。
- 通过为HTTP和MCP接口提供可选的API-key保护
X-API-Key. - 支持API密钥授权的OpenAPI架构(Swagger UI)。
- Prometheus指标在
/metrics.
部署(Docker Compose)
要求:
- 码头工人
- Docker Compose
启动整个堆栈:
docker compose up --build默认服务终结点:
- HTTP API:
http://localhost:8000 - MinIO S3端点:
http://localhost:9000 - MinIO控制台:
http://localhost:9001
健康检查:
curl -sS http://localhost:8000/v1/health配置
所有配置都是通过前缀为的环境变量提供的 LLAMATOR_MCP_. 完整的参考文献可在 DOCUMENTATION.md.
典型的本地设置:
cp .env.example .env关键配置类别:
- 瑞迪斯:用于作业队列和状态存储的连接DSN。
- MinIO:S3兼容的工件存储。
- 攻击/判断模型:LLAMATOR执行的OpenAI兼容端点。
- API安全:可选
X-API-Key保护。 - 作业执行:超时、TTL和重试行为。
HTTP API使用
创建跑步记录
curl -sS -X POST "http://localhost:8000/v1/tests/runs" \
-H "Content-Type: application/json" \
-H "X-API-Key: " \
-d '{
"tested_model": {
"kind": "openai",
"base_url": "http://host.docker.internal:1234/v1",
"model": "llm",
"api_key": "lm-studio"
},
"run_config": { "enable_reports": false },
"plan": { "preset_name": "owasp:llm10", "num_threads": 1 }
}'答复包括:
job_id(uuid4十六进制,32个字符)status(queued | running | succeeded | failed)created_at(UTC时间戳)
检索作业状态
curl -sS "http://localhost:8000/v1/tests/runs/" \
-H "X-API-Key: "答复包括:
status:当前作业状态result:聚合指标(成功时)error:错误详细信息(失败时)error_notice:紧凑的面向用户的错误消息(失败时)
人工制品
列出可用于作业的对象:
curl -sS "http://localhost:8000/v1/tests/runs//artifacts" \
-H "X-API-Key: "解析特定对象的预签名下载URL:
curl -sS "http://localhost:8000/v1/tests/runs//artifacts/
" \
-H "X-API-Key: "下载端点返回一个JSON有效负载,其中包含 download_url 并且不发出重定向。
MCP接口
MCP服务器被挂载到FastAPI应用程序中(默认挂载路径: /mcp)并使用流式HTTP传输。
外露工具:
create_llamator_run:提交作业,等待完成,返回聚合指标和(如果可用)预签名
的URL artifacts.zip.
get_llamator_run:返回已完成作业的聚合指标和可选工件存档URL。
这两个工具都返回一致的响应模式:
{
"job_id": "string",
"aggregated": {
"attack_name": {
"metric": 0
}
},
"artifacts_download_url": "string or null",
"error_notice": "string or null"
}协议注释、标题和示例记录在 DOCUMENTATION.md.
安全模型
- 如果
LLAMATOR_MCP_API_KEY为空,身份验证已禁用。 - 如果已配置,受保护的HTTP路由和MCP应用程序需要
X-API-Key:.
本地开发
安装依赖项:
poetry install运行API服务器:
uvicorn llamator_mcp_server.main:app --host 0.0.0.0 --port 8000运行worker:
arq llamator_mcp_server.worker_settings.WorkerSettings教程
带有分步示例的Jupyter笔记本可在以下网址获得 notebooks/llamator_mcp_server_tutorial.ipynb. 它表明:
- 使用curl的HTTP API
- MCP JSON-RPC协议交互
- 轮询作业完成情况
- 文物检索
测试
集成测试位于 llamator-mcp-server/tests 并依靠 tests/.env.test.
运行:
pytest -q许可证📜
该项目根据以下条款获得许可 知识共享署名-相同方式共享4.0国际版 许可证。 看 许可证 文件以获取详细信息。

