Skip to content

Releases: cyanheads/met-museum-mcp-server

v0.2.5: content[] field completeness and tightened tool descriptions

Choose a tag to compare

@cyanheads cyanheads released this 17 Jul 05:03
v0.2.5
47d66d3

content[] field completeness and tightened tool descriptions

Every met_get_object and met_search_collections output field now renders in content[]; all three tools moved to descriptive voice.

Changed:

  • Tool and field descriptions across all three tools moved to descriptive voice — dropped imperative coaching and internal mechanics (#8).
  • Corrected stale claims: met_list_departments "fetched live on each call" and docs/design.md "no pagination on search results".

Fixed:

  • met_get_object format() renders every field with an em-dash placeholder for empty/null/false values, and "Failed fetches: none" for an empty batch (#10).
  • met_search_collections marks a non-truncated page (complete).

35 tests pass; bun run devcheck clean.

CHANGELOG v0.2.5

v0.2.4: met_search_collections pagination, validation, and fail-fast timeout

Choose a tag to compare

@cyanheads cyanheads released this 17 Jul 01:32
v0.2.4
a5b46f7

met_search_collections pagination, validation, and fail-fast timeout

Offset paging and departmentId validation land alongside two bug fixes for the same tool.

Added:

  • offset pagination — nextOffset/remaining outputs; each page re-runs the upstream search and slices locally (#9)
  • departmentId validation — unrecognized IDs throw invalid_department, pointing to met_list_departments (#7)

Fixed:

  • invalid_date_range now carries the recovery hint on both throw sites (#6)
  • Broad met_search_collections queries fail fast with search_timeout (~10s) instead of retrying a deterministic timeout to exhaustion (~48s) (#11)

34 tests pass; bun run devcheck clean.

CHANGELOG v0.2.4

v0.2.3: met_get_object order fix, mcp-ts-core ^0.10.14 maintenance

Choose a tag to compare

@cyanheads cyanheads released this 17 Jul 00:35
v0.2.3
3ae451f

met_get_object order fix, mcp-ts-core ^0.10.14 maintenance

Batch results now preserve request order; adopts the framework's Socket install scanner and a release-age hold.

Fixed:

  • met_get_object (#5): objects[]/failed[] preserve the caller's objectIDs order — an index-addressed cursor replaces the completion-ordered push into a shared array.

Changed:

  • Supply-chain hardening: Socket install scanner (bunfig.toml [install.security]) and a 3-day minimumReleaseAge hold on new package versions, excluding @cyanheads/mcp-ts-core.
  • TypeScript 6 (^5.9.3^6.0.3).
  • Docker: oven/bun:1.3.14 pin, BuildKit cache mounts, --ignore-scripts on the build-stage install.
  • New .github/SECURITY.md, .gitattributes, .github/FUNDING.yml.

Dependency bumps:

  • @cyanheads/mcp-ts-core ^0.10.9 → ^0.10.14
  • typescript ^5.9.3 → ^6.0.3
  • @biomejs/biome ^2.5.0 → ^2.5.3
  • @types/node ^26.0.0 → ^26.1.1
  • ignore ^7.0.5 → ^7.0.6
  • tsc-alias ^1.8.17 → ^1.9.1
  • vitest ^4.1.9 → ^4.1.10

19 tests pass; bun run devcheck clean.

CHANGELOG v0.2.3

v0.2.2: mcp-ts-core ^0.10.9 maintenance

Choose a tag to compare

@cyanheads cyanheads released this 20 Jun 12:08
v0.2.2
fdcba3b

mcp-ts-core ^0.10.9 maintenance

Framework-only refresh — no source or behavior changes.

Changed:

  • Vendored devcheck scripts re-synced to mcp-ts-core 0.10.7: fresh-scaffold guards on build-changelog/check-framework-antipatterns/check-skill-versions/devcheck; new check-dependency-specifiers step; plugin-manifest checks in lint-packaging (cyanheads/mcp-ts-core#237, #240, #242, #243, #246)
  • devcheck.config.json: packaging.pluginManifests: true (cyanheads/mcp-ts-core#240)
  • 14 vendored skills//SKILL.md re-synced to their 0.10.7 bodies, incl. git-wrapup v1.4 and orchestrations v1.4 (cyanheads/mcp-ts-core#238)

Dependency bumps:

  • @cyanheads/mcp-ts-core ^0.10.6 → ^0.10.9
  • @biomejs/biome ^2.4.16 → ^2.5.0 (dev)
  • @types/node ^25.9.3 → ^26.0.0 (dev)
  • vitest ^4.1.8 → ^4.1.9 (dev)

17 tests pass; bun run devcheck clean.

v0.2.1: mcp-ts-core ^0.10.6 adoption

Choose a tag to compare

@cyanheads cyanheads released this 12 Jun 08:02
v0.2.1
6d1f219

mcp-ts-core ^0.10.6 adoption

Maintenance release: framework upgrade, dependency refresh, and synced vendored skills, plus a few framework-driven follow-ons.

Changed:

  • invalid_date_range on met_search_collections now classifies as ValidationError (was InvalidParams)
  • bundle script cleans dev deps and vendored agent docs from the .mcpb via scripts/clean-mcpb.ts

Added:

  • explicit name/title (met-museum-mcp-server) on createApp for stable display identity
  • Docker HEALTHCHECK on /healthz and org.opencontainers.image.version OCI label

Dependency bumps:

  • @cyanheads/mcp-ts-core ^0.9.19 → ^0.10.6
  • @biomejs/biome ^2.4.7 → ^2.4.16 (dev)
  • @types/node ^25.9.2 → ^25.9.3 (dev)
  • tsc-alias ^1.8.16 → ^1.8.17 (dev)

17 tests pass; bun run devcheck clean.

v0.2.0: rename met_search → met_search_collections; add isOnView filter

Choose a tag to compare

@cyanheads cyanheads released this 08 Jun 23:04
v0.2.0
8d41647

rename met_search → met_search_collections; add isOnView filter

BREAKING: met_search renamed to met_search_collections. Replace met_search with met_search_collections in all tool call sites.

Added:

  • met_search_collections gains optional isOnView boolean filter — restricts results to objects currently on display in a Met gallery (#3). Rembrandt: 1096→117 results.

Changed:

  • met_search renamed to met_search_collections (#4). Clients calling met_search must update. No change to inputs, outputs, or behavior.

Dependency bumps:

  • @types/node 25.9.1 → 25.9.2

17 tests pass; bun run devcheck clean.

v0.1.3: BREAKING: hasImages → hasCC0Image rename; all_not_found error

Choose a tag to compare

@cyanheads cyanheads released this 04 Jun 09:38
v0.1.3
fc353b4

BREAKING: hasImages → hasCC0Image rename; all_not_found error

BREAKING: met_get_object renames the hasImages output field to hasCC0Image. Consumers reading result.objects[].hasImages must update to result.objects[].hasCC0Image. Value semantics are unchanged — true when a CC0 open-access image URL is available.

Changed:

  • hasImageshasCC0Image on met_get_object output (#1) — clarifies the field signals a CC0 image, distinct from met_search's hasImages filter (which matches copyrighted works too)

Added:

  • all_not_found error on met_get_object (#2) — fires when every objectID returns HTTP 404, with recovery hint to verify IDs via met_search; previously all-failure paths threw all_failed regardless of cause
  • kind discriminator on internal FailItem type for 404-vs-network classification

16 tests pass; bun run devcheck clean.

v0.1.2: Hosted endpoint at met-museum.caseyjhand.com/mcp

Choose a tag to compare

@cyanheads cyanheads released this 02 Jun 14:14
v0.1.2
fe03ef8

Hosted endpoint at met-museum.caseyjhand.com/mcp

Public Streamable HTTP endpoint deployed and registered in server.json remotes.

Added:

  • server.json remotes — https://met-museum.caseyjhand.com/mcp (Streamable HTTP); MCP Registry now surfaces the hosted instance.
  • README hosted-server link block and Public Hosted Instance Getting Started subsection.

Changed:

  • devcheck.config.json outdated allowlist — @cyanheads/mcp-ts-core held at ^0.9.19.
  • README mcpServers key renamed from "met-museum" to "met-museum-mcp-server" in config examples.

14 tests pass; bun run devcheck clean.

v0.1.1: Public launch — Met Museum collection search, object fetch, and department listing

Choose a tag to compare

@cyanheads cyanheads released this 01 Jun 10:19
v0.1.1
2754ce9

Public launch — Met Museum collection search, object fetch, and department listing

MCP server for browsing and fetching Metropolitan Museum of Art collection data (500K+ artworks) with no API key required.

Added:

  • met_search — keyword search with filters: hasImages, isPublicDomain, isHighlight, medium, departmentId, geoLocation, dateBegin/dateEnd
  • met_get_object — batch fetch full artwork records (title, artist, dates, medium, dimensions, provenance, image URLs) for up to 20 IDs per call
  • met_list_departments — return all 19 curatorial departments with numeric IDs for met_search departmentId filters
  • README — install badges (Claude Desktop .mcpb, Cursor, VS Code), tool reference table, usage examples

Changed:

  • server.json runtimeHint corrected from 'node' to 'bun' on both package entries
  • server.json name updated to reverse-DNS format io.github.cyanheads/met-museum-mcp-server
  • Collection count updated to 500K+ across all descriptive text

Fixed:

  • ctx.recoveryFor() spread pattern removed; argument passed directly as the API expects
  • Optional filter fields no longer double-wrapped with ?? undefined in met_search
  • Duplicate isTimelineWork_duplicate field removed from RawObjectRecord

14 tests pass; bun run devcheck clean.