mcpField
B
Bounty Operator

Bounty Operator

远程服务
bountyoperator.com安全53 天前更新

关于 Bounty Operator

Bounty Operator 是一个 MCP 服务,用于在提交前审查安全发现和漏洞赏金报告草稿。它结合本地文件与秘密扫描、由模型撰写的审查请求、引用核验和证据包生成,并通过服务提供托管审查配置。

主要功能

  1. 01准备代码或报告审查
  2. 02扫描文件中的秘密和警告
  3. 03核验引用行与参考内容
  4. 04生成 Markdown 证据包
  5. 05执行八阶段有序审查
  6. 06支持本地与远程服务模式

适用场景

  1. 01对照代码质疑漏洞赏金报告草稿
  2. 02提交前审查 Solidity 合约
  3. 03检查安全发现中的证据与引用
  4. 04分阶段分流安全报告

MCP 相关

向 MCP 客户端提供审查准备、配置列表、流程规划、证据包生成及托管审查工具。本地服务额外提供 `run_gauntlet_plan`;托管审查需要连接令牌和模型提供方密钥。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://bountyoperator.com/api/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

全部服务地址
Streamable HTTPhttps://bountyoperator.com/api/mcp需要授权

工具

5

此工具无需参数。

详细介绍

Bounty Operator MCP

提交前,尽可能充分地陈述你的理由。

检查证据,明确影响,并在分诊人员要求之前找出缺失的证据。

这是 Bounty Operator 的 MCP 服务。你的 Agent 指定文件,服务会扫描其中的机密并返回审查请求;你的 Agent 使用自己的模型撰写审查内容,服务则检查所有引用的行并构建证据包。准备审查和构建证据包无需账户或密钥。

这条流程涵盖三个核心配置。其他所有配置以及八个挑战阶段中的七个,都会在 Bounty Operator 服务上作为托管审查运行,并使用你自己的提供商密钥。

安装

有两种方式,现均可使用。

远程端点

无需安装。每个客户端只需一行配置。

Claude Code

claude mcp add --transport http bounty-operator https://bountyoperator.com/api/mcp

Codex

codex mcp add bounty-operator --url https://bountyoperator.com/api/mcp

Cursor,配置在 ~/.cursor/mcp.json 或项目中的 .cursor/mcp.json:

{ "mcpServers": { "bounty-operator": { "url": "https://bountyoperator.com/api/mcp" } } }
本地服务

此软件包会按路径读取文件,在你的机器上完成审查准备,并提供 run_gauntlet_plan。需要 Node 22 或更高版本,无依赖项。npx 会从网站提供的 tarball 安装此软件包。

Claude Code

claude mcp add --transport stdio bounty-operator -- npx -y https://bountyoperator.com/dl/bounty-operator-mcp.tgz

Codex

codex mcp add bounty-operator -- npx -y https://bountyoperator.com/dl/bounty-operator-mcp.tgz

Cursor,配置在 ~/.cursor/mcp.json 或项目中的 .cursor/mcp.json:

{ "mcpServers": { "bounty-operator": { "command": "npx", "args": ["-y", "https://bountyoperator.com/dl/bounty-operator-mcp.tgz"] } } }

其他任何客户端:命令为 npx,参数为 -y https://bountyoperator.com/dl/bounty-operator-mcp.tgz,传输方式为 stdio。

在 WSL 之外的 Windows 上,Claude Code 会通过 cmd 启动 npx:请在命令末尾添加 -- cmd /c npx -y https://bountyoperator.com/dl/bounty-operator-mcp.tgz。

此软件包即将以 bounty-operator-mcp 的名称发布到 npm。在发布之前,请使用上面的 tarball URL 安装。

可以尝试的第一个请求:

Use bounty-operator to prepare a Solidity review of src/Vault.sol. Answer the request it returns, then build the packet.

工具

