OpenMark
Server Details
Benchmark your own prompt on 100+ LLMs with real API calls; pick the cheapest model that passes.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 7 tools
Each tool targets a distinct action: account info, task format docs, model listing, attachment prep, running, polling results, and watching. get_results vs watch_task both touch job monitoring and get_account vs list_models both surface cost info, but the descriptions clearly differentiate status polling from the long-term auto-retest feature, and balance/limits from model pricing.
All seven names follow a clean verb_noun snake_case pattern (get_account, get_results, get_task_format, list_models, prepare_attachments, run_benchmark, watch_task). No camelCase or stylistic deviations.
Seven tools is well-scoped for a benchmark-runner service, covering setup, execution, and monitoring without redundancy. Every tool maps to a needed step in the workflow.
The surface covers the full lifecycle: learn format, pick models, prep attachments, run, poll results, and watch. Minor gaps like canceling a job, listing past jobs, or deleting a task aren't exposed, but the core end-to-end workflow is intact.
Available Tools
7 toolsget_accountAccount, credits and plansAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses that the tool is informational (returns balance/limits and what upgrades would unlock) and implies a safe, user-scoped read, but it never states read-only status, auth requirements, or whether calling it itself consumes anything. Adequate for a zero-parameter read, but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: the first front-loads what is returned, the second front-loads when to call it. Every clause carries information (returned fields, upgrade tiers, two usage triggers) with zero filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully enumerates the return contents (plan, credit balance, limits, upgrade value), which is the key information an agent needs. It is complete enough to call correctly, though it could say more about freshness or whether results are account-scoped to the authenticated user.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline for a no-parameter tool is 4. The description correctly adds no parameter noise.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific resource contents: plan, credit balance, limits, and upgrade previews (credit pack, Pro, Expert). That is far more specific than the title, and no sibling tool (get_results, list_models, run_benchmark, etc.) overlaps with account/billing data, so differentiation is implicit. It stops short of an explicit verb+contrast statement, hence a 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives two concrete trigger conditions: 'before large runs' and 'when a run is refused for credits or limits.' That is actionable when-to-use guidance. It does not name a when-not condition or an alternative tool, but no sibling offers comparable account data, so the gap is minor.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_resultsGet benchmark resultsBInspect
Status of a benchmark job, and once completed the ranked results (score, stability, cost per run, latency) plus a recommendation for the chosen objective and quick picks for the others.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | ||
| tolerance | No | Score points below the top score that still count as good enough | |
| optimize_for | No | accuracy (same order as the app's results table): best score, then cheapest, then fastest. cost / speed / stability: cheapest / fastest / most consistent model within `tolerance` points of the top score | accuracy |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full behavioral burden. It usefully discloses the conditional behavior (status before completion, ranked results after) and the returned fields, but it omits whether the call is read-only, authentication or permission needs, error behavior for invalid job IDs, and rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is a single, front-loaded sentence that moves from status to completed results to extras. It is dense but contains no filler, though the parenthetical list and 'the others' phrasing make it slightly run-on.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description appropriately lists returned fields (score, stability, cost per run, latency, recommendation, quick picks). However, it leaves gaps around status values, error handling, and how it relates to sibling tools for polling or running benchmarks, making it only adequate for correct agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67%, with detailed enum and tolerance descriptions already in the schema. The description adds little parameter meaning beyond alluding to 'chosen objective' and 'the others', and does not compensate for the undocumented job_id parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the specific resource (a benchmark job) and what is returned: status, ranked results with named metrics, a recommendation, and quick picks. It is not a tautology and implicitly distinguishes this from run_benchmark by focusing on retrieval, but it does not explicitly name or differentiate against siblings like watch_task.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives such as watch_task or run_benchmark. The phrase 'once completed' hints at polling after a job finishes, but no conditions, prerequisites, or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_task_formatTask YAML formatAInspect
How to write an OpenMark task: the YAML structure, every scoring mode, and tips. Call this before writing a task.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries the burden, and it does disclose the content scope (structure, scoring modes, tips). However, it never states that this is a read-only, side-effect-free documentation lookup, nor whether the content is static reference material or generated per-context. Adequate but thin for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no filler, leading with what the content is and closing with the actionable instruction. Nothing could be removed without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description does the necessary work by naming the three content areas the agent will receive. It stops short of indicating the shape or size of the returned documentation, but for a no-param reference tool that gap is small.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing to document and the schema is trivially complete. Baseline 4 applies; no parameter ambiguity exists to resolve in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (OpenMark task YAML format) and enumerates its contents: structure, every scoring mode, and tips. An agent immediately knows this returns authoring documentation, and no sibling is remotely confusable with it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit trigger condition: 'Call this before writing a task.' That is actionable timing guidance. It doesn't name alternatives or when-not-to-call, but among the siblings there is no competing tool, so the omission is minor.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_modelsList modelsAInspect
Current OpenMark model ids with list prices ($ per 1M tokens). Use these ids in run_benchmark. Append @low, @medium or @high to a reasoning model id to set its reasoning effort.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | Filter by id, name or provider, e.g. 'claude', 'gemini flash' | |
| images_only | No | Only models that accept image attachments | |
| max_output_price | No | Only models at or below this $ per 1M output tokens |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations the description carries the full burden, and it does disclose real behavior: results are current ids with list prices, and reasoning models accept an @low/@medium/@high suffix that changes their reasoning effort. That suffix convention is a non-obvious behavioral trait not present in the schema. It still says nothing about auth, rate limits or response shape, keeping it out of 5 territory.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, each with a distinct job: what it returns, where to use it, and a formatting rule. No filler and the payload is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, no annotations, zero required params, so the description must establish the return contract, and it does name the key fields (ids and prices). It omits other likely return attributes (names, providers, context windows) and any note on result size, but it is sufficient to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so search, images_only and max_output_price are already fully documented in the schema; the description adds nothing about them. Baseline 3 is appropriate when the schema carries the parameter burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource and scope: 'Current OpenMark model ids with list prices ($ per 1M tokens)'. The mention of run_benchmark as the consumer makes it immediately distinguishable from the other siblings, which all do unrelated work (tasks, results, attachments, account).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes usage: 'Use these ids in run_benchmark,' which tells the agent this is the lookup step preceding a benchmark call. It stops short of any explicit when-not or alternative, but no sibling competes with it for this role, so the guidance is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prepare_attachmentsPrepare file attachmentsAInspect
Get an upload_uid and the exact command to upload images, PDFs or text documents for a task. Upload the files, reference them by file name in each test's attachments list, then pass the upload_uid to run_benchmark.
| Name | Required | Description | Default |
|---|---|---|---|
| file_names | No | Optional: the local file paths to upload, to get a ready-to-run command |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden, and it does add real value by revealing that the tool returns a uid and a command rather than performing the upload itself. However, it omits operating constraints an agent would want: file count/size limits, whether the upload_uid expires, auth requirements, and failure behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no redundancy; the primary output (upload_uid + command) is front-loaded and the follow-up workflow comes second. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description correctly explains what comes back (upload_uid and the command) and how to use it. It is nearly complete for a prep utility, with only edge cases like limits, expiry, and error handling left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single file_names parameter, so the schema already documents that these are local paths used to build a ready-to-run command. The description mentions referencing files by name but adds no syntax, path-format, or ordering detail beyond the schema; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: get an upload_uid plus the exact upload command for images, PDFs, or text documents tied to a task. It clearly separates this preparatory step from run_benchmark, which it names as the downstream consumer, so an agent can distinguish it from siblings without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit ordered workflow: upload the files, reference them by file name in each test's attachments list, then pass the upload_uid to run_benchmark. This is strong when-to-use guidance tied to a named sibling, though it offers no when-not-to-use or guidance for already-uploaded files.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_benchmarkRun a benchmarkAInspect
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; poll get_results. Spends the user's credits.
| Name | Required | Description | Default |
|---|---|---|---|
| models | Yes | Model ids from list_models | |
| task_yaml | Yes | The full task YAML (a JSON object with the same fields also works) | |
| upload_uid | No | From prepare_attachments, when tests use attachments | |
| stability_runs | No | Passes per model; 2+ shows which models are consistent |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses persistence (saves to the user's OpenMark account), real side effects (real API calls, spends credits), and the return contract (job_id, poll get_results for results). It does not mention auth requirements, credit-exhaustion failure behavior, or expected run duration for long benchmarks.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences, front-loaded with the primary action and cost warning, followed by the follow-up call and the format reference. No filler and every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description must explain returns -- and it does (job_id, poll get_results). Combined with the cost/persistence disclosure and the input-format pointer, an agent has everything needed to invoke and follow up correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds value beyond the schema by pointing task_yaml at get_task_format for the expected format and framing models as the execution targets, though it says nothing extra about upload_uid or stability_runs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific compound action (save task YAML to the account and run it on given models) with clear scope. It names the two sibling tools that bracket the workflow, get_task_format for input and get_results for output, so an agent can place it without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear operational context: reference get_task_format for the YAML, then poll get_results after invocation. It also warns that the call spends credits, which conditions when an agent should proceed. It stops short of naming when NOT to use it (e.g. cheap dry runs or local-only benchmarks).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watch_taskWatch a task for better modelsAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | The model to keep as the pick (default: the best-scoring model). Use the model you recommended. | |
| job_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the side effect (email only when a model beats the pick), the cap (up to 4 models), and the cost model (checks consume the user's credits at the normal rate). It stops short of stating check frequency, whether it is recurring, or how to stop watching.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler; the core action is front-loaded before the behavioral detail. Dense but each clause (retest count, email trigger, credit cost) earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation/notification tool with no annotations and no output schema, the description covers the key behavior and cost but omits the return value, whether the watch is recurring or one-shot, and how to detach. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%. The 'model' parameter is well documented in the schema (default = best-scoring model) and the description alludes to it as 'the user's pick'; the description's 'completed job' phrasing adds mild meaning to the undocumented, required job_id. Neither fully compensates for the half of parameters lacking schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Watch the task of a completed job') and elaborates with the concrete behavior: re-testing up to 4 new/cheaper models against the user's pick. It is clearly distinct from siblings like get_results or run_benchmark, though it never names an alternative explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'of a completed job' implies a prerequisite (the job must be finished) and the content implies monitoring for future model improvements, but there is no explicit when-to-use vs alternatives or when-not guidance. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- Changed
get_results1 field changed- changed
Input schema / properties / optimize_for / descriptionPrevious value: -"accuracy: best score, cheapest on ties. cost / speed / stability: cheapest / fastest / most consistent model within `tolerance` points of the top score"New value: +"accuracy (same order as the app's results table): best score, then cheapest, then fastest. cost / speed / stability: cheapest / fastest / most consistent model within `tolerance` points of the top score"
- Changed
watch_task1 field changed- added
Input schema / properties / modelAdded value: +{ + "description": "The model to keep as the pick (default: the best-scoring model). Use the model you recommended.", + "type": "string" +}
7 tool updates
- First observed
get_account - First observed
get_results - First observed
get_task_format - First observed
list_models - First observed
prepare_attachments - First observed
run_benchmark - First observed
watch_task
Related MCP Connectors
Test and compare prompts across any AI provider. Bring your own keys.
Compare LLM API prices, search models and providers, and access reviewed benchmark results.
AI model routing on your own vendor keys: pick the best model per prompt, or route and run it.
Find the right AI model for your job. Free discovery and ranking; tests on your own key.
Related MCP Servers
- AlicenseBqualityDmaintenanceRoute prompts intelligently across Claude, Gemini, and GPT-4o, automatically picking the best model for every task while minimizing token cost.512 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to compare LLM benchmarks, get pricing, and receive model recommendations for tasks and budgets.1MIT
- AlicenseAqualityAmaintenanceLive LLM API pricing: current token prices, model comparisons, cheapest-model lookups, and The LLM Price Index for 150+ models across 20+ providers, re-verified daily. No API key required.41MIT
- AlicenseNot gradedqualityBmaintenanceEnables LLM clients and coding agents to analyze prompts and recommend the cheapest AI model that meets the task requirements across text, voice, video, and other modalities, projecting monthly cost savings against a flagship baseline.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.