关于 Acquisition Forecasts
Acquisition Forecasts 提供美国联邦机构公布的采购意向数据,面向政府承包商及市场分析人员。目前机器可读数据仅覆盖 DHS,并明确披露覆盖范围,避免将未覆盖误判为没有采购计划。
主要功能
- 01按关键词、机构和 NAICS 筛选
- 02按预留类别、财年和金额筛选
- 03查看预测详情、联系人与履约地点
- 04查询机构覆盖范围及说明
- 05本地 stdio MCP 服务
适用场景
- 01寻找尚未发布招标的采购机会
- 02按 DHS 机构和 NAICS 发现项目
- 03查看采购预测的联系人和履约地点
- 04核实机构是否包含在数据覆盖中
MCP 相关
向 MCP 客户端提供联邦采购预测搜索、详情查询和机构覆盖范围工具。可通过 Pipeworx 网关连接,也可作为本地 stdio MCP 服务运行。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://gateway.pipeworx.io/acquisition-forecasts/mcpclaude mcp add --transport http pipeworx-io-acquisition-forecasts https://gateway.pipeworx.io/acquisition-forecasts/mcp{"mcpServers":{"pipeworx-io-acquisition-forecasts":{"type":"http","url":"https://gateway.pipeworx.io/acquisition-forecasts/mcp"}}}在 Cursor 中打开{"servers":{"pipeworx-io-acquisition-forecasts":{"type":"http","url":"https://gateway.pipeworx.io/acquisition-forecasts/mcp"}}}在 VS Code 中打开{"mcpServers":{"pipeworx-io-acquisition-forecasts":{"type":"http","url":"https://gateway.pipeworx.io/acquisition-forecasts/mcp"}}}{"mcpServers":{"pipeworx-io-acquisition-forecasts":{"serverUrl":"https://gateway.pipeworx.io/acquisition-forecasts/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
44| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| q | string | 否 | question 的别名。 |
| ask | string | 否 | question 的别名。 |
| text | string | 否 | question 的别名。 |
| input | string | 否 | question 的别名。 |
| packs | array | 否 | 可选。将路由限制为这些包的 slug(例如 ["sec-form-d","sec-13f"]),路由器随后只会从这些包中的工具进行选择。省略则使用默认的完整目录路由。Slug 可从 list_packs / search_packs / https://pipeworx.io/directory 获取;未列出或未知的 slug 会被忽略,并在 _meta.pack_scope.ignored 中列出。如果没有任何 slug 能匹配问题,则会在整个目录中路由,并设置 _meta.pack_scope.full_catalog:true(绝不会返回空答案)。 |
| query | string | 否 | question 的别名。 |
| prompt | string | 否 | question 的别名。 |
| message | string | 否 | question 的别名。 |
| question | string | 是 | 用自然语言表达的问题或请求。支持 query、q、prompt、text、input、ask、message 作为别名。 |
详细介绍
acquisition-forecasts
美国联邦机构的采购预测——机构已发布计划要采购的项目,发布时间可能早于任何招标公告数月至数年。无需密钥。
这是 Pipeworx 的一部分——一个将 AI Agent 连接到 1872+ 个实时数据源的 MCP 网关。这是独立的非官方集成,与上游提供方无关联、未获其认可,也非其发布。
这是前瞻性信息。usaspending 记录的是已承担的资金;govcon-intel 扫描的是 SAM 上已开放的招标公告。只有预测能回答“我现在该为此配备人员吗”,而不是“我是不是错过了”。
工具
forecast_search(keyword?, agency?, sub_agency?, naics?, set_aside?, fiscal_year?, min_value?, limit?)forecast_detail(forecast_id, agency?)— 完整说明、履约地点和期限(PoP)、联系人forecast_agencies()— 已接入的机构,以及其他机构的情况判定
覆盖范围只有一个机构,这就是调查结果
各机构必须发布预测,而 acquisition.gov 收录了其中 22 家。我于 2026-08-29 对每一家进行了探测。只有一家发布机器可读数据:
| 判定 | 数量 | 机构 |
|---|---|---|
| JSON API | 1 | DHS(apfs-cloud.dhs.gov,847 条) |
| HTML,无数据文件 | 15 | Agriculture、Education、Energy、Justice、Labor、State、Interior、Treasury、Transportation、VA、GSA、NASA、NSF、SSA、DHS 自己的落地页 |
| 仅 PDF | 4 | DoD、HUD、NRC、OPM |
| 阻止自动化客户端(403) | 2 | USAID、Commerce |
| 无法访问(超时) | 1 | HHS |
PDF 预测有意不进行 OCR。错误解析出的数字比没有数字更糟,而这些数字是人们制定计划时会参考的金额。
因此,forecast_agencies() 作为一等工具提供,且每条搜索响应都会包含 agencies_covered 和 coverage_note。一个以联邦预测为名、却悄然只覆盖一个机构的工具包,会对 21 个从未检查过的机构回答“没有计划”——这就是把“没有数据”误当成“没有这回事”的问题,也是这个目录一再吸取教训的地方。
添加机构只需在 AGENCIES[] 中添加配置项,再加上字段映射。
陷阱
APFS API 会忽略所有查询参数。 ?naics=5415、
?organization=CBP 和 ?zzznonsense=x 都会返回完全相同的 847 行,且第一条记录的
id 完全相同。服务端不进行筛选,因此该工具包会获取整个文件(约 2 MB,缓存 15 分钟)并在内存中筛选。任何人试图通过将筛选条件推到上游来“优化”,得到的结果看似经过筛选,实际上并非如此。
small_business_set_aside 和 small_business_program 是不同的字段。
前者是布尔值(true/false/null),后者是计划名称
(SB、8(a)、HUBZone、WOSB、SDVOSB、AbilityOne、None、TBD)。
先合并布尔值会让 847 行中的 350 行变成字面字符串
"true",并丢失其计划名称;这还会导致 set_aside="8(a)" 仅返回
27 行,而不是 71 行,因为只有布尔值恰好为 null 的行仍然能够匹配。它们分别以 set_aside(名称)和
set_aside_applies(布尔值,null 表示该行未说明)返回。
NAICS 以代码和标签合并在同一个字符串中提供——"236220 - Commercial and Institutional Building Construction"。如果将调用者提供的 5415 与原始字段进行匹配,也会匹配到描述中包含这些数字的内容。代码会被拆分出来并按前缀匹配,这正是 NAICS 层级结构的工作方式:5415
涵盖 541511、541512……(175 行,而完整代码仅匹配 19 行)。
值是区间,不是数字——"$50M to $100M"、"Over $100M"。区间文本会原样保留,同时解析为 low/high。对于没有上限的最高区间,high 为 null,而非一个很大的数字;min_value 会将其视为无上限——虚构一个上限虽然可以排序,但结果是错误的。
organization 是下级机构路径,而非机构:CBP/OIT/LSS/ITB。全部 847 行都属于 DHS。agency 和 sub_agency 会分别报告,因此
agency="DHS" 的含义符合调用者的预期。
预测会修订。 published_date、previously_published 和
last_updated 会说明你查看的是哪个版本;已撤回或已授予的需求可能会从文件中完全消失,因此 forecast_detail 会明确说明这一点,而不是只报告“未找到”。
快速开始
添加到你的 MCP 客户端(Claude Desktop、Cursor、Windsurf 等):
{
"mcpServers": {
"acquisition-forecasts": {
"url": "https://gateway.pipeworx.io/acquisition-forecasts/mcp"
}
}
}
此端点实际提供的内容
https://gateway.pipeworx.io/acquisition-forecasts/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 都会连接到同一个网关和相同的 1872+ 个数据源。唯一的区别是哪些工具包的工具会被直接列出;无论连接哪个端点,ask_pipeworx 都可以访问所有工具包。
没有 MCP 客户端?通过 HTTP 调用
curl -X POST https://gateway.pipeworx.io/v1/tools/forecast_search \
-H 'Content-Type: application/json' \
-d '{"naics":"5415","agency":"DHS"}'
首次调用无需账户。查看任意工具:GET https://gateway.pipeworx.io/v1/tools/forecast_search。查找工具:使用 {"query":"..."} 向 https://gateway.pipeworx.io/v1/tools/search_packs 发送 POST 请求。
独立运行(无需网关账户)
此软件包也可作为本地 stdio MCP 服务运行,无需 Pipeworx 账户,也无需经过网关往返:
{
"mcpServers": {
"acquisition-forecasts": {
"command": "npx",
"args": ["-y", "@pipeworx/mcp-acquisition-forecasts"]
}
}
}
也可以直接运行,确认它能正常启动:
npx -y @pipeworx/mcp-acquisition-forecasts
它通过 stdin/stdout 使用 MCP 通信,并针对仅限此软件包的工具响应 initialize/tools/list/tools/call——不包含上方网关连接所添加的任何共享元工具。相同的源代码,相同的工具,无需 ask_pipeworx 路由。
使用 ask_pipeworx
你也可以用通俗的英语提问,而不是直接调用工具——这既适用于上方的软件包端点,也适用于完整网关:
ask_pipeworx({ question: "your question about Acquisition Forecasts data" })
网关会选择合适的工具并自动填写参数。
更多信息
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。