{"server":{"name":"ai.openmark/openmark","title":"OpenMark","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","remotes":[{"url":"https://openmark.ai/mcp","type":"streamable-http","headers":[{"name":"Authorization","isSecret":true,"isRequired":true,"description":"Bearer followed by your personal key (om_...) from openmark.ai/ui, account menu > API keys"}]}],"version":"1.0.0","websiteUrl":"https://openmark.ai/mcp","description":"Benchmark your own prompt on 100+ LLMs with real API calls; pick the cheapest model that passes."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":true,"updatedAt":"2026-10-18T20:43:35.358992Z","publishedAt":"2026-10-18T20:43:35.358992Z","statusChangedAt":"2026-10-18T20:43:35.358992Z"},"dev.protogrid/connectability":{"class":"R1","autonomous":true,"human_steps":[],"preferred":{"kind":"remote","idx":0},"remotes":[{"idx":0,"url":"https://openmark.ai/mcp","transport":"streamable-http","templated":false,"headers":[{"name":"Authorization","required":true,"secret":true,"value":null,"secret_names":["OPENMARK_TOKEN"]}],"auth":{"type":"api_key","location":null,"secret_name":"OPENMARK_TOKEN","oauth":null},"protocol":{"supported_versions":["2025-06-18"],"stateless":true},"health":{"reachable":true,"uptime_30d":0.75,"latency_ms_p50":306,"consecutive_failures":0,"last_probe_at":"2026-10-19T20:47:23.700Z","last_ok_at":"2026-10-19T20:47:23.700Z"}}],"packages":[]},"dev.protogrid/tools":[{"name":"estimate_cost","title":"Estimate a run's cost","description":"Credits a run_benchmark call would use, before spending anything: the expected total, the split per model, the balance needed to start, the worst case, and the user's balance. Same inputs and run settings as run_benchmark. Use it to drop an expensive model, or to compare settings (e.g. max_tokens), before running.","annotations":null,"source":"probe","observed_at":"2026-10-19T20:47:23.700Z"},{"name":"get_account","title":"Account, credits and plans","description":"The user's plan, credit balance and limits, and what a credit pack, Pro or Expert would unlock. Use it before large runs, or when a run is refused for credits or limits.","annotations":null,"source":"probe","observed_at":"2026-10-19T20:47:23.700Z"},{"name":"get_results","title":"Get benchmark results","description":"Status of a benchmark job, and once completed the ranked results (score, stability, cost per run, latency), the tests each model missed with its answer, a recommendation for the chosen objective and quick picks for the others.","annotations":null,"source":"probe","observed_at":"2026-10-19T20:47:23.700Z"},{"name":"get_task_format","title":"Task YAML format","description":"How to write an OpenMark task: the YAML structure, every scoring mode, and tips. Call this before writing a task.","annotations":null,"source":"probe","observed_at":"2026-10-19T20:47:23.700Z"},{"name":"list_models","title":"List models","description":"Current OpenMark model ids with list prices ($ per 1M tokens), as text and as a structured list. Use these ids in run_benchmark. Append @low, @medium or @high to a reasoning model id to set its reasoning effort.","annotations":null,"source":"probe","observed_at":"2026-10-19T20:47:23.700Z"},{"name":"prepare_attachments","title":"Prepare file attachments","description":"Get an upload_uid and a one-hour upload link (no API key needed) for images, PDFs or text documents, with the exact curl command. Upload the files, reference them by file name in each test's attachments list, then pass the upload_uid to estimate_cost / run_benchmark.","annotations":null,"source":"probe","observed_at":"2026-10-19T20:47:23.700Z"},{"name":"run_benchmark","title":"Run a benchmark","description":"Save a task (YAML, see get_task_format) to the user's OpenMark account and run it on the given models with real API calls. Returns a job_id and the expected cost; poll get_results. Spends the user's credits; pass max_credits to only start within a budget. Optional run settings match the app's Configure & Run panel (preset, stability_runs, max_tokens, temperature_discovery, temp_preference, timeout_profile, custom_timeout, fail_fast).","annotations":null,"source":"probe","observed_at":"2026-10-19T20:47:23.700Z"},{"name":"watch_task","title":"Watch a task for better models","description":"Watch the task of a completed job: when new or cheaper models ship, OpenMark re-tests up to 4 of them next to the user's pick and emails the user only when one beats it. Each check uses the user's credits at the normal rate.","annotations":null,"source":"probe","observed_at":"2026-10-19T20:47:23.700Z"}],"dev.protogrid/trust":{"score":80,"components":{"hygiene":80,"liveness":90,"freshness":100,"provenance":55},"drivers":["+dns-namespace","+website","+reachable","+uptime-75%","+updated-1d-ago","-no-repository"],"flags":["no-repository"],"blocked":false,"computed_at":"2026-10-19T23:07:06.975Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."},"dev.protogrid/quality":{"score":73,"label":"new","components":{"auth":null,"hygiene":71,"protocol":75,"stability":null,"dependencies":null},"checks":[{"id":"protocol.modern","detail":"newest supported version is 2025-06-18; 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: list_models (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); get_account (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); get_task_format (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …","status":"fail","category":"hygiene"},{"id":"tools.token_cost","detail":"about 1,897 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":"tool history recorded for 1 of the 7 days needed","status":"na","category":"stability"},{"id":"stability.rug_pull","detail":"tool history recorded for 1 of the 7 days needed","status":"na","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":8,"token_estimate":1897,"tools_hash":"c9b2a3245b0c1e0d5c300ed77b93ef7e","tools_changed_at":"2026-10-19T14:32:25.526Z","computed_at":"2026-10-19T22:46:05.077Z","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":"ai.openmark/openmark","aliases":[],"alias_count":0,"repository_key":null,"owner":{"verified":false,"method":null,"since":null}}},"next_actions":[{"action":"list_tools","description":"Every current tool with input schemas","href":"/v1/servers/ai.openmark%2Fopenmark/tools","arguments":{"name":"ai.openmark/openmark"}},{"action":"get_connection","description":"Minimal connection block for the preferred remote or package","href":"/v1/servers/ai.openmark%2Fopenmark/connection?target=mcpServers","arguments":{"name":"ai.openmark/openmark","target":"mcpServers"}},{"action":"search","description":"Find other servers by intent","href":"/v1/search?q={query}","arguments":{"q":"{query}"}}]}