关于 Gao Protests
Gao Protests 是面向政府采购研究者的 MCP 服务,可查询美国 GAO 已累积收录的投标抗议裁决。支持按结果、公司和 B 编号检索,并明确说明数据并非完整历史档案。
主要功能
- 01按裁决结果查询近期抗议
- 02按 B 编号查看裁决及 PDF 链接
- 03按抗议方或公司名称搜索
- 04查看数据覆盖范围与更新时间
适用场景
- 01检查近期政府合同授标争议
- 02查询特定公司提交的抗议
- 03追踪数据集收录的时间范围
MCP 相关
向 MCP 客户端提供近期裁决、单项裁决、抗议方搜索和覆盖情况查询工具。可通过 Pipeworx 网关连接,也可作为本地 stdio MCP 服务运行。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://gateway.pipeworx.io/gao-protests/mcpclaude mcp add --transport http pipeworx-io-gao-protests https://gateway.pipeworx.io/gao-protests/mcp{"mcpServers":{"pipeworx-io-gao-protests":{"type":"http","url":"https://gateway.pipeworx.io/gao-protests/mcp"}}}在 Cursor 中打开{"servers":{"pipeworx-io-gao-protests":{"type":"http","url":"https://gateway.pipeworx.io/gao-protests/mcp"}}}在 VS Code 中打开{"mcpServers":{"pipeworx-io-gao-protests":{"type":"http","url":"https://gateway.pipeworx.io/gao-protests/mcp"}}}{"mcpServers":{"pipeworx-io-gao-protests":{"serverUrl":"https://gateway.pipeworx.io/gao-protests/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
@pipeworx/gao-protests
GAO 投标抗议裁决——美国政府问责局(US Government Accountability Office)对政府合同授标争议作出的裁决(“有人抗议过这次授标吗?”、“这个机构的授标抗议败诉率有多高?”)。可与 usaspending 和 dod-contract-announcements 搭配使用;它们涵盖授标信息,但不涵盖争议。
Pipeworx 的一部分——一个将 AI Agent 连接到 1879+ 个实时数据源的 MCP 网关。这是一项独立的非官方集成,与上游提供方无关联,也未获其认可或发布。
工具
gao_protests_recent(days?, outcome?, limit?)— 最近裁决的抗议,可按结果(denied|dismissed|sustained)筛选。gao_protest(b_number)— 按 B 编号查询单项裁决,并提供裁决 PDF 链接。gao_protests_search(protester, limit?)— 按抗议方/公司名称搜索已累积的裁决。gao_protests_coverage()— 已收录的裁决总数、最早/最近的 decided_on 日期,以及上次抓取时间。
身份验证
无需密钥——不需要运营方密钥。数据由 gao_bid_protests 提供,并由 workers/data-pipeline 每日刷新(数据集 gao-protests)。
数据来源
- https://www.gao.gov/legal/bid-protests/search — 投标抗议页面。页面 HTML 中直接嵌入了 Drupal Views“最近裁决”区块(无需 JS 验证),显示最近约 5 项裁决。
- https://www.gao.gov/products/B-XXXXXX — 每项裁决的独立页面;每个新 B 编号只抓取一次,以获取准确的裁决日期和 PDF 链接。
覆盖范围是持续累积的,并非 GAO 的完整抗议档案。 筛选搜索端点(gao.gov/search?f[0]=ctype_search:Bid Protest Decision)受到 Akamai Bot Manager 的工作量证明 JS 中间页拦截,无法从服务端通过验证——即使通过 HTTP/2 发送完整的 Chrome 标头也无济于事;这是 JS 执行验证,而不是标头指纹验证。页面上的“More”链接也指向同一受阻端点,且没有其他可访问的分页。因此,本工具包只能收录 GAO 自开始抓取以来发布的裁决——gao_protests_recent/_search 会基于 gao_bid_protests 中目前累积的数据查询,而不是 GAO 的完整裁决历史。gao_protests_coverage 会准确报告数据覆盖的时间范围。
两个主机都需要完整的 Chrome 标头集合(通过 HTTP/2 发送 User-Agent、Accept、Accept-Language、sec-ch-ua*、Sec-Fetch-*、Upgrade-Insecure-Requests)——仅使用普通的 User-Agent 会收到 403。这是标头指纹拦截,不是 Cloudflare 出口拦截;不需要代理。
无法获取被抗议的机构。 该信息只出现在每项裁决的 PDF 文本中,从不出现在页面 HTML 中;而此数据管道不具备 PDF 文本提取功能。我们不会根据上下文(或抗议方的历史记录)猜测机构,而是完全省略此字段——把猜测的机构当作事实呈现,还不如不提供。
一项裁决可能包含多个 B 编号(例如,原始抗议加复议的 B-424484,B-424484.2)。表格的主键是该字符串中的第一个编号;gao_protest 也会通过搜索原始字符串匹配非主编号(例如 .2 后缀)。
结果以文字表述,而非枚举值(“We deny the protest.”、“We dismiss the request for reconsideration.”、“We sustain the protest.”)。筛选时会将其规范化为 denied | dismissed | sustained | other,同时始终保留原始句子。
快速开始
添加到你的 MCP 客户端(Claude Desktop、Cursor、Windsurf 等):
{
"mcpServers": {
"gao-protests": {
"url": "https://gateway.pipeworx.io/gao-protests/mcp"
}
}
}
此端点实际提供的内容
https://gateway.pipeworx.io/gao-protests/mcp 上的 tools/list 会返回上表中的工具,以及 Pipeworx 共享元工具——ask_pipeworx、
discover_tools、search_within、remember/recall 和其余网关范围内的工具。因此,你看到的工具数量会多于此表中的数量:目前,单个工具包端点除了列出该工具包自身的工具,还会列出大约 30 个共享工具。连接的 initialize 响应会说明确切范围,是判断当天实际范围的权威依据。
这是有意为之,并非意外的多路复用。元工具让限定范围的连接也能回答此工具包未涵盖的问题——通过可跨整个目录路由的
ask_pipeworx——无需再添加第二个 MCP 服务。目前无法挂载不含这些元工具的工具包端点;如果额外的架构定义占用的上下文比路由功能带来的收益更大,请只连接一次完整网关,而不是连接多个工具包端点。
或者,连接完整的 Pipeworx 网关,直接列出所有工具包的工具,而不只是此工具包的工具:
{
"mcpServers": {
"pipeworx": {
"url": "https://gateway.pipeworx.io/mcp"
}
}
}
两个 URL 都会连接到同一个网关和相同的 1879+ 个数据源。唯一的区别在于,哪些工具包的工具会被直接列出;无论连接哪一个,ask_pipeworx 都能访问所有工具。
没有 MCP 客户端?通过 HTTP 调用
curl -X POST https://gateway.pipeworx.io/v1/tools/gao_protests_recent \
-H 'Content-Type: application/json' \
-d '{"days":30}'
首次调用无需账户。查看任意工具:GET https://gateway.pipeworx.io/v1/tools/gao_protests_recent。查找工具:使用 {"query":"..."} 向 https://gateway.pipeworx.io/v1/tools/search_packs 发送 POST 请求。
独立运行(无需网关账户)
此软件包也可以作为本地 stdio MCP 服务运行——无需 Pipeworx 账户,也无需往返网关:
{
"mcpServers": {
"gao-protests": {
"command": "npx",
"args": ["-y", "@pipeworx/mcp-gao-protests"]
}
}
}
或者直接运行,确认服务能够启动:
npx -y @pipeworx/mcp-gao-protests
它通过 stdin/stdout 使用 MCP 通信,并响应 initialize/tools/list/tools/call,仅提供此工具包的工具——不包含上述网关连接额外提供的共享元工具。使用相同的源代码和工具,但没有 ask_pipeworx 路由功能。
使用 ask_pipeworx
你可以用通俗的英语提问,而不是直接调用工具——此功能既适用于上文的工具包端点,也适用于完整网关:
ask_pipeworx({ question: "your question about Gao Protests data" })
网关会选择合适的工具,并自动填入参数。
更多信息
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。