Cleveland Art
liveArtMediaCleveland Museum of Art Open Access — ~63k artworks, many CC0. Keyless.
Tools
searchSearch artworks. Optional filters: type, artist, has_image, cc0.
queryoptstring—typeoptstring—artistoptstring—has_imageoptboolean—cc0optboolean—limitoptnumber—skipoptnumber—Try it
get_artworkrequired: idSingle artwork by accession number (e.g. "1962.158") or numeric id.
idreqstring—Try it
creatorsCleveland Museum of Art Open Access API — search the museum's creator records, the artists and makers behind works in the CMA collection, by name. Returns each creator's CMA id, name, role, biographic
queryoptstring—limitoptnumber—Try it
exhibitionsCleveland Museum of Art Open Access API — search the museum's exhibition history by title keyword. Returns each exhibition's CMA id, title, opening and closing dates and venue, covering shows mounted
queryoptstring—limitoptnumber—Try it
Test with curl
The gateway speaks JSON-RPC 2.0 over HTTP POST. You can test any pack directly from the terminal.
curl -X POST https://gateway.pipeworx.io/clevelandart/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'curl -X POST https://gateway.pipeworx.io/clevelandart/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"search","arguments":{}}}'Use with the SDK
Install @pipeworx/sdk to call tools from any TypeScript/Node project.
import { Pipeworx } from '@pipeworx/sdk';
const px = new Pipeworx();
const result = await px.call("search", {});// Or ask in plain English:
const answer = await px.ask("cleveland museum of art open access — ~63k artworks, many cc0");