@pipeworx/softwareheritage

Connect: https://gateway.pipeworx.io/softwareheritage/mcp · Install: one-click buttons

Tools: 4

The Software Heritage archive of public source code: which repositories have been captured, when each was last captured successfully, and the commits inside them — addressed by content, so they keep resolving after a repository is renamed, moved or deleted.

Tools

  • origin_search(query, limit?, with_visit?) — find archived origins whose URL matches a substring. Answers “is this project in the archive, and under which URL”, which you need before anything else because the archive keys everything on the origin URL.
  • origin_status(url) — the most recent capture of one repository that actually produced a snapshot: date, snapshot id, visit type. Answers “is this code safe, and as of when”.
  • origin_visits(url, limit?) — the capture history for one repository, newest first, with each visit’s outcome. Answers “how continuously has this been archived”, and separates never-archived from archived-for-years-and-unreachable-today.
  • revision(id) — one archived commit by its 40-hex id or SWHID: message, author, committer, dates, tree id, parents. Answers “what was in this commit” for a repository that may no longer exist anywhere else.

Auth

Keyless. Anonymous callers get a lower rate-limit bucket than token holders, and the limit is per-IP, so a Worker sharing an egress address with other traffic can be throttled by calls that were not ours. The archive asks callers to identify themselves; this pack sends its own User-Agent.

Data sources

Things worth knowing before you touch this:

  • visit/latest without require_snapshot=true is a trap. It returns the latest visit whatever its outcome, so a repository archived continuously since 2015 answers status: "not_found" because today’s crawl happened to fail — the exact opposite of the question “is this archived”. Reproduced on https://github.com/torvalds/linux on 2026-09-03: visit 479 was not_found while visit 478, the day before, was full. origin_status always sets the flag; if you add an endpoint here, set it too.
  • The origin URL is the key, and it is matched exactly. A trailing slash, a .git suffix or http vs https makes it a different origin with its own visit history. Resolve with origin_search rather than constructing the URL.
  • The origin URL is embedded in the path, unescaped. /origin/https://…/get/ is the documented shape — do not URL-encode it, the API will not find it.
  • Origin endpoints return a bare JSON array, revision endpoints return an object. Anything reading these has to handle both.
  • A 404 means “not archived”, not “bad request”. This pack turns it into an explicit archived: false / error: "revision not archived" so an absence cannot arrive looking like an empty success.

Tools

  • origin_search — Search the Software Heritage archive for archived origins (repository URLs) whose URL matches a substring or pattern. Returns each matching origin with its visit count and the date it was last capture
  • origin_status — Report whether one repository URL is archived, and as of when. Returns the most recent visit that produced a usable snapshot: the visit date, the snapshot id, and the visit type (git, hg, svn, npm, py
  • origin_visits — List the archive’s visit history for one repository URL, newest first: when each capture ran, what it produced, and whether it succeeded (“full”), partially succeeded, or failed (“not_found” — the ori
  • revision — Fetch one archived commit by its Software Heritage revision id (the 40-hex id, which for a git repository is the git commit sha). Returns the commit message, author and committer with their dates, the

Tools

  • origin_search — Search the Software Heritage archive for archived origins (repository URLs) whose URL matches a substring or pattern. Returns each matching origin with its visit count and the date it was last capture
  • origin_status — Report whether one repository URL is archived, and as of when. Returns the most recent visit that produced a usable snapshot: the visit date, the snapshot id, and the visit type (git, hg, svn, npm, py
  • origin_visits — List the archive's visit history for one repository URL, newest first: when each capture ran, what it produced, and whether it succeeded ( full ), partially succeeded, or failed ( not_found — the orig
  • revision — Fetch one archived commit by its Software Heritage revision id (the 40-hex id, which for a git repository is the git commit sha). Returns the commit message, author and committer with their dates, the

Regenerated from source · build September 3, 2026