NestDaddy

CONTENTdm State Archives

io.github.ianderso/contentdm-mcp · v0.1.0

Search US state archives' record images on CONTENTdm; read items, pages and transcripts.

Connect Runs on your machine

Terminal
claude mcp add contentdm-mcp -e CONTENTDM_CACHE_DIR=<CONTENTDM_CACHE_DIR> -e CONTENTDM_TIMEOUT=<CONTENTDM_TIMEOUT> -e CONTENTDM_MIN_INTERVAL=<CONTENTDM_MIN_INTERVAL> -e CONTENTDM_CONTACT=<CONTENTDM_CONTACT> -e CONTENTDM_EXTRA_INSTANCES=<CONTENTDM_EXTRA_INSTANCES> -e CONTENTDM_DOWNLOAD_DIR=<CONTENTDM_DOWNLOAD_DIR> -- uvx contentdm-mcp==0.1.0
claude_desktop_config.json
{
  "mcpServers": {
    "contentdm-mcp": {
      "command": "uvx",
      "args": [
        "contentdm-mcp==0.1.0"
      ],
      "env": {
        "CONTENTDM_CACHE_DIR": "<CONTENTDM_CACHE_DIR>",
        "CONTENTDM_TIMEOUT": "<CONTENTDM_TIMEOUT>",
        "CONTENTDM_MIN_INTERVAL": "<CONTENTDM_MIN_INTERVAL>",
        "CONTENTDM_CONTACT": "<CONTENTDM_CONTACT>",
        "CONTENTDM_EXTRA_INSTANCES": "<CONTENTDM_EXTRA_INSTANCES>",
        "CONTENTDM_DOWNLOAD_DIR": "<CONTENTDM_DOWNLOAD_DIR>"
      }
    }
  }
}
~/.cursor/mcp.json
{
  "mcpServers": {
    "contentdm-mcp": {
      "command": "uvx",
      "args": [
        "contentdm-mcp==0.1.0"
      ],
      "env": {
        "CONTENTDM_CACHE_DIR": "<CONTENTDM_CACHE_DIR>",
        "CONTENTDM_TIMEOUT": "<CONTENTDM_TIMEOUT>",
        "CONTENTDM_MIN_INTERVAL": "<CONTENTDM_MIN_INTERVAL>",
        "CONTENTDM_CONTACT": "<CONTENTDM_CONTACT>",
        "CONTENTDM_EXTRA_INSTANCES": "<CONTENTDM_EXTRA_INSTANCES>",
        "CONTENTDM_DOWNLOAD_DIR": "<CONTENTDM_DOWNLOAD_DIR>"
      }
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "contentdm-mcp": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "contentdm-mcp==0.1.0"
      ],
      "env": {
        "CONTENTDM_CACHE_DIR": "<CONTENTDM_CACHE_DIR>",
        "CONTENTDM_TIMEOUT": "<CONTENTDM_TIMEOUT>",
        "CONTENTDM_MIN_INTERVAL": "<CONTENTDM_MIN_INTERVAL>",
        "CONTENTDM_CONTACT": "<CONTENTDM_CONTACT>",
        "CONTENTDM_EXTRA_INSTANCES": "<CONTENTDM_EXTRA_INSTANCES>",
        "CONTENTDM_DOWNLOAD_DIR": "<CONTENTDM_DOWNLOAD_DIR>"
      }
    }
  }
}

Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.

Tools

This server runs locally, so its tools are listed by your MCP client once it starts.

Environment variables

NameDescription
CONTENTDM_CACHE_DIR
Optional
Directory for the on-disk response cache.
CONTENTDM_TIMEOUT
Optional
HTTP timeout in seconds for one request. Image downloads get 120 s to read.
CONTENTDM_MIN_INTERVAL
Optional
Least seconds between two requests to one site. Never below 0.5.
CONTENTDM_CONTACT
Optional
An email address or URL appended to the User-Agent, so an institution can reach whoever runs the server.
CONTENTDM_EXTRA_INSTANCES
Optional
More CONTENTdm sites a tool may reach, beyond the curated ones and *.contentdm.oclc.org: https base URLs separated by commas, or the absolute path of a YAML file shaped like instances.yaml.
CONTENTDM_DOWNLOAD_DIR
Optional
An existing folder. When set, get_image saves only inside it; needed to save under ~/Library, such as an iCloud Drive folder.

Details

Package[email protected] (PYPI, stdio)
First published6 Oct 2026
Last updated6 Oct 2026
Registry nameio.github.ianderso/contentdm-mcp

More ai and media servers See all

Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.