Public leaderboard

Public assessment

mikechao/metmuseum-mcp (metmuseum-mcp)

metmuseum-mcp · v1.0.0 · scanned

What changed in the harness

Selection accuracy 100→98, token cost up 2%, unconfirmed writes 100%→100%.

Category breakdown

Where the score comes from.

Earned points across the four signals Gradable measures. Safety and Legibility are scored out of 30; Economics and Discoverability are scored out of 20.

01Safety

30.0 / 30

30.0 out of 30
02Legibility

29.3 / 30

29.3 out of 30
03Economics

18.3 / 20

18.3 out of 20
04Discoverability

13.1 / 20

13.1 out of 20

Highest-impact fix

Estimated gain +7 points

Make target tools discoverable on the first call

Clarify tool names, decision boundaries, and required argument schemas so an agent can choose and construct the target call without exploratory steps.

Description evidence

Defects and rewrites.

2 defects found across the exposed tool descriptions. Suggested rewrites make purpose, inputs, boundaries, and returns easier for an agent to understand.

Tool Defect types Suggested rewrite
list-departments
name_restates_behavior
Retrieve the full list of Metropolitan Museum of Art curatorial departments, each with its departmentId and displayName. Returns an array of department objects; use a department's departmentId as the departmentId filter when calling the search-museum-objects tool.
get-museum-object
no_return_description
Get a museum object by its ID from the Metropolitan Museum of Art Collection. Use this when the user asks for deeper details on a specific object ID. The optional returnImage parameter controls whether the object's image data is included in the response. Returns a detailed object record with fields such as title, artist, medium, dimensions, date, department, geographic origin, image URLs, tags, and related metadata.

Selection evidence

Confusable tool pairs.

2 pairs where similar names or overlapping descriptions may send an agent toward the wrong tool.

Tool A Tool B Confidence Why they collide
search-museum-objects get-museum-object low Both operate on Met Museum objects, but their purposes are clearly distinct (search by query vs. fetch by numeric ID) and get-museum-object requires an objectId while search-museum-objects requires a query string, making misselection unlikely for a competent agent.
list-departments search-museum-objects low list-departments takes no parameters and only enumerates departments, while search-museum-objects requires a query; a task like 'find objects in the Egyptian department' could momentarily suggest list-departments but the agent would quickly recognize it needs the departmentId as a filter to search-museum-objects, not a substitute for it.

Compare the field

One score is useful.
The evidence makes it actionable.

Back to the leaderboard