Northwestern Digital Collections API MCP Server
Agent integration with the Northwestern University Libraries Digital Collections API
Documentation
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
| Tool | Description |
|---|---|
search | Search for works using field-based and/or natural language queries |
similarity-search | Find works visually or semantically similar to a given work |
get-work | Retrieve full metadata for a single work by ID |
view-work | View a work's IIIF manifest for display in compatible viewers |
list-collections | List available digital collections |
view-collection | Browse a specific collection's IIIF manifest |
view-search-results | Retrieve results from a previous search |
view-similar-works | Retrieve 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.shto activate the correct runtime)
Setup
npm install
Configuration
The server reads the following environment variables:
| Variable | Default | Description |
|---|---|---|
DC_API_BASE | https://api.dc.library.northwestern.edu/api/v2 | Base URL for the Digital Collections API |
DC_IIIF_BASE | https://iiif.dc.library.northwestern.edu/iiif/3 | Base URL for the IIIF server |
SECRETS_PATH | (none) | Base path for AWS Secrets Manager config |
Running locally
stdio (for Claude Desktop / Claude Code)
bun run stdio
Or via the wrapper script (activates the correct Node.js version via mise):
bin/run.sh
HTTP (Streamable HTTP transport, port 3000)
bun 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
| Command | Result |
|---|---|
bun run test | Run the test suite |
bun test:watch | Run the test suite, watching for changes |
bun test:coverage | Run the test suite and calculate coverage |
bun test:record | Run the test suite against live data and record new fixtures |
- By default, the test suite uses pre-recorded HTTP fixtures. Set
MSW_MODE=liveto run against live data. bun test:recordrecords new fixtures (requiresmitmproxy:pip install mitmproxy).