工具何时调用返回内容所需信息
list_profiles不确定哪种审查适合时审查配置,每项都包含 hosted(值为 true 或 false)、挑战顺序、判定结果、提供商和模型无
prepare_review使用自己的模型审查代码或报告草稿之前对于核心配置:SHA-256 清单、隐私发现、审查者说明、输出格式以及待回答的请求无
run_gauntlet_plan进行完整的提交前检查时按顺序排列的八个阶段、各阶段运行所用的工具、仍为空的 Context 字段,以及结束流程的调用无
build_packet撰写审查内容之后判定结果、引用检查、Markdown 证据包无
account进行托管审查之前套餐、今日已使用的审查次数、重置时间Token
run_review使用提供商的模型运行审查时审查内容、判定结果、引用检查、剩余额度Token 和提供商密钥

此处共有六个工具,远程端点上有五个:run_gauntlet_plan 仅限本地使用。

每次调用的限制:50 个文件,每个文件 120 KB,总计 240 KB 和 20,000 行。

核心配置和托管配置

prepare_review 支持三个核心配置:general(代码安全审查)、solidity(Solidity 审查)和 report(审查报告草稿)。这些配置的方法包含在此软件包中,由你的 Agent 使用自己的模型回答请求。

其他所有配置均为托管配置:scope、provenance、prior-art、poc、severity、triage、report-edit 和 scanner。每项都会通过 run_review,使用你自己的提供商密钥,在 Bounty Operator 服务上运行。托管配置的方法会在服务端添加,不包含在此软件包中,也不会由任何工具返回。

对于托管配置:

  • list_profiles 会将其返回,并标记为 hosted: true。
  • prepare_review 会在读取任何文件之前,以代码 hosted_profile 失败。
  • run_review 会运行该配置,并消耗一次托管审查额度。若提供商根据其使用政策拦截了审查,则不会计入额度。列表中不显示的两个配置 verdict 和 panel,是挑战流程和 panel 审查的最后一步:它们仅在 Operator 上运行。
{
  "profile": "triage",
  "error": "Triager simulation runs on the server. Call run_review with profile \"triage\": it needs BOUNTY_OPERATOR_TOKEN and the provider key in this server's environment.",
  "code": "hosted_profile"
}
按路径指定文件

prepare_review 和 run_review 接受 paths、files,或两者同时使用。

  • paths 由服务从其工作目录中读取:["report.md", "src/Vault.sol"]。Agent 无需发送文件文本。
  • files 在请求中直接携带文本:[{ "name": "src/Vault.sol", "content": "..." }]。

路径只能解析到工作目录内,不能指向其他位置。服务会拒绝 ..、指向目录外的绝对路径,以及指向目录外的链接。文件内容会用于审查,且绝不会返回:结果仅包含每个文件的标签、大小、行数和 SHA-256。

如果客户端在项目目录之外启动服务,请将 BOUNTY_OPERATOR_ROOT 设置为项目文件夹。

隐私检查

每次调用都会先扫描文件。发现密钥时会阻止调用,结果会列出每处匹配的文件、行号和类型,但绝不会包含匹配文本。发现电子邮件地址或 IP 地址时,会停止调用,直到你再次使用 acknowledgeWarnings: true 调用。run_review 会先在你的机器上执行此检查,再发送任何内容。

提示词

支持提示词的客户端会将以下三个提示词列为斜杠命令:

提示词功能
challenge-report根据报告引用的代码核查草稿报告中的每项主张,然后构建数据包
solidity-review梳理你指定合约中的入口点和不变量
gauntlet按顺序将一个发现依次通过八个阶段,并以一个结论收尾

在 Claude Code 中:/mcp__bounty-operator__gauntlet。

Gauntlet

八个阶段按此顺序进行,以便尽早终止薄弱的报告:范围、来源、先前工作、证明、严重性、分诊、报告、结论。run_gauntlet_plan 会返回计划,并指出执行各阶段的工具。七个阶段由托管服务提供,并通过 run_review 运行,因此运行需要连接令牌和提供方密钥。报告阶段属于核心配置:prepare_review 会返回请求,由你的 Agent 自行使用模型回答。每次审查都会作为 stage-<n>-<profile>.md 传递到下一阶段,运行最终以 build_packet 结束。结论为以下之一:submit、rewrite-then-submit、prove-first、hold-duplicate、drop。

