mcpField
D
Dpla

Dpla

远程服务
pipeworx.io搜索与检索03 天前更新

关于 Dpla

Dpla 是用于检索美国数字公共图书馆汇集的数字化藏品的 MCP 服务,适合研究者及文化资料探索者。它支持搜索藏品、获取完整记录和发现馆藏。

主要功能

  1. 01搜索数字化藏品
  2. 02按元数据和日期筛选
  3. 03获取完整藏品记录
  4. 04查找馆藏及藏品数量

适用场景

  1. 01研究历史资料
  2. 02按创作者或主题查找藏品
  3. 03探索不同机构的馆藏

MCP 相关

向 MCP 客户端提供藏品搜索、记录获取和馆藏发现工具。可作为本地 stdio 服务运行,也可通过 Pipeworx 网关使用。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://gateway.pipeworx.io/dpla/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;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,不要通过笔记本电脑上的文件来验证。

数据源

以下注意事项可避免后来者重复踩坑:

  • /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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。