protogrid

Search / io.github.nulib/dc-api

Northwestern University Libraries Digital Collections API

R0· no sign-in

Agent integration with the Northwestern University Libraries Digital Collections API

v2.11.15 · active · repository · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality97strong
Trust90of 100
Uptime, 30 days100%
Latency p50352 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "dc-api": {
      "type": "http",
      "url": "https://api.dc.library.northwestern.edu/api/v2/mcp"
    }
  }
}
claude mcp add --transport http dc-api https://api.dc.library.northwestern.edu/api/v2/mcp
[mcp_servers.dc-api]
url = "https://api.dc.library.northwestern.edu/api/v2/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "dc-api": {
      "type": "remote",
      "url": "https://api.dc.library.northwestern.edu/api/v2/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "dc-api": {
      "type": "http",
      "url": "https://api.dc.library.northwestern.edu/api/v2/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=dc-api&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vYXBpLmRjLmxpYnJhcnkubm9ydGh3ZXN0ZXJuLmVkdS9hcGkvdjIvbWNwIn0%3D"
}
{
  "servers": {
    "dc-api": {
      "type": "http",
      "url": "https://api.dc.library.northwestern.edu/api/v2/mcp"
    }
  }
}
{
  "mcpServers": {
    "dc-api": {
      "httpUrl": "https://api.dc.library.northwestern.edu/api/v2/mcp"
    }
  }
}
extensions:
  "dc-api":
    enabled: true
    name: "dc-api"
    type: streamable_http
    uri: "https://api.dc.library.northwestern.edu/api/v2/mcp"
    timeout: 300

Quality 97 / 100strong

protocol100 · weight 25
  • pass
    protocol.modernsupports 2026-07-28 (server/discover)
  • pass
    protocol.statelessanswers without a session
  • pass
    protocol.transportstreamable HTTP
  • pass
    protocol.list_ttltool list is cacheable (ttlMs 3600000)
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene100 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations8 of 8 tools declare readOnlyHint or destructiveHint
  • pass
    tools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
  • pass
    tools.token_costabout 3,422 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability100 · weight 15
  • pass
    stability.changesno tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependencies83 · weight 15
  • warn
    deps.known_vulns3 advisories of lower severity or without a published fix: GHSA-j965-2qgj-vjmq in [email protected] (indirect, no fix yet), GHSA-hp3w-g68c-fv3c in [email protected] (indirect, no fix yet), GHSA-w5hq-g745-h8pq in [email protected] (indirect, fixed in 11.1.1)
  • pass
    deps.mcp_sdk_version@modelcontextprotocol/server 2.1.0, no known advisory
  • pass
    deps.resolvable@nulib/[email protected] resolved: 143 packages

8 tools, about 3,422 tokens to load them all · tool set 2f8f4eea92ba · checked 2026-10-19 15:48 UTC

Tool changes

No tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 90 / 100

provenance80
liveness100
freshness85
hygiene95

+repository +namespace-matches-repo +reachable +uptime-100% ~updated-35d-ago -unpinned-packages(1)

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Dependencies

@nulib/[email protected] npm142 dependencies, resolved · MCP SDK @modelcontextprotocol/server 2.1.0 · advisories checked 2026-10-19

advisoryseveritypackagefixed in
GHSA-w5hq-g745-h8pquuid: Missing buffer bounds check in v3/v5/v6 when buf is providedmoderate[email protected]indirectfixed in 11.1.1
GHSA-hp3w-g68c-fv3csprintf-js vulnerable to denial of service through unbounded precision specifiersmoderate[email protected]indirectno fix yet
GHSA-j965-2qgj-vjmqJavaScript SDK v2 users should add validation to the region parameter value in or migrate to v3low[email protected]indirectno fix yet

Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0. The graph is what a clean install of this version resolves today; nothing was installed or run. How it is checked.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://api.dc.library.northwestern.edu/api/v2/mcp streamable-httpnoneyes100%352 ms2026-07-282026-10-19
packageregistryversionruntimesecrets
@nulib/dc-api-mcpnpm2.11.15–
ghcr.io/nulib/dc-api-mcp:2.11.15ociunpinned–

Tools (8)

get-workread-onlyRetrieve the full metadata for a work from the NUL Digital Collections.
list-collectionsread-onlyList collection records from the NUL Digital Collections.
searchread-onlySearch for works in the Digital Collections using field-based and/or natural language queries. If both a natural language query and specific field values are provided, the natural language query will take priority, using the specified field values as additional constraints. The result will also include a list of aggregations that show how many results match different values for certain fields. For example, you could see how many results match each collection, work type, or visibility and use that information to refine your search. Perform an empty search to retrieve all works and their aggregations. NOTE: Structured field values enclosed in double quotes will be treated as exact, case-sensitive matches, while unquoted values will be treated as full-text searches.
similarity-searchread-onlyFind works that are similar to a given work. Uses semantic similarity based on work embeddings.
view-collectionread-onlyView a collection from the NUL Digital Collections in an interactive viewer.
view-search-resultsread-onlyView results from the search-works tool in an interactive viewer.
view-similar-worksread-onlyView results from the similarity-search tool in an interactive viewer.
view-workread-onlyView a work from the NUL Digital Collections in an interactive viewer.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "io.github.nulib/dc-api",
  "title": "Northwestern University Libraries Digital Collections API",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://api.dc.library.northwestern.edu/api/v2/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "2.11.15",
  "packages": [
    {
      "version": "2.11.15",
      "transport": {
        "type": "stdio"
      },
      "identifier": "@nulib/dc-api-mcp",
      "registryType": "npm"
    },
    {
      "transport": {
        "type": "stdio"
      },
      "identifier": "ghcr.io/nulib/dc-api-mcp:2.11.15",
      "registryType": "oci"
    }
  ],
  "repository": {
    "url": "https://github.com/nulib/dc-api-v2",
    "source": "github",
    "subfolder": "mcp"
  },
  "description": "Agent integration with the Northwestern University Libraries Digital Collections API"
}