关于 Softwareheritage
Softwareheritage 是面向开发者和代码档案研究者的 MCP 服务,用于查询 Software Heritage 中的公开源代码存档。它可查看仓库捕获状态与历史,并通过持久标识符查询已存档提交。
主要功能
- 01按 URL 片段搜索已存档仓库
- 02查看仓库最近一次成功捕获
- 03查询仓库捕获历史及结果
- 04按提交 ID 或 SWHID 获取提交信息
适用场景
- 01确认某个公开仓库是否已存档
- 02检查仓库存档时间和连续性
- 03查看可能已无法访问的仓库中的提交
MCP 相关
向 MCP 客户端提供来源搜索、存档状态与访问历史查询,以及提交详情工具。可通过 Pipeworx 网关或本地 stdio MCP 服务使用。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://gateway.pipeworx.io/softwareheritage/mcpclaude mcp add --transport http pipeworx-io-softwareheritage https://gateway.pipeworx.io/softwareheritage/mcp{"mcpServers":{"pipeworx-io-softwareheritage":{"type":"http","url":"https://gateway.pipeworx.io/softwareheritage/mcp"}}}在 Cursor 中打开{"servers":{"pipeworx-io-softwareheritage":{"type":"http","url":"https://gateway.pipeworx.io/softwareheritage/mcp"}}}在 VS Code 中打开{"mcpServers":{"pipeworx-io-softwareheritage":{"type":"http","url":"https://gateway.pipeworx.io/softwareheritage/mcp"}}}{"mcpServers":{"pipeworx-io-softwareheritage":{"serverUrl":"https://gateway.pipeworx.io/softwareheritage/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
@pipeworx/softwareheritage
Software Heritage 公共源代码档案:哪些代码仓库已被收录、每个仓库最近一次成功收录的时间,以及其中的提交——通过内容寻址,因此即使代码仓库被重命名、迁移或删除,仍可解析。
Pipeworx 的一部分——一个将 AI Agent 连接到 1683+ 个实时数据源的 MCP 网关。
工具
origin_search(query, limit?, with_visit?)— 查找 URL 与子字符串匹配的已归档源。回答“这个项目是否在档案中,以及对应的 URL 是什么”。这是执行其他操作前的必要步骤,因为档案中的所有内容都以源 URL 为键。origin_status(url)— 某个代码仓库最近一次实际生成快照的收录记录:日期、快照 ID、访问类型。回答“这段代码是否安全,以及截至何时”。origin_visits(url, limit?)— 某个代码仓库的收录历史,按时间从新到旧排列,并列出每次访问的结果。回答“该代码仓库被持续归档了多久”,并区分从未归档与已归档多年但今天无法访问的情况。revision(id)— 根据 40 位十六进制 ID 或 SWHID 获取一个已归档的提交:消息、作者、提交者、日期、树 ID、父级。回答一个可能已不存在于其他任何地方的代码仓库中“这个提交包含什么”。
身份验证
无需密钥。匿名调用者的速率限制额度低于持有令牌的调用者,而且限制按 IP 计算,因此,与其他流量共用出口地址的 Worker 可能会因非本服务发起的调用而受到限流。档案要求调用者表明身份;此工具包会发送自己的 User-Agent。
数据源
- https://archive.softwareheritage.org/api/1/origin/search/{query}/ — 源搜索。返回纯 JSON 数组,而不是对象。
- https://archive.softwareheritage.org/api/1/origin/{url}/visit/latest/ — 某个源的最近一次访问。
- https://archive.softwareheritage.org/api/1/origin/{url}/visits/ — 访问历史,按
per_page分页。 - https://archive.softwareheritage.org/api/1/revision/{sha}/ — 一个提交。
使用前值得了解的事项:
- 不带
require_snapshot=true的visit/latest是个陷阱。 它会返回最近一次访问,不论其结果如何。因此,一个自 2015 年以来持续归档的代码仓库会返回status: "not_found",因为今天的爬取恰好失败了——这与“是否已归档”的问题正好相反。我们于 2026-09-03 在https://github.com/torvalds/linux上复现了这一情况:第 479 次访问的结果为not_found,而前一天的第 478 次访问结果为full。origin_status始终会设置该标志;如果在这里添加端点,也要设置该标志。 - 源 URL 是键,并且采用精确匹配。 末尾的斜杠、
.git后缀或http与https的区别,都会被视为不同的源,并拥有各自的访问历史。请使用origin_search解析,而不是自行构造 URL。 - 源 URL 未经转义就嵌入路径中。 文档规定的格式是
/origin/https://…/get/——不要对其进行 URL 编码,否则 API 将无法找到它。 - 源端点返回纯 JSON 数组,而修订版端点返回对象。读取这些数据的代码必须同时处理这两种格式。
- 404 表示“未归档”,而非“请求错误”。 此工具包会将其转换为明确的
archived: false/error: "revision not archived",以免缺失内容看起来像是空的成功结果。
快速开始
添加到你的 MCP 客户端(Claude Desktop、Cursor、Windsurf 等):
{
"mcpServers": {
"softwareheritage": {
"url": "https://gateway.pipeworx.io/softwareheritage/mcp"
}
}
}
此端点实际提供的内容
https://gateway.pipeworx.io/softwareheritage/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 都会连接到同一个网关和相同的 1683+ 个数据源。唯一的区别是直接列出哪个工具包的工具;通过任一端点,ask_pipeworx 都能访问全部工具。
没有 MCP 客户端?通过 HTTP 调用
curl -X POST https://gateway.pipeworx.io/v1/tools/origin_search \
-H 'Content-Type: application/json' \
-d '{"query":"torvalds/linux","limit":3}'
首次调用无需账户。检查任意工具:GET https://gateway.pipeworx.io/v1/tools/origin_search。查找工具:使用 {"query":"..."} 向 POST https://gateway.pipeworx.io/v1/tools/search_packs 发送请求。
独立运行(无需网关账户)
此软件包也可作为本地 stdio MCP 服务运行——无需 Pipeworx 账户,也无需经过网关:
{
"mcpServers": {
"softwareheritage": {
"command": "npx",
"args": ["-y", "@pipeworx/mcp-softwareheritage"]
}
}
}
或者直接运行它,确认服务可以启动:
npx -y @pipeworx/mcp-softwareheritage
它通过 stdin/stdout 使用 MCP,并响应 initialize/tools/list/tools/call,仅提供此工具包的工具——不包含上述网关连接添加的任何共享元工具。相同的源代码、相同的工具,但没有 ask_pipeworx 路由。
使用 ask_pipeworx
除了直接调用工具,你还可以用通俗易懂的语言提问——这既适用于上面的工具包端点,也适用于完整网关:
ask_pipeworx({ question: "your question about Softwareheritage data" })
网关会选择合适的工具并自动填入参数。
更多信息
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。