OpenMark
Server Details
Benchmark your own prompt on 100+ models with real API calls, then choose the winner by accuracy, cost, speed, or any mix of those.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 7 tools
Most tools have clearly distinct purposes: get_account covers billing/limits, get_results covers job status, list_models covers model IDs, and the informational tools (get_task_format, prepare_attachments) are separable. The only mild overlap is between get_results (poll a job) and watch_task (monitor a task over time), but the descriptions make the distinction clear enough to select correctly.
Every tool follows a consistent verb_noun snake_case pattern (get_account, get_results, get_task_format, list_models, prepare_attachments, run_benchmark, watch_task). There are no style deviations or mixed conventions.
Seven tools is well-scoped for a benchmarking service. Each tool earns its place, covering the distinct phases of setup, execution, monitoring, and billing without redundancy.
The core benchmark lifecycle is covered end to end: write a task, list models, prepare attachments, run, poll results, and watch for better models, plus account checks. Minor gaps exist, such as no tool to list past jobs or cancel a running job, but agents can work around these.
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 resultsAInspect
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: best score, cheapest on ties. 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?
With no annotations, the description carries the full burden, and it does disclose meaningful behavior beyond the schema: the two-phase nature (status first, ranked results after completion) and the specific result fields plus recommendation/quick-pick generation. It stops short of stating that the operation is read-only or whether repeated polling is rate-limited, but the operational shape is clear.
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 front-loaded sentence that leads with the primary purpose (status) before the conditional payoff (completed results), with no filler or repetition.
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 must describe returns, and it does so concretely (score, stability, cost per run, latency, recommendation, quick picks). It is complete enough to call correctly; only the possible status values and read-only nature are left implicit.
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 67% and already documents tolerance and optimize_for in detail, yet the description adds real meaning by tying 'recommendation for the chosen objective' to optimize_for and 'quick picks for the others' to the tolerance-driven enumeration. That explains the consequence of the parameters rather than restating them.
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 a specific resource (a benchmark job's status and ranked results) and enumerates the returned payload (score, stability, cost per run, latency), which is far more concrete than a tautology. It does not, however, distinguish itself from the sibling watch_task, which plausibly also reports job status, so the agent could hesitate between them.
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?
Usage is only implied: 'once completed' suggests polling a job launched by run_benchmark, and the absence of any when-not or alternative routing leaves the choice against watch_task/get_task_format to inference. Nothing states prerequisites such as whether the job must have been started first.
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 modelsBInspect
Watch the task of a completed job: OpenMark re-tests it on new or cheaper models as they ship (no credits used) and emails the user only when one beats the best model of that job.
| Name | Required | Description | Default |
|---|---|---|---|
| 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 behavioral burden. It usefully discloses that no credits are used, that re-testing occurs as new/cheaper models ship, and that the user is emailed only when a new model beats the job's best. It does not cover whether the watch is persistent, how to cancel it, what confirmation or identifier is returned, or whether any permissions are required.
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 description is a single well-structured sentence that front-loads the action and then explains the cost and notification behavior. It is appropriately sized with no obvious filler, though the parenthetical detail is dense.
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 one-parameter tool with no annotations and no output schema, the description explains the purpose and key behavior but omits parameter details and any return or confirmation semantics. It is sufficient to understand the concept but leaves gaps an agent would need for confident invocation.
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 for the single required parameter job_id is 0%, so the description must compensate for the missing format and constraints. It adds only the implicit requirement that the job must already be completed, which gives minimal guidance about the parameter beyond the schema's bare string type.
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 a specific verb and resource ('Watch the task of a completed job') and explains the core mechanism: OpenMark re-tests on new or cheaper models and emails when one beats the job's best model. It is clear enough to distinguish from a one-off run like run_benchmark, but it does not explicitly name or contrast with sibling tools.
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?
Usage is implied by 'task of a completed job', indicating this is for monitoring after a job has finished. However, there is no explicit when-not-to-use guidance and no named alternative to choose instead, so the agent must infer the routing decision against get_results, run_benchmark, and list_models.
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.
5 tool updates
- Added
get_account - Changed
get_results2 fields changed- added
Input schema / properties / optimize_forAdded value: +{ + "default": "accuracy", + "description": "accuracy: best score, cheapest on ties. cost / speed / stability: cheapest / fastest / most consistent model within `tolerance` points of the top score", + "enum": [ + "accuracy", + "cost", + "speed", + "stability" + ], + "type": "string" +} - added
Input schema / properties / toleranceAdded value: +{ + "default": 2, + "description": "Score points below the top score that still count as good enough", + "maximum": 50, + "minimum": 0, + "type": "number" +}
- Changed
list_models1 field changed- added
Input schema / properties / images_onlyAdded value: +{ + "description": "Only models that accept image attachments", + "type": "boolean" +}
- Added
prepare_attachments - Changed
run_benchmark2 fields changed- changed
Input schema / properties / task_yaml / descriptionPrevious value: -"The full task YAML"New value: +"The full task YAML (a JSON object with the same fields also works)" - added
Input schema / properties / upload_uidAdded value: +{ + "description": "From prepare_attachments, when tests use attachments", + "type": "string" +}
5 tool updates
- First observed
get_results - First observed
get_task_format - First observed
list_models - First observed
run_benchmark - First observed
watch_task
Related MCP Servers
- AlicenseNot gradedqualityBmaintenancePerplexity for social: ask what competitors are running across social and get answers grounded in real ad and creative data, not guesses.2Apache 2.0
- AlicenseCqualityBmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs119 npmMIT
- AlicenseAqualityCmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.1611 npm1MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.