Softwareheritage について
Softwareheritage は、Software Heritage の公開ソースコードアーカイブを調べる開発者やアーカイブ研究者向けの MCP サーバーです。リポジトリの保存状況と履歴を確認し、永続 ID で保存済みコミットを取得できます。
主な機能
- 01URL の一部で保存済みリポジトリを検索
- 02直近の成功した保存を確認
- 03保存履歴と結果を確認
- 04ID または 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 エージェントを 1683 以上の稼働中のデータソースに接続する MCP ゲートウェイです。
ツール
origin_search(query, limit?, with_visit?)— URL に部分一致する、アーカイブ済みのオリジンを検索します。「このプロジェクトはアーカイブにあるか、どの URL で収録されているか」という質問に答えます。アーカイブではすべてをオリジン URL で識別するため、ほかの操作の前に確認する必要があります。origin_status(url)— スナップショットを実際に生成した、あるリポジトリの最新の収録情報(日付、スナップショット ID、訪問タイプ)を取得します。「このコードは安全か、いつ時点のものか」という質問に答えます。origin_visits(url, limit?)— あるリポジトリの収録履歴を新しい順に取得し、各訪問の結果を表示します。「どのくらい継続してアーカイブされているか」という質問に答え、これまで一度もアーカイブされていないリポジトリと、何年もアーカイブされていたものの現在は到達できないリポジトリを区別できます。revision(id)— 40 桁の 16 進数 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}/ — 1 件のコミットです。
利用前に知っておくべき点:
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の違いによって別のオリジンとなり、それぞれ固有の訪問履歴を持ちます。URL を組み立てるのではなく、origin_searchで特定してください。 - オリジン URL はパス内にエスケープされずに埋め込まれます。
/origin/https://…/get/が文書化された形式です。URL エンコードしないでください。API が見つけられなくなります。 - **オリジンのエンドポイントは JSON 配列をそのまま返し、**リビジョンのエンドポイントはオブジェクトを返します。これらを読み取る処理では、両方に対応する必要があります。
- 404 は「未アーカイブ」を意味し、「不正なリクエスト」ではありません。 このパックは 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 を通じて回答できます。そのため、2つ目の 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 サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。