Skip to main content
Glama
hram

FreeCAD MCP

by hram

get_async_status

Report the state of background FreeCAD code jobs or list running and recent jobs with errors and tracebacks, without blocking the GUI.

Instructions

Report the state of background jobs started by execute_code_async.

Does not use the FreeCAD GUI thread, so it answers even while a job runs.

Args:
    job_id: The id returned by execute_code_async. Empty lists all running
        jobs and up to 20 recently completed jobs.

Returns:
    For one job: its state (running/done/failed), the error and traceback
    when it failed. History is held in memory until FreeCAD exits.

Input Schema

NameRequiredDescriptionDefault
job_idNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations present, the description carries the full burden and does it well: it discloses that the call bypasses the FreeCAD GUI thread and answers while a job runs, that history lives only in memory until FreeCAD exits, and that failures return an error plus traceback.

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?

It is front-loaded: the purpose and the thread-safety guarantee come first, then Args and Returns. The structure is clean, though the Args/Returns scaffolding is slightly heavier than this one-parameter tool needs.

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?

For a one-parameter read with no output schema, it covers state values (running/done/failed), error/traceback on failure, and history lifetime, which is nearly everything needed. It leaves open how to retrieve a completed job's actual output or result, which is the one gap.

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

Parameters5/5

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

Schema coverage is 0%, so the description must compensate, and it does: job_id is defined as the id returned by execute_code_async, and the empty-string default is explained in terms of what is listed rather than just repeating the type.

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

Purpose5/5

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

States a specific verb and resource ('Report the state of background jobs') and anchors it to the originating tool (execute_code_async), so an agent can distinguish it from get_rpc_status and get_assembly_job 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.

Usage Guidelines4/5

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

The description makes clear this follows execute_code_async and that an empty job_id lists all running plus up to 20 recently completed jobs, which is a concrete usage rule. It does not explicitly exclude cases or name a sibling alternative, keeping it just below a 5.

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