FreeCAD MCP Server
Provides tools for creating, editing, and querying 3D models in FreeCAD through AI agents. Enables operations like shape creation, boolean operations, sketching, extruding, filleting, and more.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@FreeCAD MCP ServerCreate a 50mm cube and name it 'MyCube'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
FreeCAD Addin & MCP Server for AIエージェント
バージョン: 0.9.0
このプロジェクトは、Claude DesktopまたはCodex DesktopなどのAIエージェントがFreeCADを直接操作するためのModel Context Protocol (MCP)サーバーです。このツールをAIエージェントに追加することで、チャットのプロンプトを通じて3Dモデルの作成、編集、情報取得が可能になります。
このサーバーは、FreeCAD内で動作するPythonマクロ(freecad_mcp_addon.py)と連携して機能します。
作者: Kanbara Tomonori
X (旧Twitter): @tomo1230
ライセンス: MIT License
概要とアーキテクチャ
このツールは、AIエージェントとの対話を通じて、直感的かつ自然言語ベースでFreeCADのモデリング作業を行うためのブリッジとして機能します。
このREADMEでは、Claude Desktop / Codex / Claude Code の3パターンに分けてセットアップ方法を説明します。
処理フロー:
ユーザーがAIエージェントのチャットで自然言語でプロンプトを送信します。(例:
50mmの立方体を作って)MCPツールはClaudeが自動的に認識・使用するため、特別なプレフィックスは不要です。AIエージェントは、このNode.jsサーバー(
freecad_mcp_server.js)を子プロセスとして起動し、CallToolRequestを送信します。Node.jsサーバーはリクエストをJSONコマンドに変換し、
http://127.0.0.1:8765/commandに HTTP POST します。FreeCAD内で実行中のPythonマクロ(
freecad_mcp_addon.py)がHTTPサーバーとして待ち受けており、リクエストを受信してFreeCADのPart APIを実行します。Pythonマクロは実行結果をHTTPレスポンスとして返します。
Node.jsサーバーがレスポンスを受け取り、AIエージェントに結果を返します。
AIエージェントがその結果を解釈し、ユーザーに応答します。
ポート設定: デフォルトは
127.0.0.1:8765。環境変数FREECAD_MCP_HOST/FREECAD_MCP_PORTで変更可能です。
Related MCP server: FreeCAD MCP
セットアップ
まずは全エージェント共通の準備を行い、その後に使いたいクライアントごとの設定を追加します。
どのクライアントを使うか
クライアント | 用途 | このREADMEでの対象 |
Claude Desktop | GUIチャットでFreeCADを操作 | MCPサーバー接続手順 |
Codex | Codexアプリ/CLIからFreeCADを操作 | MCPサーバー接続手順 |
Claude Code | ターミナル型エージェントでモデリング手順を安定化 |
|
Step 1: 共通の前提条件
Node.js: v18以降がインストールされていること。(https://nodejs.org/ja/download)
FreeCAD: バージョン 1.0以降がインストールされていること。(https://www.freecad.org/)
このリポジトリ:
freecad_mcp_server.jsとfreecad_mcp_addon.pyを使える状態にしておくこと
Step 2: 共通のインストール
任意の場所にこのリポジトリをクローンします。
git clone https://github.com/tomo1230/freecad_mcp_serverターミナルでディレクトリに移動し、依存関係をインストールします。
cd freecad_mcp_server npm install @modelcontextprotocol/sdk
Step 3: FreeCADでマクロを起動
FreeCADを起動します。
メニューから マクロ → マクロを実行... を選択します。
このリポジトリの
freecad_mcp_addon.pyを選択して実行します。FreeCADのコンソールに
[MCP] FreeCAD MCP Addon started. API endpoint: http://127.0.0.1:8765/commandと表示されれば待ち受け状態です。
注意: FreeCADを再起動するたびにマクロの再実行が必要です。
Step 4: 回帰テストの実行(任意)
FreeCAD MCP の全ツールをまとめて確認したい場合は、freecad_mcp_addon.py マクロを実行した状態で次を実行します。
npm run test:regressionPowerShell で npm 実行がブロックされる環境では、次を使ってください。
npm.cmd run test:regressionこの回帰テストでは以下を確認します。
57 個の MCP ツールをすべて実行できること
形状作成、ブール演算、計測、スケッチ拘束、保存、エクスポートが成功すること
get_edges_infoが複合形状でも失敗しないことextrude_sketchが閉じたスケッチで正常動作すること
実行後は作業ディレクトリに次の成果物が生成されます。
regression_all_tools_<timestamp>.fcstdregression_comboAll_<timestamp>.stl
Claude Desktop のセットアップ
GUI の Claude Desktop から FreeCAD を操作したい場合の手順です。
前提
Claude Desktop: アプリケーションがインストールされていること。(https://claude.ai/download)
設定手順
Claude Desktopを開き、左上のツールメニューからファイル>設定の画面に移動します。
「設定を編集」のボタンをクリックします。
claude_desktop_config.jsonに以下を追加します。リポジトリにはサンプルとして.claude/claude_desktop_config.jsonも含まれています。{ "mcpServers": { "freecad": { "command": "node", "args": ["/path/to/freecad_mcp_server/freecad_mcp_server.js"], "env": { "FREECAD_MCP_HOST": "127.0.0.1", "FREECAD_MCP_PORT": "8765" } } } }
注意:
envの設定はデフォルト値なので省略可能です。FreeCADのHTTPサーバーポートを変更した場合のみ指定してください。
使用例
幅50、奥行き30、高さ20の箱を作って"MyCube" という名前の立方体を作成して、その寸法を教えて最後に作ったボディに半径2mmのフィレットを追加して
Codex のセットアップ
Codex からこの MCP サーバーを呼び出したい場合の手順です。
前提
Codex: アプリまたはCLIがインストールされていること
設定手順
Codex の設定ファイルに
freecadサーバーを追加します。リポジトリにはサンプルとして
.codex/config.tomlが含まれています。パスを自分の環境に合わせて
freecad_mcp_server.jsへ向けてください。
approval_policy = "never"
[mcp_servers.freecad]
command = "node"
args = ["C:\\freecad_mcp_server\\freecad_mcp_server.js"]
enabled = true
alwaysAllow = true補足
alwaysAllow = trueにすると、Codex から FreeCAD MCP ツールを毎回確認なしで使えます。FreeCAD 側では、事前に
freecad_mcp_addon.pyを起動しておく必要があります。ホストやポートを変える場合は、Codex 側の設定ではなく環境変数
FREECAD_MCP_HOST/FREECAD_MCP_PORTを使って Node.js サーバー側を調整してください。
使用例
50mmの立方体を作って円柱を作ってから上面に半径3mmのフィレットを追加していまあるボディ一覧を教えて
Claude Code のセットアップ
Claude Code では、MCPサーバー設定そのものよりも、SKILL.md を導入してモデリング時のツール実行順序を安定させる使い方を想定しています。
Claude Desktop のチャット設定とは別です。こちらは Claude Code(ターミナル版) 向けの説明です。
SKILL.md の役割
ファイル | 役割 |
| 参照用コピー。内容の確認・バージョン管理に使用 |
| Claude Code が実際に読み込むスキル本体 |
インストール方法
スキルディレクトリを作成します。
%APPDATA%\Claude\local-agent-mode-sessions\skills-plugin\<session-id>\<sub-id>\skills\freecad-modeling-order\上記ディレクトリに
SKILL.mdをコピーします。同ディレクトリの
manifest.jsonの"skills"配列に以下を追加します。{ "skillId": "freecad-modeling-order", "name": "freecad-modeling-order", "description": "FreeCAD MCPツールを使って3Dモデリングを行う際に、ツールの正しい実行順序を参照・適用するためのスキル。...", "creatorType": "user", "updatedAt": "2026-03-27T00:00:00.000Z", "enabled": true }Claude Code を再起動すると自動的にスキルが有効になります。
このスキルが有効な場面
コーヒーカップ・ボトル・容器など複合形状の作成
ブール演算(結合・切除)とシェル化の組み合わせ
フィレット・面取り・パターン・ミラーを含む複数ステップ作業
スウィープ・ロフト形状の作成
モデリングベストプラクティス / ツール実行順序
複雑な形状を確実に作るためには、ツールの実行順序が重要です。 順序を間違えるとブール演算が失敗したり、フィレットが適用できなくなる場合があります。
🔑 基本原則(全モデルに共通)
形状作成・配置 → ブール演算(結合/切除) → シェル化 → パターン/ミラー → フィレット/面取り → 保存/エクスポート優先度 | ルール | 理由 |
🔴 最重要 | フィレット/面取りは最後 | 丸みのついたエッジは後続のブール演算を失敗させる |
🔴 最重要 | ブール演算(結合)→ シェル化 | ソリッド同士をまず一体化してから中空化する |
🟠 重要 | 移動/回転してからブール演算 | 位置確定後に切除・結合する |
🟠 重要 | パターンはブール演算の前か後か意識する | 目的によって順序が変わる(後述) |
🟡 推奨 | 干渉チェックしてからブール演算 | 意図しない切除・結合を防ぐ |
🟡 推奨 | エッジ/面情報を確認してからフィレット | インデックス指定ミスを防ぐ |
📋 ケース別ベストプラクティス
① コーヒーカップ(取っ手付きの容器)
NG順序: カップをシェル化 → 取っ手を結合 → シェル済みの薄肉ボディへのブール演算は失敗しやすい
✅ 正しい順序:
1. create_cylinder ── カップ本体(ソリッド)
2. create_pipe / create_cylinder ── 取っ手(ソリッド)
3. move_by_name / rotate_by_name ── 取っ手を正しい位置に配置
4. combine_by_name (join) ── 本体 + 取っ手 を一体化(ソリッド同士)
5. shell_body ── 一体化後に中空化(厚み・開口面を指定)
6. add_fillet ── 最後に角を丸める
7. export_file ── 完成後にエクスポート② ボルト穴パターン(円形配列で複数穴)
NG順序: 穴を1つ切除 → パターン複製 → 切除後の複雑形状をパターン化するとインデックスがずれる
✅ 正しい順序:
1. create_cylinder ── 本体
2. create_cylinder ── 穴ツール(1個)
3. move_by_name ── 穴ツールを1か所目の位置へ
4. create_circular_pattern ── 穴ツールを円形配列(切除前にパターン化)
axis="z", quantity=4, angle=360
5. combine_selection (cut) ── 本体からパターン全穴を一括切除
6. add_chamfer ── 穴の入り口を面取り(最後)
7. export_file③ 左右対称部品(ミラーコピー)
NG順序: フィレット追加 → ミラーコピー → 結合 → フィレット後の複雑形状を結合すると接合部に問題が起きやすい
✅ 正しい順序:
1. create_sketch + draw_* ── 片側の断面スケッチ
2. add_*_constraint / add_*_dimension ── 拘束・寸法を確定
3. extrude_sketch ── 押し出してソリッド化
4. copy_body_symmetric ── ミラーコピー(フィレット前)
5. combine_by_name (join) ── 両側を結合(ソリッド同士)
6. add_fillet ── 結合後に丸め処理(最後)
7. export_file④ スイープ/ロフト形状(パイプ継手・ブレンド形状)
NG順序: sweep_sketch を呼ぶ → その後でパスを作成 → スケッチが存在しないと実行エラーになる
✅ 正しい順序:
1. create_sketch (plane=yz) ── 断面プロファイルのスケッチを先に用意
2. draw_circle_in_sketch ── 断面形状を描く
3. create_sketch (plane=xy) ── パス用スケッチを用意
4. draw_line_in_sketch ── パス形状を描く
5. sweep_sketch ── プロファイル + パス の両方が揃ってから実行
6. add_fillet ── 最後
loft_sketchesも同様に、全プロファイルスケッチを先に作成してから呼び出す。
⑤ 干渉チェック → ブール演算
位置ずれのまま切除すると意図しない形状になる
✅ 正しい順序:
1. create_* / move_by_name ── ツールボディを配置
2. check_interference ── 干渉を確認(Trueなら重なっている)
3. combine_by_name (cut) ── 干渉を確認してから切除⚙️ ツールごとの推奨呼び出し順序まとめ
【形状作成フェーズ】
create_box / create_cylinder / create_sphere ...
create_sketch → draw_* → add_*_constraint → add_*_dimension
extrude_sketch / revolve_sketch / loft_sketches / sweep_sketch
【配置フェーズ】
move_by_name / rotate_by_name
↓ (任意) check_interference で干渉確認
【ブール演算フェーズ】
combine_by_name / combine_selection / combine_selection_all
【中空化フェーズ】 ← ブール演算(結合)の後
shell_body
【パターン/ミラーフェーズ】
create_circular_pattern / create_rectangular_pattern
copy_body_symmetric
【仕上げフェーズ】 ← 必ず最後
add_fillet / add_chamfer
【情報確認フェーズ】 ← 任意のタイミングで
get_all_bodies / get_body_dimensions / get_bounding_box / get_body_center
get_edges_info / get_faces_info ← フィレット前にインデックス確認
get_mass_properties / get_body_relationships
measure_distance / measure_angle / check_interference
【出力フェーズ】 ← 最後
save_document / export_file⚠️ 注意が必要なツール
ツール | 注意点 |
| モデリング途中では使用禁止。作り直し時の冒頭のみ |
| ブール演算で結合してから呼び出す |
| 全ブール演算・パターン完了後に呼び出す。 |
| 非表示ボディは対象外。 |
| 可視化用途のみ。断面ボディは後続のブール演算に使わない |
| 全プロファイルスケッチが存在していないと失敗 |
| プロファイルとパスの両スケッチが存在していないと失敗 |
APIリファレンス / 利用可能なツール
Claudeは以下のツールを呼び出すことでFreeCADを操作します。
形状作成ツール (10種)
配置パラメータ補足:
cx/cy/czは中心座標。x_placement(left/center/right)・y_placement(front/center/back)・z_placement(bottom/center/top)で基準点を変更できます(対応ツールのみ)。
ツール名 | 説明 | 主なパラメータ |
| 直方体を作成 | width, depth, height, cx, cy, cz, x_placement, y_placement, z_placement |
| 立方体を作成 | size, cx, cy, cz, x_placement, y_placement, z_placement |
| 円柱を作成 | radius, height, cx, cy, cz, z_placement |
| 球を作成 | radius, cx, cy, cz |
| 円錐を作成 | radius, radius2, height, cx, cy, cz, z_placement |
| トーラス(ドーナツ形状)を作成 | major_radius, minor_radius, cx, cy, cz |
| 半球を作成 | radius, orientation(positive/negative), cx, cy, cz |
| 半トーラスを作成 | major_radius, minor_radius, sweep_angle, cx, cy, cz |
| 多角柱を作成 | num_sides, radius, height, cx, cy, cz, z_placement |
| 2点間にパイプ(円筒管)を作成 | radius, x1, y1, z1, x2, y2, z2 |
スケッチ作成・描画ツール (4種)
ツール名 | 説明 | 主なパラメータ |
| スケッチ平面を作成 | sketch_name, plane(xy/xz/yz), cx, cy, cz |
| スケッチに矩形を描く | sketch_name, x1, y1, x2, y2 |
| スケッチに円を描く | sketch_name, cx, cy, radius |
| スケッチに直線を描く | sketch_name, x1, y1, x2, y2 |
スケッチ拘束・寸法ツール (8種)
ツール名 | 説明 | 主なパラメータ |
| 水平拘束を追加 | sketch_name, edge_index |
| 垂直拘束を追加 | sketch_name, edge_index |
| 平行拘束を追加 | sketch_name, edge1, edge2 |
| 垂直(直角)拘束を追加 | sketch_name, edge1, edge2 |
| 一致拘束を追加 | sketch_name, edge1, edge2, point1, point2 |
| 接線拘束を追加 | sketch_name, edge1, edge2 |
| 線形寸法拘束を追加 | sketch_name, edge_index, distance |
| 半径寸法拘束を追加 | sketch_name, edge_index, radius |
スケッチからソリッド生成ツール (4種)
ツール名 | 説明 | 主なパラメータ |
| スケッチを押し出してソリッドを作成 | sketch_name, length, symmetric, body_name |
| スケッチを回転させてソリッドを作成 | sketch_name, axis, angle, body_name |
| プロファイルをパスに沿ってスイープ | profile_sketch, path_sketch, body_name |
| 複数スケッチをロフトしてソリッドを作成 | sketch_names[], ruled, body_name |
編集・修正ツール (6種)
ツール名 | 説明 | 主なパラメータ |
| エッジにフィレット(角丸め)を追加。半径が大きすぎる場合は自動的に縮小してリトライ | body_name, radius, edge_indices[] (空=全エッジ) |
| エッジに面取りを追加 | body_name, distance, edge_indices[] (空=全エッジ) |
| ボディをシェル(中空)化 | body_name, thickness, face_indices[], new_body_name |
| 矩形パターンで複製 | source_body_name, quantity_one, distance_one, direction_one_axis(x/y/z), quantity_two, distance_two, direction_two_axis(x/y/z), new_body_base_name |
| 円形パターンで複製 | source_body_name, quantity, angle, axis(x/y/z), new_body_base_name |
| 断面ビュー(カット済みボディ)を作成 | body_name, plane(xy/xz/yz), offset, new_body_name |
ブール演算ツール (3種)
ツール名 | 説明 | 主なパラメータ |
| 2ボディをブール演算で結合 | target_body, tool_body, operation(join/cut/intersect), new_body_name |
| 複数ボディをブール演算で結合 | body_names[], operation, new_body_name |
| 表示中の全ボディをブール演算で結合 | operation, new_body_name |
変換・表示ツール (5種)
ツール名 | 説明 | 主なパラメータ |
| ボディを移動 | body_name, x_dist, y_dist, z_dist |
| ボディを回転 | body_name, axis, angle, cx, cy, cz |
| ボディをミラーコピー | source_body_name, new_body_name, plane(xy/xz/yz) |
| ボディを非表示にする | body_name |
| ボディを表示する | body_name |
情報取得・測定ツール (11種)
ツール名 | 説明 | 主なパラメータ |
| ドキュメント内の全ボディ一覧を取得 | ― |
| ボディの寸法・体積・面積を取得 | body_name |
| バウンディングボックスを取得 | body_name |
| 重心と幾何中心を取得 | body_name |
| 質量特性(体積・面積・質量・重心)を取得 | body_name, density |
| エッジ情報(長さ・種別)を取得 | body_name |
| 面情報(面積・種別・中心)を取得 | body_name |
| 2ボディの位置関係(距離・干渉)を取得 | body1, body2 |
| 2ボディ間の最短距離を測定 | body1, body2 |
| 2ボディの指定面間の角度を測定 | body1, body2, face_index1, face_index2 |
| 2ボディが干渉しているか確認 | body1, body2 |
ユーティリティ (6種)
ツール名 | 説明 | 主なパラメータ |
| 複数コマンドを順番に実行 | commands[] |
| FreeCADドキュメントを保存 | filename |
| ボディをファイルにエクスポート | body_name, format(step/stl/obj/fcstd), filename |
| ドキュメントの全オブジェクトを削除 | ― |
| 直前の操作を1ステップ元に戻す | ― |
|
| ― |
🟢 できること
基本形状作成 - 直方体、立方体、円柱、球、円錐、トーラス、半球、半トーラス、多角柱、パイプ(10種)
スケッチモデリング - 2D図形描画(矩形・円・直線)+ 押し出し・回転・スイープ・ロフトでソリッド化
スケッチ拘束 - 水平・垂直・平行・垂直(直角)・一致・接線拘束、線形・半径寸法
編集操作 - フィレット、面取り、シェル化(中空化)、断面ビュー作成
パターン作成 - 円形・矩形配列、ミラーコピー
ブール演算 - 結合、切除、交差(2ボディ指定・複数選択・全体一括)
変換 - 移動、回転、表示/非表示
情報取得 - 寸法、体積、質量特性、エッジ/面情報、2ボディ間距離・角度・干渉チェック
ファイル操作 - FreeCAD形式で保存、STEP/STL/OBJ/FCStdでエクスポート
Undo/Redo - 操作単位での元に戻す・やり直し(トランザクション対応)
🔴 できないこと
自由曲面 - NURBS曲面、有機的な形状
アセンブリ - 複数部品の組み立て・拘束
解析・製造 - CAM、FEA(有限要素解析)、レンダリング
図面作成 - 2D図面(TechDrawワークベンチ)の自動生成
複雑なスケッチ - 多くの要素・拘束・関係性を持つ2Dスケッチ
使用例
YouTube モデるんですAI チャンネル
「しゃべるだけで、世界がカタチになる。」 ことばが、モノになる時代。 『ModerundesuAI』は、AIと会話するだけで3Dモデリングができる、 未来のモノづくり体験をシェアするYouTubeチャンネルです。 Fusion 360やBlenderなどのCADソフトとAI(ChatGPTやClaude)を連携させて、 プロンプト(命令文)でリアルな“カタチ”を自動生成。 初心者からモデリング好きまで、誰でも「つくる楽しさ」に触れられるコンテンツを発信します!
https://www.youtube.com/@ModerundesuAI
「FreeCADでサイコロを設計して」Claude AI&FreeCAD API 連携🤖AIモデリングチャレンジ!💪 「FreeCADで400mlの水が入るコップを設計して」Claude AI&Autodesk Fusion API 連携🤖AIモデリングチャレンジ!💪 「FreeCADで手すり付きの螺旋階段を設計して」Claude AI MCP & FreeCAD API 連携🤖AIモデリングチャレンジ!💪
関連記事(note)
AIエージェントに「FreeCADでこれ作って」と話しかけるだけで、3Dモデリングできる時代が来た!?
ライセンス
MIT License - 詳細は LICENSE ファイルを参照してください。
Available Tools
57 toolsadd_chamferD
FreeCAD tool: add_chamfer
| Name | Required | Description | Default |
|---|---|---|---|
| body_name | No | Body name | |
| distance | No | Chamfer distance (mm) | |
| edge_indices | No | Edge indices (empty=all, array or JSON string) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but discloses zero behavioral traits (e.g., destructive nature, required selections, side effects).
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?
Extremely concise (4 words) but constitutes under-specification; fails to provide information that earns its place.
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?
Inadequate for a tool with 3 parameters and no output schema or annotations; lacks explanation of chamfer operation, edge behavior, or result implications.
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% with clear parameter descriptions, so the baseline is 3. The tool description adds no extra meaning but does not harm.
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 'FreeCAD tool: add_chamfer' is a tautology that restates the name without specifying what a chamfer is or what the tool does, failing to distinguish it from siblings like add_fillet.
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?
No guidance on when to use this tool versus alternatives such as add_fillet, edge selection scenarios, or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_coincident_constraintD
FreeCAD tool: add_coincident_constraint
| Name | Required | Description | Default |
|---|---|---|---|
| sketch_name | No | Body name | |
| edge1 | No | First geometry index | |
| edge2 | No | Second geometry index | |
| point1 | No | Vertex on first edge (1=start, 2=end) | |
| point2 | No | Vertex on second edge (1=start, 2=end) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description discloses no behavioral traits. There is no mention of side effects (e.g., sketch modification), error conditions, or dependencies, leaving the agent without critical context for a geometric constraint tool.
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 sentence but is under-specified. It does not convey necessary information about the tool's action, making it wasteful rather than concise. Effective conciseness requires substance.
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 lack of output schema and annotations, the description is severely incomplete. It does not explain return values, success conditions, or how the constraint is applied, leaving the agent without essential behavioral context.
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 covers all 5 parameters with descriptions, so schema_description_coverage is 100%. The description adds no extra meaning beyond the schema. Baseline 3 is appropriate because schema already provides basic parameter info, but the description fails to clarify how parameters relate to the constraint operation.
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 is 'FreeCAD tool: add_coincident_constraint', which essentially restates the name without specifying what the tool does (e.g., constraining two points or edges to coincide). It does not differentiate from sibling constraint tools like add_horizontal_constraint or add_tangent_constraint.
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?
No guidance is provided on when to use this tool vs. alternatives. The description lacks context such as required preconditions (e.g., an active sketch) or scenarios where this constraint is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_filletD
FreeCAD tool: add_fillet
| Name | Required | Description | Default |
|---|---|---|---|
| body_name | No | Body name | |
| radius | No | Fillet radius (mm) | |
| edge_indices | No | Edge indices (empty=all, array or JSON string) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey behavioral traits. It offers none—no mention of mutability, document modification, or requirements (e.g., selected edges). The tool's impact on the model is entirely opaque.
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 extremely concise but not in a helpful way. It lacks any structure, front-loading, or substantive content. A single sentence that is merely a label is not conciseness but under-specification.
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 complexity of a 3D modeling tool (with 3 parameters, no annotations, no output schema), the description is completely inadequate. It omits essential context such as how edge indices are used, what happens when edge_indices is empty, and whether the operation is reversible.
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 provides 100% coverage with clear parameter descriptions. However, the tool description adds zero semantic value beyond the schema. The description could hint at edge selection behavior or default radius usage, but it does not.
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 'FreeCAD tool: add_fillet' is a tautology that merely restates the tool name. It does not clarify that this tool creates a fillet on edges of a 3D object, nor does it distinguish from sibling tools like add_chamfer.
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?
No usage guidelines are provided. The description fails to indicate when to use add_fillet versus alternatives such as add_chamfer or other edge modification tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_horizontal_constraintD
FreeCAD tool: add_horizontal_constraint
| Name | Required | Description | Default |
|---|---|---|---|
| sketch_name | No | Body name | |
| edge_index | No | Geometry index |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It does not mention that the tool requires an active sketch or that it modifies sketch geometry. The agent is left unaware of side effects or requirements.
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 extremely short, but it is under-specified rather than genuinely concise. It delivers no useful information, making it inadequate despite its brevity.
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 is far from complete for a FreeCAD constraint tool with multiple siblings. It omits prerequisites, behavior, return values, and context for selecting this tool over alternatives.
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 has 100% description coverage for its two parameters, describing sketch_name as 'Body name' and edge_index as 'Geometry index'. The tool description adds no additional meaning beyond the schema, so a baseline score of 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 is 'FreeCAD tool: add_horizontal_constraint', which merely restates the tool name without specifying its purpose. It fails to indicate that this tool adds a horizontal constraint to sketch geometry, and provides no differentiation from sibling constraint tools like add_vertical_constraint or add_parallel_constraint.
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 no guidance on when to use this tool, its prerequisites, or alternatives. Sibling tools include several other constraint types, yet no information is provided to help an agent choose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_linear_dimensionD
FreeCAD tool: add_linear_dimension
| Name | Required | Description | Default |
|---|---|---|---|
| sketch_name | No | Body name | |
| edge_index | No | Geometry index | |
| distance | No | Dimension value (mm) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description fails to disclose any behavioral traits. It does not mention whether the tool modifies the sketch, requires an active sketch, or how errors are handled.
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 very short but at the expense of informativeness. It is not front-loaded with critical details and sacrifices completeness for brevity.
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 lack of annotations, no output schema, and 3 parameters, the description is severely incomplete. It does not explain return values, side effects, or operational context, leaving the agent underinformed.
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 baseline is 3. The tool description adds no extra meaning beyond the schema's parameter descriptions, which are somewhat vague (e.g., 'Body name' could be clearer).
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 is 'FreeCAD tool: add_linear_dimension', which barely expands on the name. It identifies it as a FreeCAD tool but lacks a verb and specific resource, making it only slightly better than a tautology. No distinction from siblings like 'add_radius_dimension'.
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?
No guidance on when to use this tool versus alternatives such as radius dimension or constraints. No context about prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_parallel_constraintD
FreeCAD tool: add_parallel_constraint
| Name | Required | Description | Default |
|---|---|---|---|
| sketch_name | No | Body name | |
| edge1 | No | First geometry index | |
| edge2 | No | Second geometry index |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It gives zero behavioral information: does it modify the sketch? Is it destructive? What are side effects? The description is essentially just the tool's name, offering no insights into its behavior.
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 extremely short but at the expense of completeness. It is under-specification rather than conciseness. A truly concise description would convey essential meaning in few words; this conveys nothing useful.
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 no output schema and three parameters, the description is entirely inadequate. It does not explain the tool's purpose, usage, return values, or constraints. For a constraint addition tool, the agent needs to know that it expects a sketch and two edge indices.
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% with basic descriptions for each parameter (e.g., 'Body name', 'First geometry index'). The tool description adds no additional meaning beyond the schema, so 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 is 'FreeCAD tool: add_parallel_constraint', which is a tautology. It restates the name without specifying what the tool does, e.g., 'Adds a parallel constraint between two edges in a sketch'. It fails to distinguish from sibling tools like add_perpendicular_constraint or add_tangent_constraint, which have similar patterns.
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?
No guidance is provided on when to use this tool, prerequisites, or alternatives. In context of sibling tools like add_coincident_constraint and add_horizontal_constraint, the description should clarify that this tool is for making two lines parallel, but it does not.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_perpendicular_constraintD
FreeCAD tool: add_perpendicular_constraint
| Name | Required | Description | Default |
|---|---|---|---|
| sketch_name | No | Body name | |
| edge1 | No | First geometry index | |
| edge2 | No | Second geometry index |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations; description does not disclose behavioral traits such as whether it modifies the sketch, prerequisites, or effects.
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?
Extremely short but under-specified; lacks substantive content for an AI agent.
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?
Completely inadequate given no annotations, no output schema, and many sibling tools; fails to describe tool's effect or context.
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 already describes parameters adequately (100% coverage); description adds no additional meaning but doesn't contradict.
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?
Tautology: describes itself using the tool name without specifying it adds a perpendicular constraint between two edges in a sketch.
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?
No guidance on when to use this constraint over siblings like add_parallel_constraint or add_tangent_constraint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_radius_dimensionD
FreeCAD tool: add_radius_dimension
| Name | Required | Description | Default |
|---|---|---|---|
| sketch_name | No | Body name | |
| edge_index | No | Geometry index | |
| radius | No | Radius value (mm) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states it's a FreeCAD tool, disclosing no behavioral traits such as whether it modifies the sketch, permissions needed, or side effects.
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?
Extremely concise (6 words) but at the expense of essential information. It is under-specified rather than efficiently concise.
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?
Completely inadequate for a tool with 3 parameters, no output schema, and no annotations. Missing explanation of required sketch context, prerequisites, and return value.
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 descriptions cover all parameters (100% coverage) with basic info like 'Body name', 'Geometry index', 'Radius value (mm)'. The description adds no further meaning, so baseline 3 is appropriate despite lack of additional context.
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 'FreeCAD tool: add_radius_dimension' is essentially a tautology, restating the tool name without explaining what it does. It fails to specify that it adds a radius dimension to a sketch or edge.
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?
No guidance on when to use this tool versus sibling tools like add_linear_dimension or add_chamfer. The description provides no context for selecting this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_tangent_constraintD
FreeCAD tool: add_tangent_constraint
| Name | Required | Description | Default |
|---|---|---|---|
| sketch_name | No | Body name | |
| edge1 | No | First geometry index | |
| edge2 | No | Second geometry index |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description gives no information about side effects, required permissions, or what happens when the constraint is applied (e.g., does it modify the sketch? Are there conflicts?).
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?
While concise, the single sentence is tautological and does not convey useful information. It could be drastically improved with a brief description of the tool's function.
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 no output schema and no annotations, the description should provide comprehensive context. It fails entirely, offering no insight into how the tool works or what it returns.
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 baseline is 3. The description does not add any extra meaning beyond the schema descriptions, but it does not contradict them either.
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 is a tautology: 'FreeCAD tool: add_tangent_constraint' merely restates the name. It does not specify what a tangent constraint does or how it differs from other constraints.
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?
No guidance on when to use this tool versus sibling tools like add_perpendicular_constraint or add_coincident_constraint. The description lacks context for appropriate selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_vertical_constraintD
FreeCAD tool: add_vertical_constraint
| Name | Required | Description | Default |
|---|---|---|---|
| sketch_name | No | Body name | |
| edge_index | No | Geometry index |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It only states 'FreeCAD tool' without revealing whether the tool adds a vertical constraint to a sketch edge, modifies existing constraints, or has side effects like requiring an active sketch.
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 (one sentence) but lacks substantive content. It is under-specified rather than effectively concise, providing no value beyond the tool name.
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, no annotations, and only two vaguely described parameters, the description is completely inadequate. An agent relying solely on this description would have no understanding of the tool's behavior or usage context.
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?
Although schema coverage is 100%, the parameter descriptions are minimal ('Body name', 'Geometry index') and the tool description adds no additional meaning. The agent gains no insight into what values are valid or how parameters relate to the tool's function.
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 is a tautology: 'FreeCAD tool: add_vertical_constraint' merely restates the name without specifying the verb, resource, or distinguishing it from sibling tools like add_horizontal_constraint.
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?
No guidance on when to use this tool versus alternatives. The description provides no context, prerequisites, or exclusions, making it impossible for an agent to decide when to invoke this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_interferenceD
FreeCAD tool: check_interference
| Name | Required | Description | Default |
|---|---|---|---|
| body1 | No | First body name | |
| body2 | No | Second body name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fails entirely to disclose behavioral traits. It does not mention whether the tool returns a boolean, highlights interference, modifies the document, or requires specific permissions. The agent has no clue about side effects or results.
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 sentence that repeats the tool name without adding information. It does not 'earn its place' because it contributes nothing beyond the name itself. Conciseness should be informative brevity, not merely brevity.
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 annotations and output schema, the description should compensate. However, it provides no information about return values, prerequisites, or the meaning of 'interference'. The description is completely inadequate for guiding 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 input schema already has 100% coverage with descriptions 'First body name' and 'Second body name', which are clear. The description adds no extra meaning, so it meets the baseline expectation but does not improve upon it.
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 'FreeCAD tool: check_interference' is a tautology that merely restates the tool name without specifying any verb or resource. It does not explain what 'check_interference' means, leaving the agent uncertain whether it checks for collisions, clearances, or something else.
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?
No guidance is provided on when to use this tool versus sibling tools like measure_distance or measure_angle. The description offers no context about typical use cases or when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
combine_by_nameD
FreeCAD tool: combine_by_name
| Name | Required | Description | Default |
|---|---|---|---|
| target_body | No | Base body name | |
| tool_body | No | Tool body name | |
| operation | No | join|cut|intersect | |
| new_body_name | No | Body name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description does not disclose any behavioral traits such as destructive nature, body modification, or creation of new bodies. Parameter names hint at boolean operation but no behavioral context is given.
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?
Extremely short but under-specified. A single sentence that is a tautology does not serve the purpose.
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?
Lacks information about behavior, errors, output, or how the operation parameter works. For a tool with 4 parameters and no output schema, the description is completely inadequate.
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 baseline is 3. The tool description adds no additional meaning beyond the schema parameter descriptions.
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 is 'FreeCAD tool: combine_by_name' – a tautology that restates the name without specifying the verb or resource. It does not differentiate from siblings like 'combine_selection' or 'combine_selection_all', which likely perform similar operations.
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?
No guidance on when to use this tool vs alternatives. No prerequisites or context described.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
combine_selectionC
FreeCAD tool: combine_selection
| Name | Required | Description | Default |
|---|---|---|---|
| body_names | No | List of body names (array or JSON string) | |
| operation | No | join|cut|intersect | |
| new_body_name | No | Body name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description fails to disclose the tool's behavior beyond the name. It does not mention boolean operations, side effects, or requirements.
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 extremely short but under-specified; it does not provide enough information to justify its brevity. It is not concise because it lacks essential content.
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 tool has 3 parameters, no output schema, and no annotations, the description should provide more context about the tool's purpose and behavior. It is incomplete and leaves the agent without sufficient guidance.
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 has 100% description coverage, so the schema already defines parameters. The description adds no extra meaning beyond what is in the schema, meeting the baseline.
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 'FreeCAD tool: combine_selection' is essentially a tautology; it repeats the name without explaining what combining selection means. It does not specify the action verb or resource clearly.
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?
No guidance on when to use this tool versus siblings like combine_by_name or combine_selection_all. The description provides no context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
combine_selection_allD
FreeCAD tool: combine_selection_all
| Name | Required | Description | Default |
|---|---|---|---|
| operation | No | join|cut|intersect | |
| new_body_name | No | Body name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does not mention effects, whether operations are destructive, required permissions, or side effects. The parameter 'operation' hints at boolean operations but is not explained.
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 extremely short but lacks necessary substance. Conciseness without information is under-specification.
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 complexity of a boolean operation tool and the absence of annotations and output schema, the description is grossly incomplete. It fails to explain the tool's function or how to use it.
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 baseline is 3. The description adds no additional meaning beyond the schema's parameter descriptions.
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 'FreeCAD tool: combine_selection_all' is nearly a tautology, restating the tool name without explaining its specific purpose. It does not differentiate from similar siblings like 'combine_by_name' or 'combine_selection'.
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?
No guidance is provided on when to use this tool versus alternatives, nor are there any prerequisites or exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
copy_body_symmetricD
FreeCAD tool: copy_body_symmetric
| Name | Required | Description | Default |
|---|---|---|---|
| source_body_name | No | Body name | |
| new_body_name | No | Body name | |
| plane | No | xy|xz|yz | xy |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description gives no behavioral traits. It does not disclose whether the operation is destructive, if it requires certain permissions, or any side effects. The agent has no insight into the tool's behavior beyond the name.
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 only one line but it is not effective. It lacks substance and fails to convey the tool's purpose. It is under-specified rather than concise, providing no meaningful information.
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 tool's complexity (a FreeCAD operation for copying a body symmetrically), the description is extremely incomplete. No output schema exists, and the description does not explain return values, prerequisites, or effects. The agent cannot determine what will happen or what is needed.
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%, with each parameter having a brief description in the schema (e.g., 'Body name' for source_body_name and new_body_name, 'xy|xz|yz' for plane). The tool description adds no additional meaning. Since the schema already provides basic parameter info, a baseline of 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 'FreeCAD tool: copy_body_symmetric' essentially restates the tool name without explaining what the tool does. It fails to specify the action (copying) or the resource (body) in a meaningful way. The purpose is vaguely implied by the name but not clarified.
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?
There is no guidance on when to use this tool versus alternatives. No mention of prerequisites, conditions, or when not to use it. This leaves the agent without context for appropriate invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_boxC
FreeCAD tool: create_box
| Name | Required | Description | Default |
|---|---|---|---|
| body_name | No | Body name | |
| width | No | Width (mm) | |
| depth | No | Depth (mm) | |
| height | No | Height (mm) | |
| cx | No | Center X | |
| cy | No | Center Y | |
| cz | No | Center Z | |
| x_placement | No | left|center|right | center |
| y_placement | No | front|center|back | center |
| z_placement | No | bottom|center|top | center |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It fails to disclose any behavioral traits such as whether the tool requires an active document, modifies existing bodies, or affects the UI. The one-line description is entirely inadequate.
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 extremely short, which could be seen as concise, but it lacks substantive content. It does not earn its place because it adds minimal value beyond the tool name and title. A single phrase is too brief for a tool with 10 parameters.
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 tool has 10 parameters, no output schema, and no annotations, the description is completely insufficient. It does not explain what the tool does in the FreeCAD context, how to use it, or what the result is. It relies entirely on the schema and name.
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 all parameters have descriptions in the schema. The description adds no additional meaning beyond the schema. 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 'FreeCAD tool: create_box', which indicates the tool creates a box in FreeCAD. However, it does not specify the shape (e.g., rectangular prism) or differentiate from siblings like 'create_cube'. It is clear but minimal.
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?
No usage context is provided. The description does not indicate when to use this tool over alternative tools for creating boxes or other primitives. There is no guidance on prerequisites or typical workflows.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_circular_patternD
FreeCAD tool: create_circular_pattern
| Name | Required | Description | Default |
|---|---|---|---|
| source_body_name | No | Body name | |
| new_body_base_name | No | Body name | |
| axis | No | x|y|z | z |
| quantity | No | Count | |
| angle | No | Total angle (deg) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations present, and the description provides no behavioral information such as effects on the model, required permissions, or side effects. The description only repeats the tool name.
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 extremely concise (one sentence) but fails to convey useful information; it is under-specification rather than effective conciseness.
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 tool operates on FreeCAD models and has no output schema or annotations, the description lacks essential context such as what the pattern is applied to, how the tool affects existing geometry, or expected outcomes.
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%, but the tool description adds no extra meaning beyond the schema's minimal parameter descriptions (e.g., 'Body name', 'Count'). Baseline score of 3 is appropriate as the description does not enhance understanding of parameters.
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 it's a FreeCAD tool for creating a circular pattern, which distinguishes it from siblings like create_rectangular_pattern, but it doesn't specify what is being patterned (e.g., features, bodies), leaving the purpose somewhat vague.
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?
No guidance on when to use this tool versus alternatives. No prerequisites, exclusions, or context for usage are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_coneC
FreeCAD tool: create_cone
| Name | Required | Description | Default |
|---|---|---|---|
| body_name | No | Body name | |
| radius | No | Bottom radius (mm) | |
| radius2 | No | Top radius (mm) | |
| height | No | Height (mm) | |
| cx | No | Center X | |
| cy | No | Center Y | |
| cz | No | Center Z | |
| z_placement | No | bottom|center|top | bottom |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only says 'create_cone' without disclosing whether the tool creates a new body, modifies an existing one, or how default parameters affect behavior (e.g., radius2=0 creates a pointed cone).
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 extremely concise (5 words) but lacks essential information. It is front-loaded but does not earn its place due to minimal utility.
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 tool has 8 parameters and numerous sibling tools, yet the description provides no context on output, default behavior, or relationship to the FreeCAD model. It is insufficient for effective tool selection.
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% with clear descriptions for each parameter. The description adds no additional semantic meaning beyond what the schema provides, so it meets the baseline score.
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 'FreeCAD tool: create_cone', which identifies the action and resource but does not differentiate from sibling tools like create_cylinder or create_box. The name and schema imply a cone, but the description adds no distinguishing context.
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?
No guidance on when to use this tool instead of alternatives such as create_cylinder or create_polygon_prism. The description lacks any context about prerequisites, typical use cases, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_cubeD
FreeCAD tool: create_cube
| Name | Required | Description | Default |
|---|---|---|---|
| body_name | No | Body name | |
| size | No | Side length (mm) | |
| cx | No | Center X | |
| cy | No | Center Y | |
| cz | No | Center Z | |
| x_placement | No | left|center|right | center |
| y_placement | No | front|center|back | center |
| z_placement | No | bottom|center|top | center |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully disclose behavioral traits. It fails to mention that the tool creates a new cube body, any side effects (e.g., overwriting existing objects), or required permissions. The description is completely insufficient for a mutation tool.
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?
Though very short, the description is under-specified rather than concise. It fails to convey essential information, so it does not earn its place. A concise description would pack more meaning into few words.
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 tool has 8 parameters, no output schema, and no annotations, the description is critically incomplete. It does not explain the overall behavior, how the cube is placed, the role of body_name, or any default behaviors. The description is inadequate for an agent to use the tool 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?
Schema description coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond what the schema already provides (e.g., size, center coordinates, placements). No value is added, but no error is made.
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 'FreeCAD tool: create_cube' is nearly a tautology, merely restating the tool name. It does not specify the action (create a cube) or the resource (e.g., a body in a FreeCAD document). Siblings like create_cylinder or create_sphere have similar descriptions, so no differentiation is possible.
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?
No guidance is given on when to use this tool versus its many siblings (e.g., create_box, create_cylinder). There is no mention of prerequisites, context (e.g., active document or body), or scenarios where this tool is preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_cylinderC
FreeCAD tool: create_cylinder
| Name | Required | Description | Default |
|---|---|---|---|
| body_name | No | Body name | |
| radius | No | Radius (mm) | |
| height | No | Height (mm) | |
| cx | No | Center X | |
| cy | No | Center Y | |
| cz | No | Center Z | |
| z_placement | No | bottom|center|top | center |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as side effects, required permissions, or whether it modifies the document. The description is too minimal to add value beyond the schema.
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 extremely short (3 words), which is concise but at the cost of being under-specified. It does not earn its place by providing useful information beyond the tool name.
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 7 parameters, no output schema, and no annotations, the description is completely inadequate. It does not explain the return value, prerequisites, or behavior, making it insufficient for an AI agent to use the tool 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?
Schema description coverage is 100%, so the schema already documents parameters. The description adds no additional meaning. Baseline score of 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?
Description is 'FreeCAD tool: create_cylinder', which is essentially a tautology. It restates the name without specifying the resource or context (e.g., within a body or document). The schema adds details, but the description itself is insufficient.
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?
No guidance on when to use create_cylinder versus sibling tools like create_cone, create_box, etc. No prerequisites or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_half_torusD
FreeCAD tool: create_half_torus
| Name | Required | Description | Default |
|---|---|---|---|
| body_name | No | Body name | |
| major_radius | No | Major radius (mm) | |
| minor_radius | No | Minor radius (mm) | |
| sweep_angle | No | Sweep angle (deg) | |
| cx | No | Center X | |
| cy | No | Center Y | |
| cz | No | Center Z |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but offers zero behavioral information—no side effects, prerequisites, or what the tool creates.
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 sentence but does not earn its place as it adds negligible information beyond the tool name.
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 tool has 7 parameters and no output schema, the description is far too minimal; it fails to explain what a half torus is or how parameters relate to 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 coverage is 100% so the schema already describes each parameter. The description adds no extra meaning, but baseline is 3 due to high schema coverage.
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 is a tautology: it repeats the tool name and notes it is a FreeCAD tool, without specifying what a half torus is or how it differs from create_torus.
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?
No guidance is provided on when to use this tool versus alternatives such as create_torus, nor any context for its application.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_hemisphereC
FreeCAD tool: create_hemisphere
| Name | Required | Description | Default |
|---|---|---|---|
| body_name | No | Body name | |
| radius | No | Radius (mm) | |
| cx | No | Center X | |
| cy | No | Center Y | |
| cz | No | Center Z | |
| orientation | No | positive|negative | positive |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral traits. It fails to disclose whether the tool mutates geometry, requires specific body context, or has side effects. No mention of what happens upon creation.
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 too terse; it is under-specified rather than concise. It uses only a few words that provide no useful information beyond the tool name.
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 6 parameters, no output schema, and no annotations, the description is completely incomplete. It fails to explain return values, side effects, or how the hemisphere relates to a FreeCAD body.
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% (all 6 parameters have descriptions). The description adds no additional meaning beyond the schema, so baseline of 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 'FreeCAD tool: create_hemisphere' merely restates the tool name without specifying what a hemisphere is or distinguishing it from related tools like create_sphere. It lacks a clear verb and resource scope.
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?
No guidance on when to use this tool versus alternatives such as create_sphere or create_half_torus. No prerequisites or context for usage are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_pipeD
FreeCAD tool: create_pipe
| Name | Required | Description | Default |
|---|---|---|---|
| body_name | No | Body name | |
| x1 | No | Start X | |
| y1 | No | Start Y | |
| z1 | No | Start Z | |
| x2 | No | End X | |
| y2 | No | End Y | |
| z2 | No | End Z | |
| radius | No | Pipe radius (mm) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full burden of disclosing behavioral traits. It fails to mention that the tool creates a straight pipe between start and end points, does not specify whether it modifies an existing body or creates a new one, and provides no information about side effects or requirements.
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 extremely short but fails to earn its place due to redundancy. It is not front-loaded with useful information; instead, it repeats the tool name without adding value.
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 tool has 8 parameters, no output schema, and no annotations, the description is woefully incomplete. It lacks essential context about the pipe creation process, coordinate system, units, and what happens after creation.
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 no additional meaning beyond what the schema already provides for parameters like body_name, coordinates, and radius. It neither clarifies constraints nor provides usage examples.
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 'FreeCAD tool: create_pipe' is essentially a tautology, restating the tool name without adding any specific verb-resource detail. It does not distinguish from sibling tools like create_cylinder or create_torus, which could also create similar shapes.
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?
No guidance is provided on when to use this tool versus alternatives. The description omits any context about prerequisites (e.g., needing a body) or conditions where this tool is appropriate over other creation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_polygon_prismD
FreeCAD tool: create_polygon_prism
| Name | Required | Description | Default |
|---|---|---|---|
| body_name | No | Body name | |
| num_sides | No | Number of sides | |
| radius | No | Circumradius (mm) | |
| height | No | Height (mm) | |
| cx | No | Center X | |
| cy | No | Center Y | |
| cz | No | Center Z | |
| z_placement | No | bottom|center|top | bottom |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description fails to disclose any behavioral traits (e.g., side effects, prerequisites, performance implications). The description adds no value beyond the name.
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 extremely short (one sentence) but under-specified. It fails to earn its place by providing useful information, resulting in under-specification rather than concise clarity.
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 8 parameters and no output schema, the description should explain the tool's purpose in more detail, including geometry, coordinate system, and parameter interactions. The current description is insufficient for the tool's complexity.
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 parameters are well-documented in the schema itself. The tool description adds no additional meaning, but baseline for high coverage is 3. The description does not enhance understanding of parameter relationships or defaults beyond the 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 'FreeCAD tool: create_polygon_prism' is a tautology, simply restating the tool name without specifying what the tool does. It does not describe the verb or resource, making it indistinguishable from the name.
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?
No guidance is provided on when to use this tool versus alternatives like create_box or create_cylinder. The description lacks any context for selection among sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_rectangular_patternD
FreeCAD tool: create_rectangular_pattern
| Name | Required | Description | Default |
|---|---|---|---|
| source_body_name | No | Body name | |
| new_body_base_name | No | Body name | |
| quantity_one | No | Count in direction 1 | |
| distance_one | No | Distance 1 (mm) | |
| direction_one_axis | No | x|y|z | x |
| quantity_two | No | Count in direction 2 | |
| distance_two | No | Distance 2 (mm) | |
| direction_two_axis | No | x|y|z | y |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden of behavioral disclosure. It only states the tool exists but gives no details on what it does (e.g., pattern creation, source body requirement, orientation).
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?
Extremely short one-liner, but it lacks substance. Conciseness without information is not valuable; it is under-specification.
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 tool with 8 parameters and no output schema, the description provides zero context. It fails to explain the pattern generation process, default behaviors, or parameter interplay.
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% with parameter descriptions in the schema. The description adds no additional meaning beyond the schema, but baseline is 3 per rules.
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 merely restates the tool name: 'FreeCAD tool: create_rectangular_pattern'. It does not explain what a rectangular pattern is or how it differs from the sibling tool 'create_circular_pattern'.
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?
No guidance on when to use this tool versus alternatives like 'create_circular_pattern' or 'create_box'. The description lacks any context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_section_viewD
FreeCAD tool: create_section_view
| Name | Required | Description | Default |
|---|---|---|---|
| body_name | No | Body name | |
| new_body_name | No | Body name | |
| plane | No | xy|xz|yz | xy |
| offset | No | Section offset (mm) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as side effects, required permissions, or return values. The tool's behavior is completely opaque.
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 extremely brief but lacks essential information, making it underspecified rather than concise. A single sentence that restates the name does not earn its place.
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 lack of annotations and output schema, the description should provide comprehensive context. It fails to explain the tool's purpose, behavior, or parameters beyond what the schema offers.
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?
Although the schema covers 100% of parameters with basic descriptions, the tool description adds no additional context beyond the schema. Baseline 3 is appropriate as the schema already provides minimal clarity.
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 'FreeCAD tool: create_section_view' merely restates the tool name with a prefix, providing no specific verb or resource. It fails to explain what a section view is or how it differs from other creation 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 offers no guidance on when to use this tool versus sibling tools like create_box or create_cylinder. There is no context about prerequisites or typical scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_sketchC
FreeCAD tool: create_sketch
| Name | Required | Description | Default |
|---|---|---|---|
| sketch_name | No | Sketch name | Sketch |
| plane | No | xy|xz|yz | xy |
| cx | No | X offset | |
| cy | No | Y offset | |
| cz | No | Z offset |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description must carry the burden of behavioral disclosure, but it provides none. It does not mention side effects (e.g., requiring an active document or body), permissions, or the effect on the model.
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 extremely short but under-specified. It does not earn its place as it adds negligible value beyond the name.
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 complexity (5 parameters, many sibling tools, no output schema), the description is entirely inadequate. It omits return values, relationship to other tools, and any contextual information needed for correct usage.
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%—each parameter has a brief description. The tool description adds no additional meaning beyond what the schema already provides, so a baseline score of 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 'FreeCAD tool: create_sketch' is essentially a tautology, restating the name without specifying what creating a sketch entails (e.g., creating a 2D sketch on a plane). It does not distinguish from sibling tools like draw_circle_in_sketch or extude_sketch.
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?
No guidance is given on when to use this tool versus alternatives (e.g., when to create a sketch vs. draw directly, or prerequisites like an active body). The description lacks any contextual advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_sphereD
FreeCAD tool: create_sphere
| Name | Required | Description | Default |
|---|---|---|---|
| body_name | No | Body name | |
| radius | No | Radius (mm) | |
| cx | No | Center X | |
| cy | No | Center Y | |
| cz | No | Center Z |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose any behavioral traits such as side effects, required permissions, or any constraints. With no annotations provided, the description carries the full burden and fails to deliver any transparency.
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 extremely brief, but it does not earn its place as it adds no substantive information. It is under-specified and does not effectively front-load critical details.
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 is wholly insufficient for a 5-parameter tool with no output schema. It lacks any context about how the sphere is created, the role of body_name, or what the tool returns.
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 the baseline is 3. The description does not add any parameter-specific meaning beyond what the schema already provides.
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 ('FreeCAD tool: create_sphere') merely restates the tool name, which is a tautology. It adds no additional detail about the tool's function beyond what the name already implies.
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?
No guidance is provided on when to use this tool versus alternative tools (e.g., create_box, create_cylinder). There is no mention of context, prerequisites, or scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_torusD
FreeCAD tool: create_torus
| Name | Required | Description | Default |
|---|---|---|---|
| body_name | No | Body name | |
| major_radius | No | Major radius (mm) | |
| minor_radius | No | Minor radius (mm) | |
| cx | No | Center X | |
| cy | No | Center Y | |
| cz | No | Center Z |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It merely says 'create torus' without disclosing side effects, document modifications, or required permissions. The agent gets no insight into what happens when the tool is invoked.
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?
Extremely concise (one sentence), but it is under-specified. Conciseness is positive, but the description fails to convey necessary information, making it ineffective.
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 6 parameters and no output schema, the description is woefully incomplete. It does not explain what a torus is, how the parameters affect the result, or what is returned. The agent cannot use this tool effectively.
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 the schema already documents all parameters. The description adds nothing about parameters. Baseline 3 is appropriate since the description does not add value beyond the 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 states 'FreeCAD tool: create_torus', which is a restatement of the tool name. It identifies the verb (create) and resource (torus), but lacks differentiation from sibling tools like create_half_torus. It is barely above a tautology.
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?
No guidance on when to use this tool versus alternatives such as create_half_torus or create_sphere. No context on prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_all_featuresD
FreeCAD tool: delete_all_features
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits. For a tool that deletes all features, it is critical to note its destructive impact, but no such warning is given.
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 extremely short but under-specified. It is not concise in a helpful way; it lacks essential information that an agent needs to use the tool correctly.
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?
Despite having no parameters and a simple action, the description is completely inadequate. It provides no context about the tool's operation, its effect on the document, or any side effects. For a potentially destructive operation, this is a critical gap.
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?
Although there are zero parameters and the schema provides 100% coverage, the description adds no information about parameters or the tool's operation. It does not even confirm that the tool takes no input.
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 is a tautology, merely repeating the tool name 'delete_all_features' with a prefix 'FreeCAD tool'. It does not specify what features are deleted, from what object, or the scope of the deletion.
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?
No usage guidance is provided. The description gives no context on when to use this tool versus siblings like 'undo', 'combine_selection', or 'shell_body'. There is no mention of prerequisites or consequences.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
draw_circle_in_sketchD
FreeCAD tool: draw_circle_in_sketch
| Name | Required | Description | Default |
|---|---|---|---|
| sketch_name | No | Body name | |
| cx | No | Center X | |
| cy | No | Center Y | |
| radius | No | Radius |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behaviors, but it says nothing about effects (e.g., modifying a sketch), safety (destructive vs. non-destructive), or required permissions. It is completely opaque.
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 excessively brief, sacrificing substance for conciseness. A single sentence that adds no useful information is under-specification, not efficient communication.
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 4 parameters, no annotations, and no output schema, the description fails to provide essential context like whether a sketch must be active, coordinate system, or result type. It is incomplete for practical 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?
Schema coverage is 100% with basic parameter descriptions (e.g., 'Body name', 'Center X'). The tool description adds no extra meaning, so it meets the baseline of 3 for high coverage but does not elevate beyond that.
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 merely restates the tool name as 'FreeCAD tool: draw_circle_in_sketch', offering no additional meaning. It is essentially a tautology, barely differentiating from siblings like draw_rectangle_in_sketch.
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?
No guidance is provided on when to use this tool versus alternatives such as draw_line_in_sketch or create_circle (if it exists). There is no mention of context or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
draw_line_in_sketchD
FreeCAD tool: draw_line_in_sketch
| Name | Required | Description | Default |
|---|---|---|---|
| sketch_name | No | Body name | |
| x1 | No | Start X | |
| y1 | No | Start Y | |
| x2 | No | End X | |
| y2 | No | End Y |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of disclosure. It fails to mention behavioral traits such as whether existing sketch entities are modified, coordinate system assumptions, or side effects. The agent has no information on what happens when the tool is invoked.
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 extremely short but under-specified; it is not concise in a helpful way. Every sentence should provide value, but here the single sentence adds none, making it insufficient for the tool's complexity.
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 5 parameters, no output schema, and 47 sibling tools, the description is woefully incomplete. It lacks information on return values, error conditions, sketch activation requirements, coordinate system, or relationship to geometric constraints.
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% with minimal parameter descriptions ('Body name', 'Start X', etc.), but the tool description adds no additional meaning. It does not clarify units, whether coordinates are absolute or relative, or the expected format for string inputs (e.g., expressions). Baseline is 3 due to high coverage, but the description adds zero value.
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 'FreeCAD tool: draw_line_in_sketch' is purely tautological, restating the tool name without explaining what the tool does. It does not specify that it draws a line segment in a sketch, nor does it differentiate from drawing tools like draw_circle_in_sketch or draw_rectangle_in_sketch.
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?
No guidance is provided on when to use this tool versus alternatives such as draw_rectangle_in_sketch or adding constraints. There is no mention of prerequisites (e.g., an active sketch) or context for when a line is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
draw_rectangle_in_sketchD
FreeCAD tool: draw_rectangle_in_sketch
| Name | Required | Description | Default |
|---|---|---|---|
| sketch_name | No | Body name | |
| x1 | No | Corner X1 | |
| y1 | No | Corner Y1 | |
| x2 | No | Corner X2 | |
| y2 | No | Corner Y2 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description discloses no behavioral traits. The agent cannot infer whether this tool modifies the sketch, is destructive, or requires specific conditions.
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 extremely short but under-specified. It does not earn its place as it adds no useful information beyond the tool name.
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 5 parameters, no annotations, and no output schema, the description is completely inadequate. It does not explain tool behavior, output, or side effects.
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?
Although schema coverage is 100%, the parameter descriptions are minimal and partially misleading (e.g., sketch_name described as 'Body name'). They add limited meaning beyond parameter names, and do not explain coordinate system or units.
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 'FreeCAD tool: draw_rectangle_in_sketch' is a tautology that merely restates the tool name. It does not explain what the tool does beyond implying it draws a rectangle in a sketch, but lacks specifics like 'creates a rectangle geometry' or 'uses two corner points.'
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?
No guidance is provided on when to use this tool versus sibling tools like draw_circle_in_sketch or draw_line_in_sketch. There is no mention of prerequisites (e.g., active sketch) or context where it is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_macroD
FreeCAD tool: execute_macro
| Name | Required | Description | Default |
|---|---|---|---|
| commands | No | List of {tool_name, arguments} |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It provides none, leaving the agent uninformed about side effects, required permissions, or whether execution modifies the document.
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?
Extremely concise but at the cost of informativeness. A single phrase 'FreeCAD tool: execute_macro' is under-specification, not efficient communication.
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 complexity of a macro execution tool with a flexible parameter (anyOf array/string), the description is completely insufficient. There is no output schema, and the description fails to explain the tool's function or return behavior.
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?
Though schema description coverage is 100% with the parameter 'commands' having a description, the tool description adds no extra meaning. It does not explain what 'tool_name, arguments' entails or how the macro executes, so value beyond schema is minimal.
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 is 'FreeCAD tool: execute_macro' which merely restates the name without specifying what the tool does or what a macro execution entails. It fails to distinguish from sibling tools that also operate on FreeCAD models.
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?
No guidance is provided on when to use this tool versus alternatives like 'undo' or 'extrude_sketch'. No context for appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_fileD
FreeCAD tool: export_file
| Name | Required | Description | Default |
|---|---|---|---|
| body_name | No | Body name | |
| format | No | step|stl|obj|fcstd | step |
| filename | No | Output filename |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry behavioral disclosure, but it provides none. The description does not mention that the tool writes to disk, what format conversion occurs, or any side effects.
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 extremely short but under-specified. Conciseness should not sacrifice completeness; here it fails to convey essential information.
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 no output schema and no annotations, the description is grossly incomplete. It fails to explain the export process, output location, or potential errors.
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 no extra meaning beyond what's in the schema, but the schema already provides adequate parameter descriptions including defaults.
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 only states 'FreeCAD tool: export_file' which is nearly tautological. It does not explicitly state the action of exporting a file; the purpose is only weakly implied by the tool name and parameters.
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?
No guidance is provided on when to use this tool versus alternatives like 'save_document'. The description lacks context for appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extrude_sketchD
FreeCAD tool: extrude_sketch
| Name | Required | Description | Default |
|---|---|---|---|
| sketch_name | No | Body name | |
| body_name | No | Body name | |
| length | No | Extrusion length (mm) | |
| symmetric | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and description offers zero behavioral traits. Does not disclose that tool modifies existing body, creates new feature, or requires sketch to be on a plane. Contradicts no annotations but fails completely to inform about side effects or constraints.
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?
Extremely short (1 sentence), but so under-specified that it fails to inform. Not concise in a helpful way; it omits essential information. Would benefit from a brief explanation of the operation.
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 tool complexity (4 parameters, no output schema, CAD operation) and lack of annotations, description is woefully incomplete. No mention of output (e.g., resulting solid), no error conditions, no details on symmetric parameter effect.
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 75%, but descriptions are misleading (sketch_name described as 'Body name'). Description adds no extra meaning beyond schema. Does not clarify that sketch_name refers to the sketch object and body_name is the container. No guidance on length format or symmetric behavior.
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 is 'FreeCAD tool: extrude_sketch' – merely restates name and tool source. Doesn't specify verb (e.g., 'extrudes a sketch to create a solid') or resource (e.g., 'given a 2D sketch'). Fails to distinguish from sibling feature tools like revolve_sketch or sweep_sketch.
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?
No guidance on when to use extrusion vs. alternatives (revolve, sweep, etc.). No prerequisites mentioned (e.g., sketch must be fully constrained, must be in a body). Agent gets no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_all_bodiesD
FreeCAD tool: get_all_bodies
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It offers no information about side effects, return values, or permissions. The description is entirely opaque.
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 very short but lacks substance. It is insufficiently informative, sacrificing clarity for brevity.
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 no output schema and no annotations, the description must fully explain the tool's operation. It does not specify what 'bodies' means, how results are returned, or any other contextual details, making it completely inadequate.
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?
Although there are zero parameters (schema coverage 100%), the description fails to add value beyond the empty schema. For a parameterless tool, a clear purpose is essential, and the description is too vague.
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 'FreeCAD tool: get_all_bodies' merely restates the tool name without specifying what 'get_all_bodies' does. It does not clarify whether it retrieves, lists, or returns bodies, nor what context it operates in.
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?
There is no guidance on when to use this tool versus its siblings. The description omits any indication of prerequisites or scenarios where this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_body_centerD
FreeCAD tool: get_body_center
| Name | Required | Description | Default |
|---|---|---|---|
| body_name | No | Body name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description fails to disclose any behavioral traits such as whether the tool is read-only, what it returns, or any side effects. This is a critical gap.
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 extremely concise but sacrifices clarity. It is an underspecification rather than efficient communication, as it provides no actionable information.
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 no output schema, no annotations, and a single sentence description, the description is completely inadequate. The tool likely returns coordinates, but no return value or behavior is described.
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 has 100% coverage with a minimal description for 'body_name'. The tool description does not add meaning beyond the schema, but the parameter is straightforward. Baseline 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 is a tautology, restating the tool name without adding any information about what 'body center' means or how it relates to body geometry. It does not distinguish from siblings like get_body_dimensions or get_bounding_box.
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?
No guidance is provided on when to use this tool versus alternatives (e.g., get_bounding_box, get_mass_properties). The description offers no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_body_dimensionsD
FreeCAD tool: get_body_dimensions
| Name | Required | Description | Default |
|---|---|---|---|
| body_name | No | Body name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description gives no information about what the tool does beyond its name. It fails to disclose return values, side effects (e.g., does it modify the document?), or any behavioral traits.
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 overly brief, but not in a way that is precise or informative. It lacks substance and does not earn its place as a helpful guide.
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 lack of an output schema and the tool's complexity (dimensions of a body), the description is completely inadequate. It does not explain what dimensions are returned or how to interpret them.
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 provides a 100% coverage description for the single parameter 'body_name' ('Body name'). The tool description adds no additional semantic value, so 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 is just 'FreeCAD tool: get_body_dimensions', which is essentially a tautology. It does not specify what 'body dimensions' means (e.g., length, width, height) or how it differs from sibling tools like 'get_bounding_box' or 'get_mass_properties'.
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?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, context, or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_body_relationshipsD
FreeCAD tool: get_body_relationships
| Name | Required | Description | Default |
|---|---|---|---|
| body1 | No | First body name | |
| body2 | No | Second body name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations and no description beyond the name, there is zero disclosure of behavioral traits such as side effects, permissions, or output.
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 too brief to be helpful; it is under-specified rather than concise. It fails to provide necessary context in a structured manner.
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 no output schema and no annotations, the description needs to explain the tool's behavior and return value. It completely fails to do so, leaving the agent with no useful context.
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 parameter descriptions are basic but present. The description adds no additional meaning beyond the schema, so 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 merely repeats the tool name and adds 'FreeCAD tool', providing no information about what the tool does. It is essentially a tautology.
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?
There is no guidance on when to use this tool versus siblings. No context, prerequisites, or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bounding_boxD
FreeCAD tool: get_bounding_box
| Name | Required | Description | Default |
|---|---|---|---|
| body_name | No | Body name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description fails to disclose any behavioral traits such as whether the tool computes or retrieves data, side effects, or output format. It is completely opaque.
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?
Extremely short, but not concise because it omits essential information. It is under-specified for the tool's purpose.
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 simple tool with one optional parameter and no output schema, the description should at minimum state what the output represents (e.g., coordinates, dimensions). It provides no such context.
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?
Although schema coverage is 100% with one parameter described, the description adds no meaning beyond the schema. It does not explain the significance of 'body_name' or how it affects results.
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 'FreeCAD tool: get_bounding_box' is a tautology, essentially repeating the tool name without defining what a bounding box is or what the tool returns.
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?
No guidance is provided on when to use this tool versus sibling tools like get_body_dimensions or get_body_center. The agent has no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_edges_infoD
FreeCAD tool: get_edges_info
| Name | Required | Description | Default |
|---|---|---|---|
| body_name | No | Body name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits. It does not state whether the tool is read-only (implied by 'get'), requires permissions, or has side effects. The description provides no transparency.
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 extremely short, but it is underspecified rather than concise. It fails to communicate essential information that would justify its minimal 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?
Given the complexity of FreeCAD and the large number of sibling tools, this description is wholly inadequate. It does not explain what information is returned (e.g., edge properties) or how the tool integrates with the workflow.
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%—the schema already describes 'body_name' as 'Body name'. The tool description adds no additional meaning, but the baseline score is 3 per the rules since the schema covers the 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?
The description 'FreeCAD tool: get_edges_info' is a tautology that restates the tool name without explaining what 'edges info' means. It fails to distinguish the tool from sibling tools like 'get_faces_info' or 'get_body_dimensions'.
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?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, context, or examples, leaving the agent without direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_faces_infoD
FreeCAD tool: get_faces_info
| Name | Required | Description | Default |
|---|---|---|---|
| body_name | No | Body name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses no behavioral traits such as read-only nature, required permissions, side effects, or response format. With no annotations provided, the agent has zero insight into tool safety or performance.
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 extremely short but fails to be concise because it does not convey any meaningful information beyond the tool name. It does not earn its place; a useful description would explain the tool's function.
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 tool's complexity (it returns face information for 3D models) and the lack of an output schema, the description is grossly incomplete. The agent cannot infer what data is returned or how to interpret results, especially compared to sibling tools with richer descriptions.
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 has 100% description coverage for the single parameter 'body_name', which is adequately described in the schema itself. However, the tool description adds no additional context about parameter usage, defaults, or constraints beyond what the schema provides.
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 'FreeCAD tool: get_faces_info' is a tautology that merely restates the tool name without specifying what information about faces is retrieved or how it can be used. It fails to distinguish from sibling tools like get_edges_info or get_body_dimensions.
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?
No guidance is provided on when to use this tool versus alternatives such as get_edges_info or select_face. The description does not mention prerequisites, selection methods, or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_mass_propertiesD
FreeCAD tool: get_mass_properties
| Name | Required | Description | Default |
|---|---|---|---|
| body_name | No | Body name | |
| density | No | Density (g/cm³) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description fails to disclose behavioral traits such as whether the tool is read-only, requires a selected body, or has side effects. With zero annotation coverage, the description should communicate safety and mutation behavior but does not.
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 sentence, which is concise, but it lacks structure and important details. Front-loading is minimal; the information provided is superficial.
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 tool with no output schema and no annotations, the description is extremely incomplete. It omits return values, side effects, and usage context. The tool likely computes mass properties, but no information is given.
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 describes both parameters (body_name, density) with 100% coverage. The tool description adds no extra meaning beyond the schema, so a baseline of 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 'FreeCAD tool: get_mass_properties' indicates it is for retrieving mass properties, but it does not specify what properties are returned (e.g., mass, volume, center of mass). It adds minimal value over the tool name.
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?
There is no guidance on when to use this tool versus sibling tools like 'get_body_dimensions' or 'measure_distance'. No context on prerequisites or scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hide_bodyD
FreeCAD tool: hide_body
| Name | Required | Description | Default |
|---|---|---|---|
| body_name | No | Body name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits, but it does not. There is no mention of side effects, reversibility, or permissions.
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 extremely short but lacks substance, resulting in under-specification rather than conciseness.
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 lack of annotations and output schema, the description is severely incomplete, failing to explain what 'hide' entails or any return value.
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 baseline is 3. The description does not add any meaning beyond what the schema already provides (just 'Body name').
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 is a tautology, merely restating the tool name 'hide_body' as 'FreeCAD tool: hide_body', providing no information about what the tool does.
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?
No guidance is given on when to use this tool or when to use alternatives (e.g., show_body). The description lacks any usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
loft_sketchesD
FreeCAD tool: loft_sketches
| Name | Required | Description | Default |
|---|---|---|---|
| sketch_names | No | Ordered list of sketch names (array or JSON string) | |
| body_name | No | Body name | |
| ruled | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations provided, and the description does not disclose any behavioral traits. The agent has no information about side effects, permissions, or constraints beyond the basic parameter names.
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 extremely short (5 words), but under-specification is not conciseness. It fails to provide essential information, so it does not earn points for brevity.
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 tool has 3 parameters, no output schema, and no annotations, the description is severely incomplete. It does not explain the lofting process, prerequisites (e.g., multiple sketches needed), or expected results.
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 description adds no value beyond the input schema. While the schema has descriptions for 'sketch_names' and 'body_name', the description itself does not explain their role in the loft operation. The 'ruled' parameter's purpose is unclear.
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 'FreeCAD tool: loft_sketches' is a tautology, simply restating the tool name. It does not specify what the tool does (e.g., creates a solid by lofting between sketches). This is the lowest score for purpose clarity.
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?
No guidance is provided on when to use this tool versus alternatives like sweep_sketch or revolve_sketch. The description gives no context for appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
measure_angleD
FreeCAD tool: measure_angle
| Name | Required | Description | Default |
|---|---|---|---|
| body1 | No | ||
| body2 | No | ||
| face_index1 | No | Face index for body1 | |
| face_index2 | No | Face index for body2 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided and the description fails to disclose any behavioral traits such as whether the tool returns a value, modifies the document, or requires selected faces. It is completely opaque.
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 extremely short (4 words) but this is under-specification rather than conciseness. It fails to convey essential information, so it does not earn its place.
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 tool has 4 parameters, no output schema, and no annotations, the description is woefully incomplete. It does not mention what the tool returns, how to interpret results, or any dependencies.
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 description adds no information about parameters beyond the input schema. The schema itself has descriptions for only face_index1 and face_index2, but body1 and body2 are undocumented strings. The description does not clarify their purpose (e.g., body names or IDs).
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 'FreeCAD tool: measure_angle' essentially restates the name, only adding the domain. It does not specify what the tool does (e.g., measure the angle between two bodies or faces). This is a tautology.
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?
No guidance on when to use this tool over siblings like measure_distance or check_interference. No context about prerequisites or intended use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
measure_distanceD
FreeCAD tool: measure_distance
| Name | Required | Description | Default |
|---|---|---|---|
| body1 | No | First body name | |
| body2 | No | Second body name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavior. It fails to explain what the tool does beyond its name—e.g., whether it returns a distance value in a specific unit, creates a measurement object, or updates after geometry changes. No side effects or constraints are mentioned.
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 only three words, which is extremely concise but at the cost of informativeness. It sacrifices clarity for brevity, making it unhelpful. A good description should be concise yet substantive.
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 that this is a measurement tool with no annotations, no output schema, and two parameters, the description is completely insufficient. It does not explain return values, how to interpret results, or any behavioral details. The tool requires significant documentation to be usable by an AI 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 input schema covers both parameters ('body1', 'body2') with clear descriptions ('First body name', 'Second body name'). Since schema coverage is 100%, the description does not need to add much, but it adds no extra context such as units or accepted formats. Score is baseline 3.
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 'FreeCAD tool: measure_distance' is essentially a tautology of the tool name. It states it's a FreeCAD tool but does not specify what 'measure_distance' actually measures (e.g., minimum distance, center distance). It lacks specificity to distinguish it from siblings like 'measure_angle' or 'check_interference'.
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?
No usage guidelines are provided. The description does not indicate when to use this tool versus alternatives such as 'measure_angle' or 'check_interference'. There is no mention of prerequisites, selection requirements, or context for appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_by_nameD
FreeCAD tool: move_by_name
| Name | Required | Description | Default |
|---|---|---|---|
| body_name | No | Body name | |
| x_dist | No | X distance (mm) | |
| y_dist | No | Y distance (mm) | |
| z_dist | No | Z distance (mm) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must convey behavioral traits. It mentions no side effects, required permissions, return values, or constraints. The agent cannot infer whether the move is absolute or relative, or if it modifies the document irreversibly.
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?
Extremely short but under-specified. Conciseness is not achieved when essential information is missing. The description is merely a label, not a helpful explanation.
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?
Description is incomplete given no output schema and moderate complexity. It fails to explain what the tool moves, the coordinate system, or any constraints. Agent would struggle 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?
Input schema has 100% coverage with descriptions for all 4 parameters. The description adds no extra meaning beyond what schema already provides. Baseline of 3 is appropriate since schema does the work.
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 is a tautology: 'FreeCAD tool: move_by_name' merely restates the name without specifying what action is performed (e.g., moving a body, constraint, or something else). It does not distinguish from siblings like rotate_by_name or combine_by_name.
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?
No guidance on when to use this tool versus alternatives. Sibling tools (e.g., rotate_by_name) exist but are not mentioned or differentiated. Agent gets no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redoD
FreeCAD tool: redo
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist and the description offers no behavioral details such as scope, limits, or side effects of redo.
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 too brief, lacking necessary context; conciseness should not sacrifice clarity.
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 presence of an 'undo' sibling, the description should differentiate redo's purpose, but it fails to provide that context.
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?
Although there are no parameters (baseline 4), the description adds zero meaning beyond the name, failing to justify its existence.
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 merely restates the tool name as 'redo' without specifying what action it performs or what it operates on, making it a tautology.
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?
No guidance is provided on when to use redo vs its sibling tool 'undo' or any other alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
revolve_sketchD
FreeCAD tool: revolve_sketch
| Name | Required | Description | Default |
|---|---|---|---|
| sketch_name | No | Body name | |
| body_name | No | Body name | |
| axis | No | x|y|z | z |
| angle | No | Revolve angle (deg) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations; description fails to disclose any behavioral traits such as whether the tool is destructive, requires a closed sketch, or creates a new body. Completely opaque.
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?
Extremely short but not effectively concise; lacks essential information. Under-specification outweighs any benefit of brevity.
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 tool with 4 parameters and no annotations or output schema, the description is grossly incomplete. Does not explain axis orientation, angle behavior, or result of the operation.
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 schema already documents all 4 parameters. Description adds no extra meaning beyond the schema. Baseline score 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?
Description merely states 'FreeCAD tool: revolve_sketch', which restates the name without clarifying the action. It does not explicitly say that it creates a revolved feature from a sketch, leaving ambiguity.
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?
No guidance on when to use revolve_sketch vs siblings like extrude_sketch, loft_sketches, or sweep_sketch. No prerequisites or exclusions provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rotate_by_nameD
FreeCAD tool: rotate_by_name
| Name | Required | Description | Default |
|---|---|---|---|
| body_name | No | Body name | |
| axis | No | x|y|z | z |
| angle | No | Angle (deg) | |
| cx | No | Pivot X | |
| cy | No | Pivot Y | |
| cz | No | Pivot Z |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description adds no behavioral details such as whether the rotation is in-place, creates a new body, or any side effects. The agent gets no insight into tool behavior.
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?
While short, the description is under-specified rather than concise. It fails to provide essential information, making it less useful than a terse but complete description.
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 6 parameters, no output schema, and no annotations, the description is completely inadequate. It does not mention prerequisites (e.g., existing body), rotation behavior, or results, leaving the agent with insufficient context.
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 has 100% description coverage, so the schema already explains each parameter. The description adds no further semantic meaning, meriting the baseline score of 3.
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 'FreeCAD tool: rotate_by_name' merely restates the tool name and adds 'FreeCAD tool', providing no actual purpose or action description. It is a tautology.
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?
No guidance is given on when to use this tool versus alternatives like move_by_name or combine_by_name. Context signals show many sibling tools, but the description offers no differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_documentD
FreeCAD tool: save_document
| Name | Required | Description | Default |
|---|---|---|---|
| filename | No | Save path (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior, but it only says 'save document'. It does not mention that this is a write operation, whether it overwrites, what format is used, or if it triggers a dialog.
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 extremely short but not helpful; it is under-specified rather than concise. It is front-loaded but content is nearly useless.
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 tool that performs a destructive write operation, with no annotations or output schema, the description is woefully incomplete. It should mention saving the current document, file format, potential overwrite behavior, etc.
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% (one parameter described). The description adds no additional meaning beyond the schema's 'Save path (optional)'. Baseline 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 'FreeCAD tool: save_document' is almost a tautology, stating the name and context but not explaining what saving a document involves. It fails to distinguish from other FreeCAD tools that also manipulate documents.
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?
No guidance is provided on when to use this tool, whether it should be used to save the active document, or what prerequisites exist. Sibling tools like 'export_file' are not mentioned as alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shell_bodyD
FreeCAD tool: shell_body
| Name | Required | Description | Default |
|---|---|---|---|
| body_name | No | Body name | |
| thickness | No | Wall thickness (mm) | |
| face_indices | No | Face indices to open (array or JSON string) | |
| new_body_name | No | Body name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description gives no behavioral information such as destructiveness, side effects, or required permissions. The agent cannot infer safety or scope.
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 but at the expense of informativeness. The phrase 'FreeCAD tool:' is redundant and wastes space that could clarify the tool's purpose.
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 4 parameters, no output schema, and no annotations, the description is completely inadequate. It does not explain what the tool creates, how to use it, or what to expect as a 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?
Although schema coverage is 100%, the description adds no meaning beyond the schema's minimal parameter descriptions (e.g., 'Body name'). It fails to provide context like what a shell operation does or how parameters relate.
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 'FreeCAD tool: shell_body' is a tautology, restating the name without explaining what the tool does. It fails to distinguish from sibling tools like add_fillet or extrude_sketch.
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?
No guidance is provided on when to use this tool versus alternatives. The description does not mention any prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
show_bodyD
FreeCAD tool: show_body
| Name | Required | Description | Default |
|---|---|---|---|
| body_name | No | Body name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reveals no behavioral traits such as whether it affects the model state, requires a specific view setting, or has side effects. With no annotations, the agent has no insight into the tool's behavior beyond the name.
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 too short, providing minimal information. It is under-specified rather than concise, as it fails to convey essential purpose or usage details.
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 tool's simplicity and the presence of many sibling tools (e.g., 'hide_body', 'get_all_bodies'), the description is completely inadequate. It does not explain what showing a body entails or what the tool returns.
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 parameter 'body_name' has a description 'Body name'. The tool description does not add any additional semantics beyond the schema. 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 'FreeCAD tool: show_body' is essentially a tautology. It does not specify a verb or clarify what 'show' means (e.g., make visible, highlight, display properties). The sibling 'hide_body' hints at visibility, but the description itself is insufficient.
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?
No guidance is provided on when to use this tool versus alternatives like 'hide_body' or 'get_all_bodies'. There is no context on prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sweep_sketchD
FreeCAD tool: sweep_sketch
| Name | Required | Description | Default |
|---|---|---|---|
| profile_sketch | No | Profile sketch name | |
| path_sketch | No | Path sketch name | |
| body_name | No | Body name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description gives no behavioral details (e.g., whether it is destructive, requires specific selections, or produces a solid). The agent has no insight into side effects.
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?
While brief, the description is under-specified. It does not achieve conciseness with useful content; it is merely a placeholder.
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 three parameters and no output schema or annotations, the description is severely lacking. It does not explain the sweep operation, return value, or required setup.
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 baseline is 3. The description adds no additional meaning to the parameter names, but the schema already provides basic descriptions.
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 'FreeCAD tool: sweep_sketch' is a tautology, restating the name without specifying the action or distinguishing from siblings like extrude_sketch or loft_sketches.
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?
No guidance on when to use sweep_sketch vs alternatives. There is no mention of context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
undoC
FreeCAD tool: undo
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No behavioral traits are disclosed beyond the generic term 'undo'. There are no annotations, so the description carries full burden but fails to specify scope, effects, or limitations.
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 extremely short, but it is under-specified and fails to provide useful information. It is not concise in a helpful way.
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 undo tool, the description lacks completeness by not explaining what is undone (e.g., last action, multiple steps). No output schema is present, but the description does not compensate.
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 has zero parameters, so schema coverage is 100%. The description adds no additional meaning, which aligns with the baseline of 3 for high coverage.
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 'FreeCAD tool: undo' simply restates the tool name, offering no specific verb or resource clarification. It does not distinguish from sibling tools like 'redo'.
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?
No guidance is provided on when to use undo versus alternatives such as redo or other undo-related operations. The description lacks any usage context.
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.
57 tool updates
v0.9.0- First observed
add_chamfer - First observed
add_coincident_constraint - First observed
add_fillet - First observed
add_horizontal_constraint - First observed
add_linear_dimension - First observed
add_parallel_constraint - First observed
add_perpendicular_constraint - First observed
add_radius_dimension - First observed
add_tangent_constraint - First observed
add_vertical_constraint - First observed
check_interference - First observed
combine_by_name - First observed
combine_selection - First observed
combine_selection_all - First observed
copy_body_symmetric - First observed
create_box - First observed
create_circular_pattern - First observed
create_cone - First observed
create_cube - First observed
create_cylinder - First observed
create_half_torus - First observed
create_hemisphere - First observed
create_pipe - First observed
create_polygon_prism - First observed
create_rectangular_pattern - First observed
create_section_view - First observed
create_sketch - First observed
create_sphere - First observed
create_torus - First observed
delete_all_features - First observed
draw_circle_in_sketch - First observed
draw_line_in_sketch - First observed
draw_rectangle_in_sketch - First observed
execute_macro - First observed
export_file - First observed
extrude_sketch - First observed
get_all_bodies - First observed
get_body_center - First observed
get_body_dimensions - First observed
get_body_relationships - First observed
get_bounding_box - First observed
get_edges_info - First observed
get_faces_info - First observed
get_mass_properties - First observed
hide_body - First observed
loft_sketches - First observed
measure_angle - First observed
measure_distance - First observed
move_by_name - First observed
redo - First observed
revolve_sketch - First observed
rotate_by_name - First observed
save_document - First observed
shell_body - First observed
show_body - First observed
sweep_sketch - First observed
undo
TDQS
Scored across 57 tools
Most tools have clearly distinct purposes (e.g., create_cylinder vs create_box), but there are some ambiguous pairs like combine_by_name, combine_selection, combine_selection_all that could cause misselection. The large number of tools also increases confusion risk.
The naming pattern is predominantly verb_noun in snake_case, which is consistent. Minor deviations include single-word tools (undo, redo) and the phrase 'copy_body_symmetric' which breaks the pattern slightly, but overall it's readable and predictable.
With 57 tools, the set is quite large, covering many primitive creations, constraints, and operations. While each tool has a specific role, the count feels on the high side for a single server, potentially overwhelming agents.
The toolset covers basic creation, sketching, constraints, and some feature operations, but lacks boolean operations (cut, union), sketch editing tools, and assembly capabilities. Notable gaps exist that may hinder complex workflows.
Maintenance
Related MCP Connectors
- OwlCADOAuthcom.owlcad
Parametric 3D CAD for AI agents: build print-ready parts, check them, export STL, 3MF or STEP.
1 Use AI models for chat, image, and video generation from Claude Code and other MCP hosts.
Agent-first CAD: editable .kcad.ts source, deterministic review, OpenCASCADE kernel.
DXF and PDF/X-4 for AI agents: structured facts, PNG renders, an interactive in-chat viewer.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables control of FreeCAD CAD software from Claude Desktop through natural language commands. Supports creating, editing, and managing 3D objects, executing Python code, and generating screenshots of designs.10MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to control FreeCAD 3D modeling software, allowing creation and manipulation of 3D objects, execution of Python code, and interaction with FreeCAD's parts library through natural language.10MIT
- FlicenseBqualityDmaintenanceEnables AI assistants to perform 3D modeling and CAD operations in FreeCAD, including geometry creation, boolean operations, and document management.78-
- AlicenseAqualityDmaintenanceAllows controlling FreeCAD from Claude Desktop to create and edit 3D models using natural language commands.10MIT