FreeCAD MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| host | No | The IP address or hostname of the machine running FreeCAD. If not specified, it defaults to localhost. | |
| only-text-feedback | No | If set to 'true', the server will provide only text feedback to save tokens instead of full graphical/resource responses. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| create_documentA | Create a new document in FreeCAD. |
| create_objectA | Create a new object in FreeCAD. Object type is starts with "Part::" or "Draft::" or "PartDesign::" or "Fem::". |
| edit_objectB | Edit an object in FreeCAD.
This tool is used when the |
| delete_objectA | Delete an object in FreeCAD. |
| execute_codeA | Execute arbitrary Python code in FreeCAD. |
| get_viewA | Get a screenshot of the active view. |
| insert_part_from_libraryB | Insert a part from the parts library addon. |
| get_objectsA | Get all objects in a document. You can use this tool to get the objects in a document to see what you can check or edit. |
| get_objectA | Get an object from a document. You can use this tool to get the properties of an object to see what you can check or edit. |
| get_parts_listA | Get the list of parts in the parts library addon. |
| list_documentsA | Get the list of open documents in FreeCAD. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| asset_creation_strategy |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 11 tools
Most tools have distinct purposes (e.g., create_document vs. create_object vs. get_view), but some overlap exists: create_object and edit_object could be confusing since edit_object is described as a fallback for when create_object fails, and get_object vs. get_objects are similar but differentiated by singular vs. plural. Overall, descriptions help clarify boundaries, but minor ambiguity remains.
All tool names follow a consistent snake_case pattern with clear verb_noun structure (e.g., create_document, delete_object, list_documents). There are no deviations in naming conventions, making the set predictable and easy to understand at a glance.
With 11 tools, the count is well-scoped for a CAD modeling server like FreeCAD. It covers core operations (create, delete, edit, get, list) across documents, objects, and views, plus specialized tools (execute_code, insert_part_from_library), without feeling excessive or insufficient for the domain.
The toolset provides solid coverage for basic CAD operations, including document and object lifecycle (create, get, edit, delete) and view management. However, there are minor gaps: no explicit update or save operations for documents, and the execute_code tool might be a catch-all that could indicate missing specialized functions. Overall, agents can likely work around these gaps.