MDEngine
Server Details
MD workbench for agents: 13 analysis tools, renders, hosted GPU runs; LAMMPS + OpenMM.
- Status
- Healthy
- Uptime
- 100.0% over 21 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- forcefieldsilicon/mdengine
- GitHub Stars
- 0
TDQS
Scored across 12 tools
Most tools have distinct lifecycle roles (create/start/submit, status/results/log, cancel/delete), but create_job, start_job, and submit_job overlap in the job-creation flow and could be confused by an agent deciding between one-step vs two-step submission.
Tool names mostly follow a clear verb_noun pattern (cancel_job, create_job, delete_results, list_jobs, start_job, submit_job). The exceptions are bare nouns like account, capabilities, and job_log/job_results/job_status, which are noun-first rather than verb_noun, creating minor inconsistency.
12 tools is well-scoped for a job-oriented MD engine API: lifecycle management, status/result retrieval, preflight validation, and account/capability introspection. Each tool maps to a meaningful operation without redundancy.
The surface covers the full job lifecycle: create, upload, start, submit, status, log, results, cancel, and delete. Minor gaps include no explicit tool to list available images or pricing details beyond account/capabilities, and no retry or update operation, but these are not critical for the core workflow.
Available Tools
12 toolsaccountAccount balance and pricingARead-onlyIdempotentInspect
Balance in USD, how jobs are priced (pricing.mode job = the deck's own work in atom-steps at per-class prices, capped at wall_limit_s x rate; metered = per second of pod time), the rate table, and the key id of the API key in use.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful context about what pricing modes exist and what the rate table contains, which goes beyond the annotations. However, it doesn't disclose details like whether the rate table is exhaustive or how the key id is formatted.
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 dense sentence that packs in the key concepts: balance currency, pricing modes, rate table, and API key id. It is front-loaded with the most important fact (balance in USD). It could be slightly more structured, but it earns its length.
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 zero-parameter read-only account tool, the description covers the main output categories: balance, pricing modes, rate table, and key id. Without an output schema, it does a reasonable job of telling the agent what to expect. It could be more explicit about the response shape, but the coverage is adequate for the tool's simplicity.
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 has zero parameters, so the schema provides no parameter semantics. The description compensates by explaining the meaning of the returned pricing fields (pricing.mode, wall_limit_s, per-class prices, metered per second). This is valuable context for interpreting the output, even though there is no output schema.
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 clearly identifies the tool as providing account balance, pricing details, rate table, and API key id. It uses specific nouns and covers the resource scope. It doesn't explicitly contrast with siblings, but the resource (account) is distinct enough among the listed 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?
The description implies this is for checking balance and pricing before creating jobs, but it doesn't explicitly state when to use it versus alternatives. The sibling list includes capabilities and preflight_deck, which could overlap in pricing context, but no explicit routing guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_jobCancel jobADestructiveIdempotentInspect
Cancel a job that is not finished. A running job is billed up to the cancel time; its pod is terminated.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Job id, e.g. MDJOB-20260907-3F200C |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description aligns with annotations: it indicates destructive behavior ('pod is terminated') and idempotency is implied by 'not finished' (cancelling twice has no further effect). No contradictions with readOnlyHint or destructiveHint.
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 two sentences, direct and free of fluff. Every phrase adds value—clarifying the scope, the billing effect, and the termination outcome.
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?
Given the absence of an output schema, the description sufficiently explains what happens. It could benefit from mentioning possible outcomes (e.g., error on already-finished jobs), but in context with sibling tools like job_status, it is complete enough for an agent to invoke 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?
The single required parameter 'id' is fully described in the schema with a concrete example, and the description implies it identifies the job to cancel. Coverage is 100%, so no ambiguity remains.
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 explicitly states the tool cancels a job that is not finished, making the primary purpose unambiguous. The additional detail about billing and pod termination clarifies the action's implications.
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 implies the tool is for unfinished/running jobs, but does not explicitly contrast with sibling tools like start_job or submit_job. The condition 'not finished' serves as a clear usage hint, though not as explicit as naming alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
capabilitiesWhat the runner can doARead-onlyIdempotentInspect
Capability manifest of the hosted runners: LAMMPS version, installed packages, and every style by category with gpu=true (KOKKOS-accelerated) or gpu=false (exists, but runs on the pod's CPU cores at the GPU rate). Default = compact summary; runner=lammps&full=true returns the whole style table. Use preflight_deck to check a specific deck.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | Include the full style table (large) | |
| runner | No | lammps | openmm; omit for all |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations indicate read-only and non-destructive behavior, and the description adds valuable context about the output format (compact vs full table) and the meaning of the gpu flag, enhancing transparency beyond the annotations.
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 concise yet information-dense, covering the tool's purpose, output variations, and parameter usage in two sentences without redundancy.
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?
Given the absence of an output schema, the description sufficiently describes what will be returned (version, packages, styles) and the conditions for different outputs, making the tool's behavior clear for an agent.
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 schema descriptions for 'full' and 'runner' are complemented by detailed explanations in the description (e.g., 'runner=lammps&full=true returns the whole style table'), which clarifies the practical effect of each 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?
Clearly states it returns a capability manifest (LAMMPS version, packages, styles) and distinguishes itself from preflight_deck. The specific mention of 'capability manifest' and the breakdown of content makes its purpose unambiguous.
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 directs users to use preflight_deck for checking a specific deck, providing a clear alternative. It also explains parameter effects (default vs full output) and the runner parameter, giving concrete usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_jobCreate a job (returns upload URL)AInspect
Step 1 of the two-step path for big decks: validates the spec, reserves a job id, returns a presigned upload_url. PUT the deck as a .tar.gz (<= 2 GB, relative paths, input at input) to upload_url, then call start_job.
| Name | Required | Description | Default |
|---|---|---|---|
| gpu | No | GPU class; call account for the offered classes and how jobs are priced. Default any = cheapest available | |
| input | Yes | Relative path of the LAMMPS (or runner) input script inside the deck, e.g. in.lmp | |
| label | No | Free text <= 120 chars shown in job lists | |
| launch | No | Launch template; omit for the default KOKKOS/CUDA LAMMPS command line | |
| runner | No | Runner flavour: lammps (default) or openmm (beta) | |
| estimate_s | No | Your runtime guess in seconds; only used for the balance pre-check (min 900 s at the rate) | |
| wall_limit_s | No | Hard cap in seconds (default 14400, max 86400); the job fails at the cap and is billed to it |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already cover read/write and destructiveness, and the description adds useful behavioral context: no compute starts yet, a job is reserved, the deck must be uploaded before start_job, and the deck must be a .tar.gz <= 2 GB. It does not discuss cleanup if the upload never happens, but that is a minor gap given the annotations.
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 two sentences, front-loads the step/context, and contains no filler. Every clause either defines the tool's output, imposes a constraint, or gives the next action.
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 7-parameter tool with no output schema, the description covers the workflow well and the schema documents all parameters. The main omission is explicit mention of the returned job id and its role in the start_job call; the phrase 'reserves a job id' implies it, but a more explicit handoff would make the sequence fully self-contained.
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 100%, so the baseline is 3. The description adds value beyond the schema by specifying the upload format and constraints (.tar.gz, <= 2 GB, relative paths, `input` at `input`), which clarifies how parameters like `input` are used in practice.
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 concrete action and resource: validate the spec, reserve a job id, and return a presigned upload_url. It also names the subsequent step (start_job), so the tool's role in the two-step big-deck flow is unmistakable and clearly distinguished from siblings.
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 description explicitly says this is 'Step 1 of the two-step path for big decks' and gives the exact sequence: PUT the deck to upload_url, then call start_job. It does not explicitly rule out alternative one-step flows like submit_job, but the workflow context is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_resultsDelete a job's files nowADestructiveIdempotentInspect
For a finished job: delete its deck and results tarballs immediately instead of at the automatic 30-day purge. Metadata and billing records are kept; results can no longer be downloaded.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Job id, e.g. MDJOB-20260907-3F200C |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool destructive and not read-only, and the description adds concrete consequences: it deletes deck and results tarballs, retains metadata and billing records, and ends download availability. This goes beyond the generic flags and gives an agent accurate side-effect expectations.
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 front-load the main action and timing, followed by the retention consequence. There is no filler, title repetition, or schema duplication.
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 destructive action with no output schema, the description covers what is deleted, when, what is kept, and what becomes impossible after call. The control, timing, irreversible consequence, and total job data target are enough for correct 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 is 100% and the single id parameter is already described with an example and required marker, so the baseline applies. The description's 'finished job' condition adds some targeting nuance, but no meaning beyond the schema is required. No extra parameter semantics gap exists.
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?
Description names the exact action ('delete its deck and results tarballs') and the resource (files of a finished job), immediately distinguishing it from siblings like cancel_job or job_results. It also demarcates what is not deleted, making the tool's scope unambiguous.
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 description gives a clear trigger—call this on finished jobs to delete files immediately instead of waiting for the 30-day purge—and states a functional consequence. It does not explicitly name alternatives such as job_results for downloading afterward or cancel_job for unfinished jobs, so it stops short of full when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
job_logJob log tailARead-onlyIdempotentInspect
The last <= 20 thermo/log lines the running pod reported (30 s heartbeat). Full log.lammps is in the results tarball.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Job id, e.g. MDJOB-20260907-3F200C |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already communicate read-only, idempotent, and non-destructive behavior. The description adds useful behavioral details: it reflects a running pod's recent output and has a 30-second heartbeat freshness, which helps set expectations about data recency.
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 two short sentences with the core purpose stated first and supplementary context second. There is no redundant or extraneous wording.
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 simple read-only log-tail tool, the description covers what is returned, how fresh it is, and where to find the full log. It does not specify output formatting, but the tool's simplicity and annotations make the description sufficient for correct 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?
The schema fully documents the single required id parameter with an example, so the baseline is met. The description does not add extra parameter-specific semantics, but none are needed given the simple and obvious id field.
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 clearly identifies the tool as returning the last <=20 thermo/log lines from a running pod, which is a specific and recognizable retrieval action. It also distinguishes itself from the full log by noting that the full log.lammps is in the results tarball.
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 provides useful context by mentioning the 30-second heartbeat and that the full log is in the results tarball, but it does not explicitly name sibling tools like job_results or state when to prefer this tail view over the full log. The guidance is implicit rather than direct.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
job_resultsResults download URLARead-onlyIdempotentInspect
For a done/failed job: a presigned download_url (valid ~7 days) for the results tarball (work/, log.lammps, exitcode). Results are deleted 30 days after the run.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Job id, e.g. MDJOB-20260907-3F200C |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds important behavioral details: URL validity ~7 days and results deletion after 30 days, complementing the readOnly and non-destructive annotations.
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 concise sentences that front-load the purpose and key constraints without redundancy.
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?
Complete for a simple read-only tool: states purpose, conditions, and important time-bound behavior. No output schema exists to require additional detail.
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 fully covers the single 'id' parameter; the description does not add extra meaning beyond the schema's own 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?
Clearly states the tool returns a presigned download URL for job results, distinguishing it from job_log, job_status, and delete_results.
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?
Provides condition 'for a done/failed job' but does not explicitly mention alternatives or when not to use, though the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
job_statusJob statusARead-onlyIdempotentInspect
State (created|uploaded|queued|launching|running|uploading|done|failed|cancelled), GPU, rate, billed seconds, cost so far, exit code, error, last thermo lines.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Job id, e.g. MDJOB-20260907-3F200C |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds valuable behavioral context by enumerating the exact fields returned (state, GPU, rate, billed seconds, cost, exit code, error, last thermo lines), which helps the agent understand what to expect. This goes beyond the annotations and is useful.
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, compact sentence that front-loads the core state values and then lists the remaining fields. It contains no filler and every part adds information. It is appropriately concise for a status tool.
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 simple read-only tool with one parameter and no output schema, the description provides the essential response content. It does not explain potential errors, pagination, or the meaning of each field, but for a status tool this is likely adequate. The main gap is the lack of explicit differentiation from siblings, but the tool's scope is small and the annotations cover safety.
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 'id' parameter, which is fully documented with an example. The description adds no additional meaning about the parameter; it only describes the response fields. With full schema coverage, the baseline of 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?
The description states the tool returns job status fields including state, GPU, cost, etc. It is clear the tool is for retrieving status of a job, but it does not explicitly distinguish it from sibling tools like job_log or job_results. The name and title reinforce the purpose, so it is clear but not fully differentiated.
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 description provides no guidance on when to use this tool versus alternatives. There is no mention of scenarios, exclusions, or references to sibling tools. An agent has no hint about when job_status is preferred over job_log or job_results.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_jobsList jobsARead-onlyIdempotentInspect
Jobs of this API key, newest first. Compact rows (id, state, label, created, finished, gpu, cost_usd, error) unless full=true.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | Return the complete status object per job (default false) | |
| limit | No | 1..200, default 20 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety is covered. The description adds behavioral details beyond annotations: the ordering ('newest first') and the effect of full=true (switching from compact rows to complete status object). No contradictions with annotations.
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, compact sentence that front-loads the core purpose (jobs of this API key, newest first) and then adds the output format detail. No wasted words, and the key information is immediately accessible.
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 read-only listing tool with no output schema, the description provides the essential return fields (id, state, label, created, finished, gpu, cost_usd, error) and the full option. It does not mention pagination beyond the limit parameter (which is in the schema) or error behavior, but given the simplicity and annotation coverage, it is reasonably complete.
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 both 'full' and 'limit' are already documented. The description adds context for 'full' ('unless full=true' implying a switch to complete status objects), which goes slightly beyond the schema. However, it does not add any meaning for 'limit', so it only partially enhances parameter understanding. Baseline 3 is appropriate.
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-resource pair: 'Jobs of this API key' clearly indicates a listing operation scoped to the caller's API key, with a defined ordering ('newest first'). It also distinguishes itself from siblings like job_status (single job) and job_results (specific results) by the scope and output format.
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 description implies when to use it—listing all jobs for the API key—and the output format (compact vs full). However, it does not explicitly state alternatives or exclusions, such as 'for a single job, use job_status', leaving the routing to siblings implicit. Given the clear context and sibling names, this is adequate but not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
preflight_deckCheck a deck before spendingARead-onlyIdempotentInspect
Dry run of the check submit_job performs: which styles the deck asks for are MISSING on every hosted LAMMPS image (the run would exit at startup), which are CPU-only, whether its pair style will use the GPU at all, and which image (runner) the job will be routed to — decks needing packages beyond the fast default image run on lammps-full automatically. Nothing is created or billed.
| Name | Required | Description | Default |
|---|---|---|---|
| files | Yes | Deck contents {path: text}, must include `input` | |
| input | Yes | Relative path of the LAMMPS (or runner) input script inside the deck, e.g. in.lmp |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/openWorld/idempotent/non-destructive behavior, and the description adds valuable behavioral context: the run would exit at startup if styles are missing on every image, package-dependent decks automatically route to lammps-full, and nothing is billed. This goes well beyond the annotation hints and gives the agent a concrete model of what happens.
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 information-dense sentence with a front-loaded purpose ('Dry run of the check submit_job performs') and a clear list of outputs. Every clause earns its place, including the safety guarantee and routing behavior, with no filler or repetition of the title.
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 serves as the output contract by enumerating the four decision-relevant results: missing styles, CPU-only styles, GPU usage, and the runner image. It also covers side effects and routing implications, making it complete for an agent to decide when to call the tool and what to do with the result.
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%, and both parameters are already well documented: files is the deck contents map and input is the relative path to the input script. The description adds context about what the deck is used for but does not add new parameter-level syntax or format details, so the baseline 3 is appropriate.
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 operation—a preflight dry run on a deck—and enumerates the exact questions it answers: missing styles, CPU-only styles, GPU usage, and routed runner image. It also distinguishes itself from submit_job by explicitly labeling itself as the dry run of the check submit_job performs.
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 title and phrase 'before spending' plus 'Nothing is created or billed' clearly establish when to use this tool: as a safe precursor to submit_job. It does not explicitly list exclusions or name alternatives, but the comparison to submit_job and the cost-safety framing make the intended usage clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_jobStart an uploaded jobAInspect
Step 2: queue a job whose deck tarball has been uploaded. A GPU pod is launched; billing starts when it reports running.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Job id, e.g. MDJOB-20260907-3F200C |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses important behavioral consequences beyond what annotations provide: it launches a GPU pod and starts billing when the pod reports running. This adds context about side effects and cost, which is valuable for an agent deciding whether to invoke it. It does not contradict the annotations (readOnlyHint=false, non-idempotent, non-destructive).
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 two sentences, front-loaded with the action and sequence step, and includes only essential details (precondition, pod launch, billing). There is no fluff or redundancy, making it highly efficient for an agent to parse quickly.
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?
The description covers the key prerequisites (uploaded tarball), the action, and side effects (pod launch, billing). It lacks explicit mention of what happens on failure or how to check status, but the sibling tools (job_status, job_log) and the non-idempotent annotation cover those aspects. For a simple one-parameter tool, this is fairly complete.
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 input schema already provides full coverage for the single 'id' parameter with an example format. The description does not add any extra meaning about the parameter itself, so it relies on the schema. Baseline of 3 is appropriate since schema coverage is 100%.
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 clearly states the action (queue a job) and the resource (an uploaded job's deck tarball). It positions it as 'Step 2', which helps differentiate it from siblings like create_job or submit_job, but it does not explicitly name those alternatives. The purpose is specific enough to avoid confusion with cancel_job or delete_results.
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 description implies a precondition (deck tarball already uploaded) and a sequence ('Step 2'), which gives some usage context. However, it does not explicitly state when not to use this tool or point to alternatives like submit_job for creating a new job. The guidance is implicit rather than explicit, so it is adequate but not strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_jobSubmit a deck (inline files) and start itAInspect
One call: create a hosted GPU job, upload the deck given INLINE as {relative_path: text}, and queue it. Total inline size <= 8 MB; for larger decks use create_job, PUT the tarball to upload_url, then start_job. Billing starts at the first heartbeat (state running) and stops at done/failed/cancelled. The deck is executed as a program on an isolated GPU pod.
| Name | Required | Description | Default |
|---|---|---|---|
| gpu | No | GPU class; call account for the offered classes and how jobs are priced. Default any = cheapest available | |
| files | Yes | Deck contents: {"in.lmp": "...", "data.al": "..."}; paths relative, no '..'; must include `input` | |
| input | Yes | Relative path of the LAMMPS (or runner) input script inside the deck, e.g. in.lmp | |
| label | No | Free text <= 120 chars shown in job lists | |
| launch | No | Launch template; omit for the default KOKKOS/CUDA LAMMPS command line | |
| runner | No | Runner flavour: lammps (default) or openmm (beta) | |
| estimate_s | No | Your runtime guess in seconds; only used for the balance pre-check (min 900 s at the rate) | |
| wall_limit_s | No | Hard cap in seconds (default 14400, max 86400); the job fails at the cap and is billed to it |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnly=false, destructive=false, and idempotent=false, but the description adds valuable behavioral context: the deck is executed as a program on an isolated GPU pod, and billing starts at the first running heartbeat and stops at terminal states. No contradiction with annotations.
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?
Four dense sentences, each earning its place: the one-call purpose, the size boundary and alternative path, and the billing/execution model. It is front-loaded and free of 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?
For an 8-parameter tool with no output schema, the description plus fully covered schema is nearly complete. It captures the key boundary condition, alternative workflow, execution model, and billing behavior. A small gap is not stating what the response returns, but that does not block correct 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 is 100%, so a baseline of 3 applies. The description adds meaning beyond the schema by clarifying the inline nature of files, the 8 MB aggregate limit, and that the single call combines upload and queueing semantics.
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 composite operation: create a hosted GPU job, upload the inline deck, and queue it. It clearly distinguishes submit_job from the create_job + start_job workflow by framing it as 'One call'.
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 description explicitly sets the inline size threshold (<= 8 MB) and directs agents to use create_job, PUT the tarball to upload_url, then start_job for larger decks. This is concrete when-to-use versus alternative guidance.
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
create_job1 field changed- changed
Input schema / properties / gpu / descriptionPrevious value: -"GPU class; call account for the currently offered classes and hourly rates. Default any = cheapest available"New value: +"GPU class; call account for the offered classes and how jobs are priced. Default any = cheapest available"
- Changed
submit_job1 field changed- changed
Input schema / properties / gpu / descriptionPrevious value: -"GPU class; call account for the currently offered classes and hourly rates. Default any = cheapest available"New value: +"GPU class; call account for the offered classes and how jobs are priced. Default any = cheapest available"
2 tool updates
- Added
capabilities - Added
preflight_deck
3 tool updates
- Changed
create_job2 fields changed- changed
Input schema / properties / gpu / descriptionPrevious value: -"GPU class: any (cheapest available, default), rtx4090, a100 -- see account.rate_table"New value: +"GPU class; call account for the currently offered classes and hourly rates. Default any = cheapest available" - changed
Input schema / properties / runner / descriptionPrevious value: -"Runner flavour: lammps (default) or openmm"New value: +"Runner flavour: lammps (default) or openmm (beta)"
- Changed
list_jobs2 fields changed- added
Input schema / properties / fullAdded value: +{ + "description": "Return the complete status object per job (default false)", + "type": "boolean" +} - changed
Input schema / properties / limit / descriptionPrevious value: -"1..200, default 50"New value: +"1..200, default 20"
- Changed
submit_job2 fields changed- changed
Input schema / properties / gpu / descriptionPrevious value: -"GPU class: any (cheapest available, default), rtx4090, a100 -- see account.rate_table"New value: +"GPU class; call account for the currently offered classes and hourly rates. Default any = cheapest available" - changed
Input schema / properties / runner / descriptionPrevious value: -"Runner flavour: lammps (default) or openmm"New value: +"Runner flavour: lammps (default) or openmm (beta)"
1 tool update
- Added
delete_results
9 tool updates
- First observed
account - First observed
cancel_job - First observed
create_job - First observed
job_log - First observed
job_results - First observed
job_status - First observed
list_jobs - First observed
start_job - First observed
submit_job
Related MCP Connectors
Agent-to-Agent (A2A) + Model Context Protocol (MCP) hub for peptides.
AI orchestration for computational chemistry and HPC workflows.
Cited English property planning-constraint screening and batch tools for AI agents.
Agent Replay Debugger MCP — record every agent step + deterministic replay. Step-debugger for
Related MCP Servers
- AlicenseAqualityCmaintenanceDrive VMD from any LLM — render GROMACS/LAMMPS trajectories and analyze clathrate-hydrate cages through the Model Context Protocol.1722 PyPIMIT
- AlicenseAqualityBmaintenanceAn MCP server for computational materials science that enables AI assistants to generate LAMMPS simulations, parse outputs, analyze nematic order, detect plastic rearrangements, and estimate viscosity through 12 specialized tools.121MIT
- AlicenseBqualityBmaintenanceHeadless PyMOL for molecular visualization, GROMACS/LAMMPS MD trajectories, and clathrate-hydrate cage analysis: H-bond networks, F3/F4 order parameters, and TRACE cage perception + occupancy.32MIT
- AlicenseNot gradedqualityDmaintenanceIntegrates GROMACS molecular dynamics simulations with VMD visualization, enabling setup, execution, analysis, and 3D visualization of molecular dynamics workflows through natural language.24MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.