Bugcrowd MCP服务器项目提供了一个模型上下文协议(MCP)服务器,它将整个 Bugcrowd REST API 作为可调用工具暴露给大语言模型(LLMs)和自动化系统。该项目使用异步MCP SDK以Python语言实现,可与Claude Desktop、MCP Inspector或任何兼容的LLM代理配合使用。
Bugcrowd MCP服务器可在大语言模型(如Claude、GPT等)与Bugcrowd平台之间架起桥梁。它将每个Bugcrowd API端点作为工具暴露出来,让你能够:
所有API调用都是安全且异步进行的,并且不会硬编码凭证。
httpx
构建,具备高并发和响应能力。本项目使用 uv 进行快速Python依赖管理:
uv pip install -r requirements.txt
或者,如果你使用 pyproject.toml
:
uv pip install .
将你的Bugcrowd API用户名和密码导出为环境变量:
export BUGCROWD_API_USERNAME="your_username"
export BUGCROWD_API_PASSWORD="your_password"
⚠️ 重要提示
即使未设置这些环境变量,服务器也会启动并显示所有可用工具。但是,在提供凭证之前,任何调用Bugcrowd API工具的尝试都将导致运行时错误。
此服务器默认使用 标准输入输出传输(不启动HTTP服务器)。这是Claude Desktop和大多数LLM集成的推荐模式。
uv run server.py
将以下内容添加到你的Claude Desktop mcpserver.json
配置文件中(根据需要调整目录路径):
{
"mcpServers": {
"BugcrowdMCP": {
"command": "uv",
"args": [
"--directory", "/Users/haji/mcp-servers/bugcrowd-mcp",
"run", "server.py"
]
}
}
}
⚠️ 重要提示
不启动HTTP服务器;所有通信都通过标准输入输出(stdio)进行,以确保与LLM工具的最大兼容性和安全性。
一旦服务器运行并连接到你的LLM或MCP客户端,你就可以将任何Bugcrowd API端点作为工具调用。例如,列出所有项目:
# 向LLM或MCP客户端发出的提示
# Call the tool `get_programs` to list all Bugcrowd programs I have access to.
# 使用MCP客户端或LLM代理
result = call_tool("get_programs", {})
print(result)
你还可以根据需要传递查询参数:
result = call_tool("get_programs", {"fields[program]": "name,code"})
通过ID获取特定项目:
result = call_tool("get_program", {"id": "PROGRAM_UUID"})
创建新报告:
result = call_tool("post_reports", {"data": {"type": "report", "attributes": {"title": "Test Report", "description": "Example."}}})
server.py
:将Bugcrowd API端点作为工具暴露的主要MCP服务器。README.md
:本项目文档。pyproject.toml
:项目依赖项。本项目采用MIT许可证。