关于 Dpla
Dpla 是用于检索美国数字公共图书馆汇集的数字化藏品的 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 万件数字化资料,可通过一次查询进行检索。
本项目是 Pipeworx 的一部分——一个将 AI Agent 连接到 1,878 个以上实时数据源的 MCP 网关。这是一项独立的非官方集成,与上游提供方无关联、未获其认可,也未由其发布。
工具
dpla_search_items(...)— 按自由文本、标题、创作者、贡献方聚合平台、主题、类型、命名馆藏或日期范围搜索。dpla_item(id)— 获取一条完整记录,包括贡献机构编写的原始来源元数据。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 会在一两分钟内通过电子邮件发送密钥。
通过 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} — 获取一条记录。
以下注意事项可避免后来者重复踩坑:
/v2/collections已不存在(fleet #2249,2026-09-18)。DPLA 的 API 仅提供三个路由——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会请求一条文档并忽略它。- 筛选器是指向记录的点分路径,而不是扁平名称:
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":"..."} 向 https://gateway.pipeworx.io/v1/tools/search_packs 发送 POST 请求。
独立运行(无需网关账户)
此软件包也可以作为本地 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 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。