Dpla について
Dplaは、Digital Public Library of Americaが集約するデジタル資料を検索するMCPサーバーです。研究者や文化資料を調べる人向けに、資料検索、詳細レコード取得、コレクションの探索を提供します。
主な機能
- 01デジタル資料の検索
- 02メタデータと日付による絞り込み
- 03資料レコード全体の取得
- 04コレクションと件数の検索
活用シーン
- 01歴史資料の調査
- 02作者や主題から資料を検索
- 03機関をまたいだコレクションの探索
MCP 対応
資料検索、レコード取得、コレクション探索のツールをMCPクライアントに公開します。ローカルstdioサーバーまたはPipeworxゲートウェイ経由で利用できます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://gateway.pipeworx.io/dpla/mcpclaude mcp add --transport http pipeworx-io-dpla https://gateway.pipeworx.io/dpla/mcp{"mcpServers":{"pipeworx-io-dpla":{"type":"http","url":"https://gateway.pipeworx.io/dpla/mcp"}}}Cursor で開く{"servers":{"pipeworx-io-dpla":{"type":"http","url":"https://gateway.pipeworx.io/dpla/mcp"}}}VS Code で開く{"mcpServers":{"pipeworx-io-dpla":{"type":"http","url":"https://gateway.pipeworx.io/dpla/mcp"}}}{"mcpServers":{"pipeworx-io-dpla":{"serverUrl":"https://gateway.pipeworx.io/dpla/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
@pipeworx/dpla
Digital Public Library of America — 米国議会図書館、国立公文書館、スミソニアン協会、HathiTrust、Internet Archive、さらに数百の州立図書館、大学、歴史協会から集約された、デジタル化済みアイテム約5,000万件を、1回のクエリで検索できます。
Pipeworx の一部です。AI エージェントを1,878以上の稼働中データソースに接続する MCP ゲートウェイです。これは独立した非公式の連携機能であり、上流プロバイダーとの提携、承認、公開を受けたものではありません。
ツール
dpla_search_items(...)— フリーテキスト、タイトル、作成者、提供ハブ、主題、タイプ、名称付きコレクション、または期間で検索します。dpla_item(id)— 元のメタデータを提供機関が記述したまま含む、1件の完全なレコードです。dpla_collections(q | title)— 提供機関内で該当資料を所蔵する名称付きコレクションと、それぞれのアイテム数を返します。
認証
2026-09-18以降、プラットフォーム認証に対応しています。PLATFORM_DPLA_KEY は暗号化された
platform_keys テーブルに保存され(Cloudflare バインディングは不要)、platformKeyEnv は
workers/gateway/src/pack-manifest.json で宣言されているため、呼び出し側での設定は不要です。独自のキーを使用する場合は、_apiKey として渡してください。
キーは無料で、すぐに取得でき、セルフサービスで利用できます。承認もプランも支払いも不要です。
curl -XPOST https://api.dp.la/v2/api_key/<your-email>
DPLA から1、2分以内にキーがメールで届きます。
curl -s https://gateway.pipeworx.io/manifest.json を実行して dpla.platform_key_set を確認し、プラットフォームキーが実際に設定されていることを検証してください。ノートパソコン上のファイルから確認しないでください。
データソース
- https://api.dp.la/v2/items — アイテム検索。
dpla_collectionsは、この同じエンドポイントのsourceResource.collection.titleファセットを使用します。 - https://api.dp.la/v2/items/{id} — 1件のレコードです。
次の担当者が同じ調査を繰り返さなくて済むよう、注意事項を記載します。
/v2/collectionsは現在存在しません(fleet #2249、2026-09-18)。DPLA の API が提供するルートは正確に3つです。GET /v2/items、GET /v2/items/{id}、POST /v2/api_key/{email}(ソース:github.com/dpla/dpla-apiのsrc/index.ts)。api.dp.la/v2/collectionsは、有効なキーを指定しても404 The requested resource could not be foundを返します。キーを指定しなくても同じレスポンスです。このパックの以前のバージョンは、有効なキーを使って実行されたことがなかったため、この404を「キーが無効」と誤認していました。現在、名称付きコレクションを取得できるのは、アイテム検索のsourceResource.collection.titleファセット(facets=sourceResource.collection.title、facet_sizeは最大2,000)のみです。dpla_collectionsはこれを基にしています。- DPLA からの404がキーの問題であることはありません。 キーが未設定の場合と誤ったキーの場合では、同じ403と同じレスポンス本文(
{"error":"invalid_api_key","message":"Invalid or inactive API key."})が返されます。これは他のパラメーターの検証よりも前に確認されます。そのため、403からはクエリの残りの部分が正しい形式かどうかは分かりません。404は、キーではなくパスが存在しないことを示します。エラーレスポンスを読むのではなく、キーを指定して/v2/itemsを呼び出し、キーを検証してください。 page_size=0を指定してもドキュメントは抑制されません。DPLA のデフォルトページにフォールバックするため、dpla_collectionsはドキュメントを1件取得して無視します。- フィルターはフラットな名前ではなく、レコード内のドット区切りパスです。
sourceResource.title、sourceResource.creator、provider.name、sourceResource.subject.name、sourceResource.collection.title、sourceResource.date.after。 - フィールドの値は、ある提供機関のレコードでは文字列、別の提供機関のレコードでは配列です。 DPLA は数百の異なる機関が作成したメタデータを集約しており、値の個数を正規化しません。このパックの
list()/one()はどちらにも対応しています。d.sourceResource.creator[0]を直接読み取るコードは、一部の提供機関のレコードで動作しません。sourceResource.collectionはtitle(nameではありません)を持つオブジェクトなので、専用のcollectionTitles()リーダーがあります。 isShownAtは所蔵機関のサイトにあるオブジェクトへのリンクです。DPLA が説明を保持し、オブジェクトは機関が保持します。
クイックスタート
MCP クライアント(Claude Desktop、Cursor、Windsurf など)に追加します。
{
"mcpServers": {
"dpla": {
"url": "https://gateway.pipeworx.io/dpla/mcp"
}
}
}
このエンドポイントが実際に提供するもの
https://gateway.pipeworx.io/dpla/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 も、同じゲートウェイと同じ 1878 以上のデータソースに接続します。異なるのは、どのパックのツールが直接一覧表示されるかだけです。どちらからでも、ask_pipeworx を使ってすべてのツールにアクセスできます。
MCP クライアントをお持ちでない場合は、HTTP 経由で呼び出せます
curl -X POST https://gateway.pipeworx.io/v1/tools/dpla_search_items \
-H 'Content-Type: application/json' \
-d '{"q":"Dust Bowl","limit":10}'
最初の呼び出しにアカウントは必要ありません。任意のツールを確認するには、GET https://gateway.pipeworx.io/v1/tools/dpla_search_items を実行します。ツールを探すには、{"query":"..."} を指定して POST https://gateway.pipeworx.io/v1/tools/search_packs を実行します。
スタンドアロン(ゲートウェイアカウント不要)
このパッケージは、ローカルの stdio MCP サーバーとしても動作します。Pipeworx アカウントも、ゲートウェイとの往復通信も必要ありません。
{
"mcpServers": {
"dpla": {
"command": "npx",
"args": ["-y", "@pipeworx/mcp-dpla"]
}
}
}
または、直接実行して起動することを確認できます。
npx -y @pipeworx/mcp-dpla
stdin/stdout 経由で MCP と通信し、このパックのツールのみを対象に initialize/tools/list/tools/call に応答します。上記のゲートウェイ接続で追加される共有メタツールは含まれません。同じソース、同じツールで、ask_pipeworx によるルーティングはありません。
ask_pipeworx の使用
ツールを直接呼び出す代わりに、平易な英語で質問できます。これは上記のパックエンドポイントでも、完全なゲートウェイでも利用できます。
ask_pipeworx({ question: "your question about Dpla data" })
ゲートウェイが適切なツールを選び、引数を自動的に設定します。
詳細
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。