BLT-MCP
MCP(模型上下文协议)服务器,为AI代理和开发人员提供对BLT(Bug日志工具)生态系统的结构化访问。该服务器能够与IDE和聊天界面无缝集成,以记录错误、分类问题、查询数据和管理安全工作流。
概述
BLT-MCP实现了MCP标准,通过三个强大的层为AI代理提供对BLT的结构化访问:
🔗 资源(blt://URI)
通过标准化URI访问BLT数据:
blt://issues-系统中的所有问题blt://issues/{id}-具体问题详情blt://repos-跟踪存储库blt://repos/{id}-特定存储库详细信息blt://contributors-所有贡献者blt://contributors/{id}-具体贡献者详细信息blt://workflows-所有工作流blt://workflows/{id}-具体工作流程详细信息blt://leaderboards-排行榜排名和统计数据blt://rewards-奖励和培根积分
🛠️ 工具
在BLT上执行操作:
- 提交问题 -报告新的错误和漏洞
- 获奖培根 -向贡献者奖励培根积分(游戏化)
- update_issue_status -更改问题状态(打开、in_progress、已解决、已关闭、wont_fix)
- 添加注释 -为问题添加评论
💡 提示
AI引导的常见安全任务工作流程:
- 试验脆弱性 -指导人工智能进行漏洞分类和严重性评估
- 计划调解 -为安全问题制定全面的补救计划
- 评论_贡献 -通过质量评估和培根点建议评估贡献
特性
- ✅ JSON-RPC 2.0 -可靠通信的标准协议
- ✅ OAuth/API密钥验证 -安全访问BLT端点
- ✅ 统一界面 -所有BLT功能的单一代理友好界面
- ✅ 自主工作流 -使AI代理能够独立工作
- ✅ 游戏化支持 -内置支持BLT培根点系统
- ✅ 安全第一 -专为漏洞管理和安全工作流程而设计
安装
先决条件
- Node.js 18或更高版本
- npm或纱线
再进行
npm install构建
npm run build配置
环境变量
创建一个 .env 文件基于 .env.example:
cp .env.example .env配置以下变量:
BLT_API_BASE=https://blt.owasp.org/api
BLT_API_KEY=your_api_key_hereMCP客户端配置
要将此服务器与MCP客户端(如Claude Desktop或Cline)一起使用,请将其添加到MCP设置中:
{
"mcpServers": {
"blt": {
"command": "node",
"args": ["/absolute/path/to/blt-mcp/dist/index.js"],
"env": {
"BLT_API_BASE": "https://blt.owasp.org/api",
"BLT_API_KEY": "your_api_key_here"
}
}
}
}用法
运行服务器
服务器使用stdio传输进行MCP通信:
node dist/index.js与AI代理一起使用
在MCP客户端中配置后,您可以通过自然语言与BLT交互:
示例:提交问题
"Submit a new critical vulnerability in the authentication system of repo 123"AI代理将使用 submit_issue 创建问题的工具。
示例:访问资源
"Show me the leaderboard"AI代理将读取 blt://leaderboards 以显示排名。
示例:使用提示
"Help me triage this XSS vulnerability in the login form"AI代理将使用 triage_vulnerability 提示以指导分析。
API 参考
资源
列出所有问题
URI: blt://issues
Returns: JSON array of all issues获取具体问题
URI: blt://issues/{id}
Returns: JSON object with issue details排行榜
URI: blt://leaderboards
Returns: JSON object with leaderboard data工具
提交问题
向BLT提交新问题。
参数:
title(字符串,必填)-发行标题description(字符串,必填)-详细描述repo_id(字符串,可选)-存储库IDseverity(字符串,可选)-以下之一:低、中、高、临界type(字符串,可选)-错误、漏洞、功能、其他
例子:
{
"title": "XSS vulnerability in login form",
"description": "The login form is vulnerable to reflected XSS...",
"repo_id": "123",
"severity": "high",
"type": "vulnerability"
}获奖培根
向贡献者奖励培根积分。
参数:
contributor_id(字符串,必填)-参与者IDpoints(数量,必填)-奖励积分reason(字符串,必填)-获奖原因
update_issue_status
更新问题的状态。
参数:
issue_id(字符串,必填)-问题IDstatus(string,必填)-以下选项之一:open、in_progress、resolved、closed、wont_fixcomment(字符串,可选)-状态更改说明
添加注释
为问题添加评论。
参数:
issue_id(字符串,必填)-问题IDcomment(字符串,必填)-注释文本
提示
试验脆弱性
指导人工智能进行漏洞分类。
论据:
vulnerability_description(必填)-漏洞描述affected_component(可选)-受影响的组件或系统
计划调解
为安全问题制定补救计划。
论据:
issue_id(必填)-用于创建计划的问题IDcontext(可选)-附加上下文
评论_贡献
评估安全贡献。
论据:
contribution_id(必填)-出资IDcontribution_type(可选)-出资类型
JSON-RPC示例
由于BLT-MCP在stdio上使用JSON-RPC 2.0,下面是一个示例请求和响应格式。
示例:调用submit_issue工具
请求:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "submit_issue",
"arguments": {
"title": "Test issue from JSON-RPC",
"description": "This is a test issue created via raw JSON-RPC request.",
"severity": "low"
}
}
}示例响应:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"success": true,
"message": "Issue submitted successfully"
}
}故障排除
节点版本
确保你运行的是Node.js v18或更高版本:
node -v缺少环境变量
确保 .env 已正确配置:
BLT_API_BASE=https://blt.owasp.org/api
BLT_API_KEY=your_api_key_here构建问题
如果 dist/index.js 缺失,请运行:
npm run build发展
观看模式
对于开发,使用监视模式根据更改自动重建:
npm run watch项目结构
blt-mcp/
├── src/
│ └── index.ts # Main server implementation
├── dist/ # Compiled JavaScript (generated)
├── package.json # Project dependencies
├── tsconfig.json # TypeScript configuration
├── .env.example # Example environment configuration
└── mcp-config.json # Example MCP client configuration安全注意事项
- API密钥:永远不要将API密钥提交到版本控制。使用环境变量。
- 访问控制:确保为生产使用配置了正确的身份验证。
- 速率限制:提出请求时要注意API费率限制。
- 输入验证:服务器在发送到BLT API之前验证所有输入。
贡献
欢迎投稿!请遵循以下指南:
- 分叉存储库
- 创建要素分支
- 进行更改
- 提交拉取请求
许可证
MIT许可证-有关详细信息,请参阅许可证文件
支持
有关问题、疑问或贡献,请访问:
- github:https://github.com/OWASP-BLT/BLT-MCP
- OWASP BLT:https://owasp.org/www-project-bug-logging-tool/
致谢
- 建立在 模型上下文协议
- 部分 OWASP BLT项目
- 由安全社区提供支持
