{"server":{"name":"io.github.Ravesteijntjes/qquickpick","title":"QQuickpick","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","remotes":[{"url":"https://qquickpick.com/mcp","type":"streamable-http"}],"version":"1.0.0","repository":{"url":"https://github.com/Ravesteijntjes/qquickpick","source":"github"},"description":"Search movies/TV by mood, genre, score, cast, and awards, filtered to what's streaming near you."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":true,"updatedAt":"2026-09-24T09:47:18.310476Z","publishedAt":"2026-09-24T09:47:18.310476Z","statusChangedAt":"2026-09-24T09:47:18.310476Z"},"dev.protogrid/connectability":{"class":"R0","autonomous":true,"human_steps":[],"preferred":{"kind":"remote","idx":0},"remotes":[{"idx":0,"url":"https://qquickpick.com/mcp","transport":"streamable-http","templated":false,"headers":[],"auth":{"type":"none","location":null,"secret_name":null,"oauth":null},"protocol":{"supported_versions":["2026-07-28"],"stateless":true},"health":{"reachable":true,"uptime_30d":0.6896552,"latency_ms_p50":686,"consecutive_failures":0,"last_probe_at":"2026-10-19T16:38:04.919Z","last_ok_at":"2026-10-19T16:38:04.919Z"}}],"packages":[]},"dev.protogrid/tools":[{"name":"get_title_details","title":null,"description":"Look up a SPECIFIC, named movie or TV show by title (e.g. \"what is the score of Practical Magic\", \"tell me about the new Best of the Best on Netflix\"). Use this instead of general web knowledge or search_titles when the user names one particular title -- it returns QQuickPick's own data (score, runtime, genres, streaming availability in the given country, and for movies the same \"facts\" object as search_titles: awards, based-on, franchise, critics-vs-viewers verdict). Unlike search_titles, a result is returned even if it is not currently streaming anywhere in the given country -- streaming_on is just empty in that case, this is a lookup tool, not a discovery/availability filter. If nothing matches, no result is returned and a warning explains why.","annotations":{"title":"Get title details","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T16:38:04.919Z"},{"name":"search_titles","title":null,"description":"Find movies and/or TV shows that are genuinely available on a subscription streaming service in a specific country, filtered by score, genre, runtime, age rating, release year, country of origin, required cast members, notable people's own watch history, review tone, and similarity to a title the user already knows. All given filters combine with AND logic (except where noted). Use this instead of guessing streaming availability from general knowledge, which is frequently wrong or outdated -- catalogs change constantly and vary by country. Also use this tool for completely open-ended requests with no stated criteria at all, e.g. \"suggest something to watch\" or \"I don't know what I want to watch\" -- call it with just the country and no other filters to get QQuickPick's currently popular streamable picks, rather than answering from general knowledge alone. Movie results also carry a \"facts\" object (or null when unknown): Best Picture winner/nominee, Oscars won (\"at least\" -- the source is not exhaustive, so never state it as an exact count), festival top prizes, the work it is based on, and its franchise with all films in order. Use the awards / based_on_existing_work / franchise filters (movies only) to answer questions like \"Oscar winners based on a novel I can stream tonight\" or \"all films of a franchise available to me\". Use similar_to for \"something like X\" requests instead of guessing similar titles from general knowledge. Use origin_countries for requests like \"an Asian film\" or \"a French series\" -- do not guess specific titles from general knowledge for this. Each result includes a site_url (QQuickPick detail page) and, where available, a watch_link with required attribution -- include these links when presenting results to the user, not just the raw facts. The response also carries a top-level available_filters hint listing filters on this tool that were not used in this call -- consider offering ONE of them as a natural follow-up question, not all of them, and only when it fits the conversation.","annotations":{"title":"Search titles","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T16:38:04.919Z"}],"dev.protogrid/trust":{"score":90,"components":{"hygiene":100,"liveness":88,"freshness":100,"provenance":80},"drivers":["+repository","+namespace-matches-repo","+reachable","+uptime-69%","+updated-25d-ago"],"flags":[],"blocked":false,"computed_at":"2026-10-19T19:20:16.457Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."},"dev.protogrid/quality":{"score":92,"label":"strong","components":{"auth":null,"hygiene":93,"protocol":88,"stability":100,"dependencies":null},"checks":[{"id":"protocol.modern","detail":"supports 2026-07-28 (server/discover)","status":"pass","category":"protocol"},{"id":"protocol.stateless","detail":"answers without a session","status":"pass","category":"protocol"},{"id":"protocol.transport","detail":"streamable HTTP","status":"pass","category":"protocol"},{"id":"protocol.list_ttl","detail":"tools/list declares ttlMs 0, so clients re-fetch it on every use","status":"warn","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":"1 tools have descriptions over 1,024 characters, which crowds the context","status":"warn","category":"hygiene"},{"id":"tools.schemas","detail":"every tool has an object input schema","status":"pass","category":"hygiene"},{"id":"tools.annotations","detail":"2 of 2 tools declare readOnlyHint or destructiveHint","status":"pass","category":"hygiene"},{"id":"tools.directory_hints","detail":"every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint","status":"pass","category":"hygiene"},{"id":"tools.token_cost","detail":"about 2,826 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":"2 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":["~protocol.list_ttl","~tools.description_length"],"flags":[],"tool_count":2,"token_estimate":2826,"tools_hash":"85abd01b22a813f07052f410d2bf1974","tools_changed_at":"2026-09-25T22:04:07.574Z","computed_at":"2026-10-19T19:01:33.377Z","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":"io.github.Ravesteijntjes/qquickpick","aliases":[],"alias_count":0,"repository_key":"github:ravesteijntjes/qquickpick","owner":{"verified":false,"method":null,"since":null}}},"next_actions":[{"action":"list_tools","description":"Every current tool with input schemas","href":"/v1/servers/io.github.Ravesteijntjes%2Fqquickpick/tools","arguments":{"name":"io.github.Ravesteijntjes/qquickpick"}},{"action":"get_connection","description":"Minimal connection block for the preferred remote or package","href":"/v1/servers/io.github.Ravesteijntjes%2Fqquickpick/connection?target=mcpServers","arguments":{"name":"io.github.Ravesteijntjes/qquickpick","target":"mcpServers"}},{"action":"search","description":"Find other servers by intent","href":"/v1/search?q={query}","arguments":{"q":"{query}"}}]}