一次运行会使用七次托管审查。Free 每个 UTC 日可进行一次托管审查,因此完整运行需要 Operator。计划会在 hosted 下包含次数,account 会在运行开始前返回可用额度。

托管审查

run_review 使用你自己的 API 密钥,在服务商的模型上运行任意配置,并返回经过检查的审查结果。这是在 Agent 中运行托管配置的唯一方式。它使用与网站相同的额度:Free 用户每天(按 UTC 计算)可进行一次托管审查,配置不限;Operator 用户每月支付 10 美元,可无限次使用。

三个结果字段用于说明文本并非审查结果。如果服务商截断了回答,truncated 为 true。如果模型或服务商拒绝了请求,refused 为 true。如果审查被拦截,则会设置 blocked:对于相应服务商的安全防护,值为 anthropic-cyber、anthropic-reasoning 或 openai-cyber;对于密钥或其账户上的防护规则,值为 guardrail;对于其他使用政策拦截,值为 policy。被拦截的审查不会计入次数。遭到拒绝或拦截后,不要使用同一模型再次调用:请改用其他模型或服务商,或者对核心配置使用 prepare_review。

  1. 登录 bountyoperator.com,并在账户面板中创建连接。令牌以 bok_ 开头,且只会显示一次。
  2. 在环境中设置令牌和一个服务商密钥,然后启动服务。
claude mcp add --transport stdio --env BOUNTY_OPERATOR_TOKEN=bok_... --env OPENROUTER_API_KEY=sk-or-... bounty-operator -- npx -y https://bountyoperator.com/dl/bounty-operator-mcp.tgz

Codex 中的 ~/.codex/config.toml:

[mcp_servers.bounty-operator]
command = "npx"
args = ["-y", "https://bountyoperator.com/dl/bounty-operator-mcp.tgz"]
env_vars = ["BOUNTY_OPERATOR_TOKEN", "OPENROUTER_API_KEY"]
tool_timeout_sec = 1200

托管审查会在 270 秒内结束。对于 Bounty Operator 模型,运行时间最长为 15 分钟:安静一段时间后的首次请求可能需要等待最多 10 分钟才能启动模型;等待期间会显示进度消息。Codex 默认会在 60 秒后停止工具调用,因此请保留 tool_timeout_sec 这一行。

令牌和密钥从环境中读取。它们都不是工具参数,也都会从所有结果中移除。

远程端点使用相同的两个值作为标头:Authorization: Bearer <token> 和 X-Provider-Key: <key>。各客户端的命令见 bountyoperator.com/mcp。

对于 Novita AI,在本地设置 NOVITA_API_KEY(并将其加入 Codex 的 env_vars),然后使用 "provider": "novita" 调用 run_review。请在 Novita Key Management 创建密钥。默认模型为 deepseek/deepseek-v4.1-flash;此外还列有 zai-org/glm-5.3-flash。本地和远程的 list_profiles 都会显示该服务商及其模型。在远程端点上,请将 Novita 密钥放入 X-Provider-Key,不要将其作为工具参数传递。Novita 会单独收取模型使用费用;选择它不会更改应用的默认服务商,也不会启用回退机制。推理请求绝不会发送注册归因信息。

对于 Nebius Token Factory,在本地设置 NEBIUS_API_KEY(并将其加入 Codex 的 env_vars),然后使用 "provider": "nebius" 调用 run_review。请在 Nebius Token Factory 创建密钥。默认模型为 deepseek-ai/DeepSeek-V4.1-Flash;此外还列有 zai-org/GLM-5.3-Flash 和 moonshotai/Kimi-K3。请求会要求 Nebius 不存储回答。在远程端点上,请将 Nebius 密钥放入 X-Provider-Key,不要将其作为工具参数传递。Nebius 会单独收取模型使用费用;选择它不会更改应用的默认服务商,也不会启用回退机制。

环境变量

