{"server":{"name":"com.catalogapi/catalogapi","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","remotes":[{"url":"https://api.catalogapi.com/mcp","type":"streamable-http"}],"version":"1.1.0","repository":{"url":"https://github.com/catalogapi/mcp-server","source":"github"},"websiteUrl":"https://api.catalogapi.com","description":"Check reward coverage by country, search real catalog items, and ask how CatalogAPI works."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":true,"updatedAt":"2026-08-07T18:35:51.225232Z","publishedAt":"2026-08-07T18:35:51.225232Z","statusChangedAt":"2026-08-07T18:35:51.225232Z"},"dev.protogrid/connectability":{"class":"unknown","autonomous":false,"human_steps":["unknown"],"preferred":{"kind":"remote","idx":0},"remotes":[{"idx":0,"url":"https://api.catalogapi.com/mcp","transport":"streamable-http","templated":false,"headers":[],"auth":{"type":"none","location":null,"secret_name":null,"oauth":null},"protocol":{"supported_versions":["2025-03-26"],"stateless":false},"health":{"reachable":false,"uptime_30d":0.82,"latency_ms_p50":376,"consecutive_failures":9,"last_probe_at":"2026-10-19T07:44:04.613Z","last_ok_at":"2026-09-30T14:07:32.441Z"}}],"packages":[]},"dev.protogrid/tools":[{"name":"check_coverage","title":null,"description":"Check whether CatalogAPI can supply rewards in one or more countries, and which product categories are available there. Call this when someone asks if rewards, gift cards, or incentives can be offered in a particular country, when they have recipients in several countries, or when they ask which countries are supported. This is the authoritative answer about what a country supports.","annotations":{"read_only":true},"source":"probe","observed_at":"2026-09-30T14:07:32.441Z"},{"name":"get_reward_details","title":null,"description":"Get detail for a single catalog item. Call this after search_rewards when someone asks about a specific item.","annotations":{"read_only":true},"source":"probe","observed_at":"2026-09-30T14:07:32.441Z"},{"name":"how_it_works","title":null,"description":"Answer questions about CatalogAPI itself: what it is, how rewards are delivered to recipients, how currencies and billing work, whether the catalog can be customized or extended with your own products, how the API integration works, and how to get started. Call this for any question about the service, the company, or the product model rather than about specific catalog items.","annotations":{"read_only":true},"source":"probe","observed_at":"2026-09-30T14:07:32.441Z"},{"name":"search_rewards","title":null,"description":"Show example rewards available in one country. Call this when someone asks what kind of thing is on offer, or wants to see the catalog for a country. Returns items from a demonstration catalog: these are examples rather than the full inventory, and no pricing is returned. Use check_coverage for the definitive answer about what a country supports.","annotations":{"read_only":true},"source":"probe","observed_at":"2026-09-30T14:07:32.441Z"}],"dev.protogrid/trust":{"score":67,"components":{"hygiene":100,"liveness":0,"freshness":85,"provenance":100},"drivers":["+repository","+namespace-matches-repo","+dns-namespace","+website","-unreachable(9 failures)","~updated-73d-ago"],"flags":["unreachable"],"blocked":false,"computed_at":"2026-10-19T19:33:22.947Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."},"dev.protogrid/quality":{"score":79,"label":"good","components":{"auth":null,"hygiene":71,"protocol":75,"stability":100,"dependencies":null},"checks":[{"id":"protocol.modern","detail":"newest supported version is 2025-03-26; 2026-07-28 not supported, older versions are deprecated until 2027-07-28","status":"warn","category":"protocol"},{"id":"protocol.stateless","detail":"only applies to 2026-07-28 servers","status":"na","category":"protocol"},{"id":"protocol.transport","detail":"streamable HTTP","status":"pass","category":"protocol"},{"id":"protocol.list_ttl","detail":"only applies to 2026-07-28 servers","status":"na","category":"protocol"},{"id":"auth.prm","detail":"no remote uses OAuth","status":"na","category":"auth"},{"id":"auth.as_metadata","detail":"no remote uses OAuth","status":"na","category":"auth"},{"id":"auth.cimd","detail":"no remote uses OAuth","status":"na","category":"auth"},{"id":"auth.secret_in_url","detail":"no templated URL","status":"na","category":"auth"},{"id":"tools.descriptions","detail":"every tool has a description","status":"pass","category":"hygiene"},{"id":"tools.description_length","detail":"descriptions are concise","status":"pass","category":"hygiene"},{"id":"tools.schemas","detail":"every tool has an object input schema","status":"pass","category":"hygiene"},{"id":"tools.annotations","detail":"no tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones","status":"fail","category":"hygiene"},{"id":"tools.directory_hints","detail":"no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: get_reward_details (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); how_it_works (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); check_coverage (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …","status":"fail","category":"hygiene"},{"id":"tools.token_cost","detail":"about 737 tokens to load every tool","status":"pass","category":"hygiene"},{"id":"tools.api_dump","detail":"tools are not a one-to-one API dump","status":"pass","category":"hygiene"},{"id":"stability.changes","detail":"no tool changes in 30 days","status":"pass","category":"stability"},{"id":"stability.rug_pull","detail":"no tool changed its meaning under the same name","status":"pass","category":"stability"},{"id":"deps.known_vulns","detail":"no npm or PyPI package","status":"na","category":"dependencies"},{"id":"deps.mcp_sdk_version","detail":"no npm or PyPI package","status":"na","category":"dependencies"},{"id":"deps.resolvable","detail":"no npm or PyPI package","status":"na","category":"dependencies"}],"drivers":["-tools.annotations","-tools.directory_hints","~protocol.modern"],"flags":[],"tool_count":4,"token_estimate":737,"tools_hash":"1b1463bd85c1ad7789a2fb5a06a79911","tools_changed_at":null,"computed_at":"2026-10-19T19:33:22.949Z","disclaimer":"Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed."},"dev.protogrid/identity":{"canonical_id":"com.catalogapi/catalogapi","aliases":[],"alias_count":0,"repository_key":"github:catalogapi/mcp-server","owner":{"verified":false,"method":null,"since":null}}},"next_actions":[{"action":"list_tools","description":"Every current tool with input schemas","href":"/v1/servers/com.catalogapi%2Fcatalogapi/tools","arguments":{"name":"com.catalogapi/catalogapi"}},{"action":"get_connection","description":"Minimal connection block for the preferred remote or package","href":"/v1/servers/com.catalogapi%2Fcatalogapi/connection?target=mcpServers","arguments":{"name":"com.catalogapi/catalogapi","target":"mcpServers"}},{"action":"search","description":"Find other servers by intent","href":"/v1/search?q={query}","arguments":{"q":"{query}"}}]}