artsmia-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@artsmia-mcp find me Impressionist paintings on view on floor 2"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
artsmia-mcp
Model Context Protocol (MCP) server, CLI toolkit, and API library for the Minneapolis Institute of Art (Mia) collection (search.artsmia.org).
Search over 90,000 artworks, fetch high-resolution images, explore gallery locations, look up artists and historical constituents, and query collection highlights.
Features
🏛️ Full Collection Search: Elasticsearch queries across titles, artists, descriptions, provenance, curatorial text, dates, cultures, and departments.
🖼️ High-Res Imagery: Automatic link resolution for 400px, 600px, 800px, and full-resolution uncompressed master images on Mia's CDN (
1.api.artsmia.org).📍 Gallery Locations & On-View Filter: Discover artworks physically on view on floors 1, 2, or 3, or query specific galleries (e.g.,
G355).🎲 Random Art Exploration: Fetch random collection pieces, optionally filtered by gallery floor, genre, or artist.
⭐ Curated Highlights: Access Mia's permanent masterwork collection highlights.
👤 Artist & Constituent Bios: Retrieve artist metadata, Wikidata IDs, Wikipedia links, and cross-museum identifiers (Art Institute of Chicago, MoMA, SAAM).
🤖 MCP Protocol Support: 7 tools, 2 resource templates (
artsmia://highlights,artsmia://random,artsmia://artwork/{id}), and 2 guided prompts (curate_tour,artwork_critique).💻 Dual Mode: Runs as a standard stdio MCP server or as a standalone CLI.
Related MCP server: Museum MCP Server
Installation
Run with npx (No installation needed)
npx artsmia-mcpGlobal Installation
npm install -g artsmia-mcpMCP Client Configuration
Claude Desktop
Add this to your claude_desktop_config.json:
macOS / Linux
{
"mcpServers": {
"artsmia": {
"command": "npx",
"args": ["-y", "artsmia-mcp"]
}
}
}Windows
{
"mcpServers": {
"artsmia": {
"command": "cmd.exe",
"args": ["/c", "npx -y artsmia-mcp"]
}
}
}Cursor (.cursor/mcp.json)
{
"mcpServers": {
"artsmia": {
"command": "npx",
"args": ["-y", "artsmia-mcp"]
}
}
}MCP Tools Reference
Tool Name | Description | Key Arguments |
| Search artworks with Elasticsearch syntax, filters, and pagination |
|
| Retrieve complete metadata and high-res image links by object ID |
|
| Retrieve multiple artworks by list of IDs in a single batch |
|
| Retrieve random artworks, optionally filtered by query/floor |
|
| Discover masterworks and curated collection highlights |
|
| Find artworks on physical exhibition in museum galleries |
|
| Look up artist constituent information, Wikidata, and museum IDs |
|
CLI Usage
Search Artworks
# Search for artist or title
artsmia search "Claude Monet"
# Search with Elasticsearch query syntax
artsmia search "classification:Paintings AND country:Japan"
# Output raw JSON
artsmia search "Vincent van Gogh" --jsonInspect an Artwork
artsmia get 10436Batch Lookup
artsmia batch 10436,1218,1413Random Art
artsmia random
artsmia random --query="room:G3*" --size=3Highlights & On-View
artsmia highlights --size=5
artsmia on-view --room=G355
artsmia on-view --floor=3Person / Artist Constituent
artsmia person 1Programmatic Library Usage
You can also import artsmia-mcp directly in Node.js or TypeScript:
import {
searchArtworks,
getArtworkById,
getRandomArt,
searchHighlights
} from "artsmia-mcp";
// Search artworks
const results = await searchArtworks({ query: "Monet", size: 5 });
for (const hit of results.hits.hits) {
console.log(hit._source.title, hit._source.image_urls?.large);
}
// Get specific artwork with resolved images
const artwork = await getArtworkById(10436);
console.log(artwork?.title, artwork?.image_urls?.full);Testing & Quality Assurance
The codebase includes a full test suite with 100% unit and integration test coverage across all tools, CLI flags, error paths, and resource handlers:
npm test
npm run test -- --coverageLicense
MIT © Amin
Available Tools
7 toolsget_artworkA
Get complete curatorial metadata, physical dimensions, medium, provenance, labels, and direct high-resolution image links for a specific artwork by its Mia object ID.
Inputs: id (required).
get_artworks_batchC
Fetch multiple artworks by a list of object IDs in a single request.
Inputs: ids (required).
get_on_view_artworksA
Find artworks currently on physical exhibition in the museum galleries. Filter by specific gallery room code (e.g., 'G355') or museum floor (1, 2, or 3).
Inputs: from, room, size, floor.
get_personA
Look up artist or constituent information by ID, including Wikidata identifier, Wikipedia biography link, and IDs in other major museums (Art Institute of Chicago, MoMA, SAAM).
Inputs: id (required).
get_random_artworkA
Retrieve one or more random artworks from the Minneapolis Institute of Art, optionally filtered by gallery floor/room, artist, medium, or custom query.
Inputs: size, query.
search_artworksA
Search the Minneapolis Institute of Art (Mia) collection of over 90,000 artworks. Supports Elasticsearch query syntax, field filters (e.g. artist:"Claude Monet", classification:"Paintings", country:"Japan", room:"G355", rights_type:"Public Domain"), pagination (size, from), and sorting.
Inputs: query (required), from, size, sort.
search_highlightsC
Discover famous masterworks and curated highlight pieces in the Minneapolis Institute of Art permanent collection.
Inputs: from, size, query.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 7 tools
Most tools have clearly distinct purposes: search vs. random vs. highlights vs. on-view vs. person lookup. The only potential confusion is between search_artworks and search_highlights, but their descriptions clarify that one searches the full collection and the other surfaces curated highlights.
All tool names follow a consistent snake_case verb_noun pattern (search_artworks, get_artwork, get_person, etc.). The one compound name, get_on_view_artworks, still fits the established convention.
Seven tools is well-scoped for a museum collection server. Each tool earns its place, covering search, retrieval, batch retrieval, random discovery, highlights, on-view browsing, and person lookup without unnecessary bloat.
For a read-only museum collection API, the surface is complete: full-text search, individual and batch lookup, random exploration, highlights, current exhibitions, and artist metadata. There are no obvious dead ends for typical collection-browsing workflows.
Maintenance
Related MCP Connectors
Search the Art Institute of Chicago collection: artworks, artists, exhibitions, and audio guides.
Art Institute of Chicago MCP — wraps the ARTIC public API (free, no auth)
Unlock a world of art with the Met Museum MCP! Use the 'search_artworks' API to find stunning
Search 497,000+ public domain paintings, prints and drawings from 72 museums, with museum records.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables querying the Cleveland Museum of Art's open access API to search artworks by filters like type, artist, and CC0 status, retrieve details by accession number, find creators, and explore exhibitions.304 npm1MIT
- AlicenseBqualityDmaintenanceEnables AI agents to search and explore over 570,000 artworks from the Metropolitan Museum of Art and Art Institute of Chicago without needing an API key.92MIT
- AlicenseNot gradedqualityBmaintenanceEnables searching the Metropolitan Museum of Art collection by subject, artist, or keyword, retrieving detailed artwork information, and listing curatorial departments via natural language.145 npm3MIT
- AlicenseNot gradedqualityBmaintenanceEnables searching artworks, artists, and exhibitions from the Art Institute of Chicago collection via natural language, returning detailed artwork information, artist biographies, and exhibition status through the ARTIC public API.135 npmMIT