Skip to main content
Glama
sharafutdinovdi

Revit Model MCP

List Revit Jobs

revit_jobs
Read-onlyIdempotent

List queued and running jobs in a selected Revit process, inspect skipped entries, and cancel a pending job by ID when needed.

Instructions

List queued and running jobs in the selected Revit process.

Supply cancel_job_id to cancel one of this server process's own jobs. A running action finishes without interruption.

If more than one Revit instance is running, document is required; otherwise any instance may respond. Non-empty skipped means the answer is incomplete; skippedCount includes entries beyond the first 100.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
documentNoCase-insensitive substring of the target active document title or file name. Reads require exactly one matching instance; omitted document requires exactly one running instance. Zero or multiple matches fail before publishing. revit_list_instances returns all matching instances, or all running instances when omitted.
process_idNoExact positive Revit process ID. Takes precedence over document; if both are supplied they must agree.
cancel_job_idNo
timeout_secondsNoPositive integer seconds to wait for a result after pickup (120 when omitted); HTTP uses this as its response budget. Expiry raises an error, and increasing it does not override the add-in's execution limits.
pickup_timeout_secondsNoPositive integer seconds to wait for the add-in to pick up a local or SSH job (300 when omitted); ignored over HTTP. A pickup timeout raises an error but the pending job may still execute later.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.7.0

TDQS

B3.2/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explicitly states that supplying cancel_job_id will 'cancel one of this server process's own jobs,' which is a state-changing operation, while the annotations declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. That is a direct conflict: an agent trusting the annotations would treat this as a pure read with no side effects. The otherwise useful disclosures (a running action finishes without interruption; non-empty 'skipped' means an incomplete answer; skippedCount caps at 100) cannot offset a contradiction of this severity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is compact and front-loads the core purpose before the optional cancel behavior and the multi-instance constraint. The trailing sentences about document selection and 'skipped'/'skippedCount' are appended without transition, reading more like stacked constraints than a structured narrative, but nothing is padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description need not enumerate return fields, yet it still flags the important result-shape caveat (non-empty skipped = incomplete answer, skippedCount truncates past 100). Combined with the multi-instance document rule and cancel semantics, the coverage is solid; only the annotation mismatch and the absence of sibling routing keep it from being fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 80%, so the document and process_id semantics are already carried by the schema, and the description largely restates the multi-instance/documented requirement. It does add meaning the schema lacks for cancel_job_id (which has no schema description at all) by scoping it to 'this server process's own jobs,' clarifying a capability boundary rather than just a type.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'List queued and running jobs in the selected Revit process.' It is clearly a job-queue inspection tool, but it never distinguishes itself from lookalike siblings such as revit_batch_status or revit_batch_cancel, which also report on work items. An agent must infer the boundary between 'jobs' and 'batches'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives one conditional usage rule — supply cancel_job_id to cancel one of this server process's own jobs — and states that a document is required when more than one Revit instance is running. However, there is no guidance on when to prefer this tool over revit_batch_status or revit_list_instances, and no explicit statement of what it is not for.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.