变量用途
BOUNTY_OPERATOR_TOKEN用于 account 和 run_review 的连接令牌
BOUNTY_OPERATOR_MODEL调用未指定模型时,run_review 使用的模型 ID
BOUNTY_OPERATOR_ROOTpaths 解析路径所依据的项目文件夹绝对路径。默认值:当前工作目录
OPENROUTER_API_KEY、ANTHROPIC_API_KEY、OPENAI_API_KEY、GEMINI_API_KEY、XAI_API_KEY、DEEPSEEK_API_KEY、MISTRAL_API_KEY、GROQ_API_KEY、NOVITA_API_KEY、NEBIUS_API_KEY、INFRON_API_KEY、ORCAROUTER_API_KEY、BOUNTYOPERATOR_API_KEYrun_review 使用的服务商密钥,每个服务商一个

服务端会访问的内容

  • list_profiles、prepare_review、run_gauntlet_plan 和 build_packet 均在你的计算机上运行,不会发起网络调用。
  • account 和 run_review 会使用你的令牌调用 https://bountyoperator.com。run_review 会发送文件和你的提供商密钥。该服务会添加配置文件的方法,将请求和密钥传递给提供商以处理这一次请求,然后返回审查结果。它不会存储文件、密钥或审查文本。
  • 服务端会读取你指定的工作目录下的文件。它不会写入磁盘,也不会运行文件中的代码。

调用失败时

调用失败时会返回 isError,其中包含一个 JSON 对象:error、一条可供 Agent 采取行动的句子,以及 code。

代码含义
hosted_profile使用托管配置文件调用了 prepare_review。没有读取或计数任何内容。请调用 run_review。
privacy_block隐私检查发现了机密信息。结果会列出文件、行号和类型。
privacy_warn隐私检查发现了电子邮件地址或 IP 地址。若要照原样发送文件,请使用 acknowledgeWarnings: true 再次调用。
tokenBOUNTY_OPERATOR_TOKEN 缺失、格式错误、已过期或已撤销。
daily_used今日的免费审查次数已用完。结果中包含 resetsAt。
operator_only在没有 Operator 的账户上,使用 verdict 或 panel 调用了 run_review。没有内容发送给提供商,今日的审查次数也未使用。
review_running账户正在运行的审查数量已达到套餐允许的上限。
provider提供商拒绝了密钥或模型、没有额度、发生故障或超时。此次审查不计入次数。
provider_policy提供商根据其使用政策拦截了请求。原因不是密钥问题,此次审查不计入次数。请改用其他模型或提供商再次调用,不要使用同一个。
output_withheld模型重复了自身的指令,而不是进行审查,因此答案已被拦截,且此次调用消耗了一次审查。请重新运行,或选择更强的模型。
bad_path、bad_root无法读取工作目录下的某个路径,或工作目录本身不可用。
network、timeout、cancelled无法连接到服务,或在收到答案前连接已关闭;服务在 300 秒内(使用 Bounty Operator 模型进行审查时为 960 秒)未作出响应;或者客户端取消了调用。

验证下载文件

网站上的 tarball 附有 SHA-256 校验值,见 https://bountyoperator.com/dl/SHA256SUMS.txt。

curl -sO https://bountyoperator.com/dl/bounty-operator-mcp-0.9.18.tgz
curl -s https://bountyoperator.com/dl/SHA256SUMS.txt | sha256sum -c --ignore-missing
npx -y file:$PWD/bounty-operator-mcp-0.9.18.tgz --version

使用 file: 前缀和绝对路径启动下载的 tarball。npm 会将不带前缀的路径视为要运行的命令。

开发

审查引擎位于仓库的 web/public 中,并会在每次测试和打包前复制到 lib/。

npm install
npm test
node ../scripts/build-mcp.mjs

build-mcp.mjs 会打包 tarball、根据白名单检查其中的内容、将其安装到空文件夹中、完成 MCP 握手,并写入 web/public/dl/。

源代码:github.com/bountyoperator/bounty-operator。MIT 许可证。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。