Northwestern Digital Collections API MCP

Agent integration with the Northwestern University Libraries Digital Collections API

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

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

Claude Code

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

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)

npm run stdio

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

bin/run.sh

HTTP (Streamable HTTP transport, port 3000)

npm run http

Configuring Claude Desktop (local build)

{
  "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
npm run testRun the test suite
npm test:watchRun the test suite, watching for changes
npm test:coverageRun the test suite and calculate coverage
npm 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.
  • npm test:record records new fixtures (requires mitmproxy: pip install mitmproxy).

Related Servers

NotebookLM Web Importer

Import web pages and YouTube videos to NotebookLM with one click. Trusted by 200,000+ users.

Install Chrome Extension