Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
TMPDIRNoDiretório temporário usado para os arquivos de job
MCP_FREECAD_CMDNoComando do freecadcmd, separado como num shell (aceita aspas). Vence qualquer descoberta. Ex.: flatpak run --command=freecadcmd org.freecad.FreeCAD
MCP_FREECAD_TIMEOUT_SNoTimeout padrão por operação, em segundos. Padrão 120; sempre limitado a 5–900
MCP_FREECAD_ALLOWED_PATHSNoPrefixos separados por : onde o servidor pode ler e escrever. Padrão: home, o diretório temporário do sistema, /tmp e /var/tmp. Symlinks são resolvidos nos dois lados e a comparação é por componente de caminho (/tmpfoo não casa com /tmp)

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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
freecad_versionA

Versão do FreeCAD, do Python embutido e qual comando o servidor está usando.

Primeira coisa a chamar quando algo não funciona: confirma que o freecadcmd foi encontrado e por qual regra (env, PATH, caminho conhecido, flatpak, snap).

doc_inspectA

Abre um modelo e devolve dimensões, volume, validade e se é estanque (watertight).

Aceita .FCStd, .step/.stp, .iges/.igs, .brep e malhas .stl/.obj/.3mf/.ply. Unidades sempre em mm. Para sólidos e documentos lista os objetos finais (até 100; objects_total diz quantos existem) com name e label: qualquer um dos dois serve no parâmetro objects de doc_export e doc_export_2d. Para malha devolve mesh (facetas, is_solid, non_manifold, self_intersections). checks.watertight é o que decide se a peça imprime em FDM.

doc_exportA

Converte um modelo para o formato da extensão de out_path.

Saídas: .step/.stp, .iges/.igs, .brep, .FCStd e malhas .stl/.3mf/.obj/.ply. Ao gerar malha a partir de sólido, linear_deflection (mm) e angular_deflection_deg controlam a fineza: valores menores dão mais facetas. objects filtra por Name ou Label; sem ele exporta todos os objetos finais. Malha não vira .step/.iges/.brep, só .FCStd ou outra malha. Não sobrescreve a própria entrada.

doc_export_2dA

Gera .svg ou .dxf em mm a partir de um sólido: perfil de corte a laser ou desenho.

mode="section" corta o modelo pelo plano eixo=offset e exporta os contornos (para laser, use este). mode="projection" exporta a vista com arestas visíveis e silhueta, boa como preview ou desenho; offset é ignorado. O desenho nunca sai espelhado: z é a vista de topo (x,y), y a frontal (x,z) e x a lateral direita (y,z). Exige sólido ou documento (não aceita malha). wires no retorno é o número de contornos (section) ou de arestas (projection).

part_run_scriptA

Roda um script Python no FreeCAD headless: a válvula de escape da API completa.

Serve para modelar o que as outras tools não cobrem (roscas, gabinetes paramétricos, peças de jogo). O script já tem no namespace doc (documento novo), OUT_DIR (str) e os módulos FreeCAD (também como App) e Part; qualquer outro (Mesh, Sketcher, PartDesign...) é import seu. Grave o que quiser em OUT_DIR, por exemplo shape.exportStl(OUT_DIR + "/peca.stl"). Retorna stdout, files (novos ou modificados em out_dir) e objects (objetos finais de doc). Erro no script volta como {error} com traceback e stdout. timeout_s vale de 5 a 900 (padrão: MCP_FREECAD_TIMEOUT_S ou 120). ATENÇÃO: o script roda com as permissões do usuário; MCP_FREECAD_ALLOWED_PATHS valida só os argumentos, não isola o script.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.1/5.0

Scored across 5 tools

Disambiguation4/5

Each tool has a clearly distinct role: version diagnostics, inspection, 3D export, 2D export, and a scripting escape hatch. The only mild overlap is between doc_export and doc_export_2d, but the descriptions make the 3D-vs-2D boundary explicit (extension-based vs .svg/.dxf).

Naming Consistency3/5

All names are snake_case and readable, but the prefixes are inconsistent: freecad_, doc_, part_, and doc_export_2d adds a numeric suffix. The doc_* family is coherent while freecad_version and part_run_script follow different conventions.

Tool Count5/5

Five tools is well-scoped for a FreeCAD server, and each one earns its place: diagnostics, read, two write formats, and a general scripting fallback. No redundancy or filler.

Completeness4/5

The surface covers the core lifecycle (version check, inspect, 3D export, 2D export) plus an unbounded escape hatch via part_run_script that handles modeling the other tools omit. There is no dedicated create/modify tool, but scripting largely fills that gap so agent dead-ends are unlikely.

Maintenance

ActivityMaintained
ResponsivenessNo issues