Skip to main content
Glama

met-museum-mcp-server

List Met Objects

met_list_objects
Read-onlyIdempotent

Browse the Metropolitan Museum of Art collection without a keyword: every object ID in one curatorial department, every object whose record was created or revised on or after a date, or both together. Returns the total count and one page of IDs in ascending order, which met_get_object resolves to full records. With no filter the list is the whole collection (over 500,000 IDs). departmentId takes an ID from met_list_departments; updatedSince takes a YYYY-MM-DD date and answers "what has the Met added or revised since this day". Paging has no depth limit — pass nextOffset to continue. For keyword, classification, place, or object-date filters use met_search_collections instead. A list is cached for up to an hour, so a record revised within the last hour may not appear yet.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of object IDs to return in this page. A page holds at most 500 IDs: a larger value, up to 10,000, reads a 500-ID page and the notice says so — continue from nextOffset.
offsetNoZero-based index of the first ID to return (default 0); pass the nextOffset from a previous response to continue paging. IDs are in ascending order and every one is reachable; an offset at or past total returns an empty page rather than an error.
departmentIdNoRestrict the list to one curatorial department. Valid IDs come from met_list_departments — the Met exposes a sparse set (roughly 1–21, with gaps); an unrecognized ID is rejected with an invalid_department error rather than answered with an empty list.
updatedSinceNoList only objects whose record was created or revised on or after this date, the day itself included, as YYYY-MM-DD (e.g., "2026-09-01") — no time part and no other date format. It compares the UTC date of each record's metadataDate, which met_get_object returns. A date later than the newest update returns an empty list, not an error.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
errorNoPresent when the call failed. Absent on success.
totalNoTotal number of objects matching the filters. Paging reaches every one of them — there is no 10,000 window here.
noticeNoPresent when total is 0: names the filters that matched nothing and how to widen the list. Also present when a limit above 500 was read as a 500-ID page with IDs still remaining: says the page was read with limit 500 and to continue from nextOffset.
offsetNoThe resolved offset this page was read from — the offset input after its default of 0. When it is at or beyond a nonzero total, the page is empty because the offset ran past the list, not because nothing matched.
returnedNoCount of object IDs in this page.
objectIDsNoObject IDs for this page in ascending order, up to `limit` results and never more than 500.
remainingNoCount of IDs after this page: total minus (offset + returned), floored at 0. 0 means no further page exists.
truncatedNoTrue when IDs remain after this page (offset + returned < total); false when this page ends the list.
nextOffsetNoThe offset to pass on the next call to continue paging, or null when this page ends the list (truncated is false).
effectiveQueryNoThe filters as applied, as name=value pairs with JSON-encoded values — an updatedSince before 1753-01-01 shows as 1753-01-01, the date sent — or "no filter (whole collection)". limit and offset are left out.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changed
    • changedInput schema / properties / limit / description
      Previous value: -"Maximum number of object IDs to return in this page."New value: +"Maximum number of object IDs to return in this page. A page holds at most 500 IDs: a larger value, up to 10,000, reads a 500-ID page and the notice says so — continue from nextOffset."
    • changedInput schema / properties / limit / maximum
      Previous value: -500New value: +10000
    • changedOutput schema / properties / error / properties / data / properties / reason / description
      Previous value: -"Machine-readable failure mode. Declared by this tool: `invalid_department`: departmentId is provided but is not one of the Met department IDs. `invalid_date`: updatedSince has the YYYY-MM-DD shape but names no calendar day, such as 2026-02-30. `upstream_blocked`: The Met API's firewall refused the request with HTTP 403 — it blocks this server's address, not one endpoint. `upstream_unavailable`: The Met API answered HTTP 500, 502, 503, or 504 to the department lookup or the ID list until the retry ladder ran out — an outage on its side. `retry_deadline_exceeded`: The call's time budget ran out, retries and backoff included, before the Met API returned a successful response to the department lookup or the ID list. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `invalid_department`: departmentId is provided but is not one of the Met department IDs. `invalid_date`: updatedSince has the YYYY-MM-DD shape but names no calendar day, such as 2026-02-30. `upstream_blocked`: The Met API's firewall refused the request with HTTP 403 — it blocks this server's address, not one endpoint. `upstream_unavailable`: The Met API answered HTTP 500, 502, 503, or 504 to the department lookup or the ID list until the retry ladder ran out — an outage on its side. `upstream_rate_limited`: The Met API answered HTTP 429 to the department lookup or the ID list until the retry ladder ran out, or asked for a wait longer than the ladder or the call's time budget allows — it throttles this server's address, not one filter. `retry_deadline_exceeded`: The call's time budget ran out, retries and backoff included, before the Met API returned a successful response to the department lookup or the ID list. Other values are possible when a failure originates below the handler."
    • changedOutput schema / properties / error / properties / data / properties / reason / examples
      Previous value: -[
      -  "invalid_department",
      -  "invalid_date",
      -  "upstream_blocked",
      -  "upstream_unavailable",
      -  "retry_deadline_exceeded"
      -]New value: +[
      +  "invalid_department",
      +  "invalid_date",
      +  "upstream_blocked",
      +  "upstream_unavailable",
      +  "upstream_rate_limited",
      +  "retry_deadline_exceeded"
      +]
    • changedOutput schema / properties / notice / description
      Previous value: -"Present only when total is 0: names the filters that matched nothing and how to widen the list."New value: +"Present when total is 0: names the filters that matched nothing and how to widen the list. Also present when a limit above 500 was read as a 500-ID page with IDs still remaining: says the page was read with limit 500 and to continue from nextOffset."
    • changedOutput schema / properties / objectIDs / description
      Previous value: -"Object IDs for this page in ascending order, up to `limit` results."New value: +"Object IDs for this page in ascending order, up to `limit` results and never more than 500."
  2. Changed4 schema fields changed
    • changedInput schema / properties / updatedSince / description
      Previous value: -"List only objects whose record was created or revised on or after this date, the day itself included, as YYYY-MM-DD (e.g., \"2026-09-01\") — no time part and no other date format. A date later than the newest update returns an empty list, not an error."New value: +"List only objects whose record was created or revised on or after this date, the day itself included, as YYYY-MM-DD (e.g., \"2026-09-01\") — no time part and no other date format. It compares the UTC date of each record's metadataDate, which met_get_object returns. A date later than the newest update returns an empty list, not an error."
    • addedOutput schema / properties / effectiveQuery
      Added value: +{
      +  "description": "The filters as applied, as name=value pairs with JSON-encoded values — an updatedSince before 1753-01-01 shows as 1753-01-01, the date sent — or \"no filter (whole collection)\". limit and offset are left out.",
      +  "type": "string"
      +}
    • changedOutput schema / properties / error / properties / data / properties / reason / description
      Previous value: -"Machine-readable failure mode. Declared by this tool: `invalid_department`: departmentId is provided but is not one of the Met department IDs. `invalid_date`: updatedSince has the YYYY-MM-DD shape but names no calendar day, such as 2026-02-30. `upstream_blocked`: The Met API's firewall refused the request with HTTP 403 — it blocks this server's address, not one endpoint. `retry_deadline_exceeded`: The call's time budget ran out, retries and backoff included, before the Met API returned a successful response to the department lookup or the ID list. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `invalid_department`: departmentId is provided but is not one of the Met department IDs. `invalid_date`: updatedSince has the YYYY-MM-DD shape but names no calendar day, such as 2026-02-30. `upstream_blocked`: The Met API's firewall refused the request with HTTP 403 — it blocks this server's address, not one endpoint. `upstream_unavailable`: The Met API answered HTTP 500, 502, 503, or 504 to the department lookup or the ID list until the retry ladder ran out — an outage on its side. `retry_deadline_exceeded`: The call's time budget ran out, retries and backoff included, before the Met API returned a successful response to the department lookup or the ID list. Other values are possible when a failure originates below the handler."
    • changedOutput schema / properties / error / properties / data / properties / reason / examples
      Previous value: -[
      -  "invalid_department",
      -  "invalid_date",
      -  "upstream_blocked",
      -  "retry_deadline_exceeded"
      -]New value: +[
      +  "invalid_department",
      +  "invalid_date",
      +  "upstream_blocked",
      +  "upstream_unavailable",
      +  "retry_deadline_exceeded"
      +]
  3. Added

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.