Northwestern University Libraries Digital Collections API

io.github.nulib由 GitHub 账号 nulib 发布v2.12.0更新于 Oct 29, 2026

Agent integration with the Northwestern University Libraries Digital Collections API

已验证Streamable HTTP可网页运行网页搜索与抓取知识与记忆

概览

AI 生成的概览

让助手检索和浏览西北大学图书馆数字馆藏,获取作品元数据、馆藏集合与 IIIF 清单。

可以做什么
  • 按字段值或自然语言检索作品,字段值可作为附加约束
  • 按 ID 获取单件作品的完整元数据,并列出可用的馆藏集合
  • 基于语义嵌入查找与某件作品相似的作品
  • 以 IIIF 清单形式查看作品、集合,以及已保存的检索结果和相似结果,供兼容查看器显示
适用场景
适合需要助手探索西北大学图书馆数字化资料的场景:查找某主题的作品、获取编目元数据、浏览馆藏集合,或寻找视觉或语义上相似的作品。
运行要求
可作为托管远程端点通过 streamable HTTP 直接连接,无需本地安装;也可从 npm 包或容器镜像在本地运行。本地开发需要 Node.js 24+ 和 mise;可选环境变量 DC_API_BASE、DC_IIIF_BASE 与 SECRETS_PATH 可覆盖默认值。未声明需要身份验证。
安装前请注意
对公开图书馆目录的只读访问,默认不索取凭据。本地配置提到用于 AWS Secrets Manager 配置的 SECRETS_PATH 变量,设置前请确认该路径会暴露哪些内容。检索词与作品 ID 会发送至西北大学图书馆的 API。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Northwestern University Libraries Digital Collections API,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.nulib%2Fdc-api/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "northwestern-university-libraries-digita": {
      "type": "http",
      "url": "https://api.dc.library.northwestern.edu/api/v2/mcp"
    }
  }
}

README

dc-api-mcp

A Model Context Protocol (MCP) server that exposes Northwestern University Library's Digital Collections as tools for AI assistants. It provides tools for searching, browsing, and retrieving metadata and IIIF manifests for digitized library materials.

Available Tools

ToolDescription
searchSearch for works using field-based and/or natural language queries
similarity-searchFind works visually or semantically similar to a given work
get-workRetrieve full metadata for a single work by ID
view-workView a work's IIIF manifest for display in compatible viewers
list-collectionsList available digital collections
view-collectionBrowse a specific collection's IIIF manifest
view-search-resultsRetrieve results from a previous search
view-similar-worksRetrieve results from a previous similarity search

Using the Remote Endpoint

The server is available as a hosted remote at:

https://api.dc.library.northwestern.edu/api/v2/mcp

No local installation is required. Configure your MCP client to connect to this URL using the streamable HTTP transport.

Claude Desktop

Add the following to your Claude Desktop configuration file.

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json

json
{  "mcpServers": {    "dc-api": {      "type": "http",      "url": "https://api.dc.library.northwestern.edu/api/v2/mcp"    }  }}

Claude Code

bash
claude mcp add --transport http dc-api https://api.dc.library.northwestern.edu/api/v2/mcp

Development

Requirements

  • Node.js 24+ (see .tool-versions)
  • mise (used by bin/run.sh to activate the correct runtime)

Setup

bash
npm install

Configuration

The server reads the following environment variables:

VariableDefaultDescription
DC_API_BASEhttps://api.dc.library.northwestern.edu/api/v2Base URL for the Digital Collections API
DC_IIIF_BASEhttps://iiif.dc.library.northwestern.edu/iiif/3Base URL for the IIIF server
SECRETS_PATH(none)Base path for AWS Secrets Manager config

Running locally

stdio (for Claude Desktop / Claude Code)
bash
bun run stdio

Or via the wrapper script (activates the correct Node.js version via mise):

bash
bin/run.sh
HTTP (Streamable HTTP transport, port 3000)
bash
bun run http

Configuring Claude Desktop (local build)

json
{  "mcpServers": {    "dc-api": {      "command": "/path/to/dc-api-v2/mcp/bin/run.sh"    }  }}

Replace /path/to/dc-api-v2/mcp with the absolute path to this directory. Restart Claude Desktop after editing.

Tests

CommandResult
bun run testRun the test suite
bun test:watchRun the test suite, watching for changes
bun test:coverageRun the test suite and calculate coverage
bun test:recordRun the test suite against live data and record new fixtures
  • By default, the test suite uses pre-recorded HTTP fixtures. Set MSW_MODE=live to run against live data.
  • bun test:record records new fixtures (requires mitmproxy: pip install mitmproxy).

来源:mcp/README.md,提交 56b4d99

工具

8

get-work

Get Work

Retrieve the full metadata for a work from the NUL Digital Collections.

输入参数work_id必填

list-collections

List Collections

List collection records from the NUL Digital Collections.

输入参数pagemax_resultspublic_only

view-work

View Work

View a work from the NUL Digital Collections in an interactive viewer.

输入参数work_id必填

view-collection

View Collection

View a collection from the NUL Digital Collections in an interactive viewer.

输入参数collection_id必填

view-search-results

View Search Results

View results from the search-works tool in an interactive viewer.

输入参数pagequeryfieldsmax_resultspublic_only

view-similar-works

View Similar Works

View results from the similarity-search tool in an interactive viewer.

输入参数pagework_id必填max_resultspublic_only

版本历史

2
  1. v2.12.0最新Oct 29, 2026
  2. v2.11.15Sep 16, 2026

评分

已满足适用检查项的 90%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

    请在仓库或注册中心条目中声明许可证。