@cyanheads/smithsonian-mcp-server

v0.1.4 pre-1.0

Search and explore 19.4 million Smithsonian Open Access museum objects, retrieve CC0 media, and discover cross-collection connections via MCP.

@cyanheads/smithsonian-mcp-server
claude mcp add --transport http smithsonian-mcp-server https://smithsonian.caseyjhand.com/mcp
codex mcp add smithsonian-mcp-server --url https://smithsonian.caseyjhand.com/mcp
{
  "mcpServers": {
    "smithsonian-mcp-server": {
      "url": "https://smithsonian.caseyjhand.com/mcp"
    }
  }
}
gemini mcp add --transport http smithsonian-mcp-server https://smithsonian.caseyjhand.com/mcp
{
  "mcpServers": {
    "smithsonian-mcp-server": {
      "command": "bunx",
      "args": [
        "@cyanheads/smithsonian-mcp-server@latest"
      ]
    }
  }
}
{
  "mcpServers": {
    "smithsonian-mcp-server": {
      "type": "http",
      "url": "https://smithsonian.caseyjhand.com/mcp"
    }
  }
}
curl -X POST https://smithsonian.caseyjhand.com/mcp \
  -H "Content-Type: application/json" \
  -H "MCP-Protocol-Version: 2025-11-25" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"curl","version":"1.0.0"}}}'

Tools

5

smithsonian_get_object

open-world

Fetch the full catalog record for a Smithsonian object by its record_id (from smithsonian_search results). Returns all available metadata: title, dates, materials, dimensions, provenance, exhibition history, credit line, accession identifiers, and a media summary. Call smithsonian_get_media for full image URLs. Use record_id values from smithsonian_search — do not manually construct IDs.

read
invocation
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "smithsonian_get_object",
    "arguments": {
      "id": "<id>"
    }
  }
}
schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Object record_id from smithsonian_search results (e.g. \"nasm_A19670093000\")."
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}
view source ↗

smithsonian_get_media

open-world

Return all available CC0 images for a Smithsonian object at multiple resolutions. Only CC0 (open access) images are returned — throws Forbidden when an object has media but none of it is CC0. Each image entry includes thumbnail (~120px), screen-size (~800px), and high-resolution JPEG/TIFF URLs with pixel dimensions. Use smithsonian_search with filters.cc0_only to find CC0 objects before calling this tool.

read
invocation
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "smithsonian_get_media",
    "arguments": {
      "id": "<id>"
    }
  }
}
schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "record_id of the object (e.g. \"nasm_A19670093000\") from smithsonian_search or smithsonian_get_object."
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}
view source ↗

smithsonian_explore

open-world

Browse Smithsonian collections by category to answer "what does the Smithsonian have about X?" questions. Constructs and executes a category-constrained search, then returns an overview: total count, a curated set of sample objects, and a breakdown of which museums hold matching objects. Four browse modes: museum (by unit code or name), culture (by culture term), period (by decade), medium (by object type). Use as the entry point for open-ended research.

read
invocation
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "smithsonian_explore",
    "arguments": {
      "mode": "<mode>",
      "value": "<value>"
    }
  }
}
schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "mode": {
      "type": "string",
      "enum": [
        "museum",
        "culture",
        "period",
        "medium"
      ],
      "description": "Browse dimension: \"museum\" (by unit code/name), \"culture\" (by culture term), \"period\" (by decade like \"1940s\"), \"medium\" (by object type like \"Painting\")."
    },
    "value": {
      "type": "string",
      "description": "Category value appropriate to the mode. museum: unit code (\"NMNH\") or full name (\"National Museum of Natural History\"). culture: term (\"Aztec\", \"Sioux\"). period: decade (\"1940s\", \"1860s\"). medium: object type (\"Painting\", \"Aircraft\", \"Fossil\")."
    },
    "rows": {
      "default": 10,
      "description": "Number of sample objects to return (default 10, max 50).",
      "type": "integer",
      "minimum": 1,
      "maximum": 50
    }
  },
  "required": [
    "mode",
    "value",
    "rows"
  ],
  "additionalProperties": false
}
view source ↗