Skip to main content
Glama
tomo1230

FreeCAD MCP Server

by tomo1230

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パターンに分けてセットアップ方法を説明します。

処理フロー:

  1. ユーザーがAIエージェントのチャットで自然言語でプロンプトを送信します。(例: 50mmの立方体を作って)MCPツールはClaudeが自動的に認識・使用するため、特別なプレフィックスは不要です。

  2. AIエージェントは、このNode.jsサーバー(freecad_mcp_server.js)を子プロセスとして起動し、CallToolRequest を送信します。

  3. Node.jsサーバーはリクエストをJSONコマンドに変換し、http://127.0.0.1:8765/command に HTTP POST します。

  4. FreeCAD内で実行中のPythonマクロ(freecad_mcp_addon.py)がHTTPサーバーとして待ち受けており、リクエストを受信してFreeCADのPart APIを実行します。

  5. Pythonマクロは実行結果をHTTPレスポンスとして返します。

  6. Node.jsサーバーがレスポンスを受け取り、AIエージェントに結果を返します。

  7. 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

ターミナル型エージェントでモデリング手順を安定化

SKILL.md の導入手順

Step 1: 共通の前提条件

  • Node.js: v18以降がインストールされていること。(https://nodejs.org/ja/download)

  • FreeCAD: バージョン 1.0以降がインストールされていること。(https://www.freecad.org/)

  • このリポジトリ: freecad_mcp_server.jsfreecad_mcp_addon.py を使える状態にしておくこと

Step 2: 共通のインストール

  1. 任意の場所にこのリポジトリをクローンします。

    git clone https://github.com/tomo1230/freecad_mcp_server
  2. ターミナルでディレクトリに移動し、依存関係をインストールします。

    cd freecad_mcp_server
    npm install @modelcontextprotocol/sdk

Step 3: FreeCADでマクロを起動

  1. FreeCADを起動します。

  2. メニューから マクロ → マクロを実行... を選択します。

  3. このリポジトリの freecad_mcp_addon.py を選択して実行します。

  4. 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:regression

PowerShell で npm 実行がブロックされる環境では、次を使ってください。

npm.cmd run test:regression

この回帰テストでは以下を確認します。

  • 57 個の MCP ツールをすべて実行できること

  • 形状作成、ブール演算、計測、スケッチ拘束、保存、エクスポートが成功すること

  • get_edges_info が複合形状でも失敗しないこと

  • extrude_sketch が閉じたスケッチで正常動作すること

実行後は作業ディレクトリに次の成果物が生成されます。

  • regression_all_tools_<timestamp>.fcstd

  • regression_comboAll_<timestamp>.stl


Claude Desktop のセットアップ

GUI の Claude Desktop から FreeCAD を操作したい場合の手順です。

前提

設定手順

  1. Claude Desktopを開き、左上のツールメニューからファイル>設定の画面に移動します。

  2. 「設定を編集」のボタンをクリックします。

  3. 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がインストールされていること

設定手順

  1. Codex の設定ファイルに freecad サーバーを追加します。

  2. リポジトリにはサンプルとして .codex/config.toml が含まれています。

  3. パスを自分の環境に合わせて 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 の役割

ファイル

役割

SKILL.md(リポジトリ内)

参照用コピー。内容の確認・バージョン管理に使用

%APPDATA%\Claude\...\skills\freecad-modeling-order\SKILL.md

Claude Code が実際に読み込むスキル本体

インストール方法

  1. スキルディレクトリを作成します。

    %APPDATA%\Claude\local-agent-mode-sessions\skills-plugin\<session-id>\<sub-id>\skills\freecad-modeling-order\
  2. 上記ディレクトリに SKILL.md をコピーします。

  3. 同ディレクトリの 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
    }
  4. 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

⚠️ 注意が必要なツール

ツール

注意点

delete_all_features

モデリング途中では使用禁止。作り直し時の冒頭のみ

shell_body

ブール演算で結合してから呼び出す

add_fillet / add_chamfer

全ブール演算・パターン完了後に呼び出す。add_fillet は半径が大きすぎると自動縮小してリトライ(最大6回、50%ずつ縮小)

combine_selection_all

非表示ボディは対象外。hide_bodyで除外してから使う

create_section_view

可視化用途のみ。断面ボディは後続のブール演算に使わない

loft_sketches

全プロファイルスケッチが存在していないと失敗

sweep_sketch

プロファイルとパスの両スケッチが存在していないと失敗


APIリファレンス / 利用可能なツール

Claudeは以下のツールを呼び出すことでFreeCADを操作します。

形状作成ツール (10種)

配置パラメータ補足: cx/cy/cz は中心座標。x_placement(left/center/right)・y_placement(front/center/back)・z_placement(bottom/center/top)で基準点を変更できます(対応ツールのみ)。

ツール名

説明

主なパラメータ

create_box

直方体を作成

width, depth, height, cx, cy, cz, x_placement, y_placement, z_placement

create_cube

立方体を作成

size, cx, cy, cz, x_placement, y_placement, z_placement

create_cylinder

円柱を作成

radius, height, cx, cy, cz, z_placement

create_sphere

球を作成

radius, cx, cy, cz

create_cone

円錐を作成

radius, radius2, height, cx, cy, cz, z_placement

create_torus

トーラス(ドーナツ形状)を作成

major_radius, minor_radius, cx, cy, cz

create_hemisphere

半球を作成

radius, orientation(positive/negative), cx, cy, cz

create_half_torus

半トーラスを作成

major_radius, minor_radius, sweep_angle, cx, cy, cz

create_polygon_prism

多角柱を作成

num_sides, radius, height, cx, cy, cz, z_placement

create_pipe

2点間にパイプ(円筒管)を作成

radius, x1, y1, z1, x2, y2, z2

スケッチ作成・描画ツール (4種)

ツール名

説明

主なパラメータ

create_sketch

スケッチ平面を作成

sketch_name, plane(xy/xz/yz), cx, cy, cz

draw_rectangle_in_sketch

スケッチに矩形を描く

sketch_name, x1, y1, x2, y2

draw_circle_in_sketch

スケッチに円を描く

sketch_name, cx, cy, radius

draw_line_in_sketch

スケッチに直線を描く

sketch_name, x1, y1, x2, y2

スケッチ拘束・寸法ツール (8種)

ツール名

説明

主なパラメータ

add_horizontal_constraint

水平拘束を追加

sketch_name, edge_index

add_vertical_constraint

垂直拘束を追加

sketch_name, edge_index

add_parallel_constraint

平行拘束を追加

sketch_name, edge1, edge2

add_perpendicular_constraint

垂直(直角)拘束を追加

sketch_name, edge1, edge2

add_coincident_constraint

一致拘束を追加

sketch_name, edge1, edge2, point1, point2

add_tangent_constraint

接線拘束を追加

sketch_name, edge1, edge2

add_linear_dimension

線形寸法拘束を追加

sketch_name, edge_index, distance

add_radius_dimension

半径寸法拘束を追加

sketch_name, edge_index, radius

スケッチからソリッド生成ツール (4種)

ツール名

説明

主なパラメータ

extrude_sketch

スケッチを押し出してソリッドを作成

sketch_name, length, symmetric, body_name

revolve_sketch

スケッチを回転させてソリッドを作成

sketch_name, axis, angle, body_name

sweep_sketch

プロファイルをパスに沿ってスイープ

profile_sketch, path_sketch, body_name

loft_sketches

複数スケッチをロフトしてソリッドを作成

sketch_names[], ruled, body_name

編集・修正ツール (6種)

ツール名

説明

主なパラメータ

add_fillet

エッジにフィレット(角丸め)を追加。半径が大きすぎる場合は自動的に縮小してリトライ

body_name, radius, edge_indices[] (空=全エッジ)

add_chamfer

エッジに面取りを追加

body_name, distance, edge_indices[] (空=全エッジ)

shell_body

ボディをシェル(中空)化

body_name, thickness, face_indices[], new_body_name

create_rectangular_pattern

矩形パターンで複製

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

create_circular_pattern

円形パターンで複製

source_body_name, quantity, angle, axis(x/y/z), new_body_base_name

create_section_view

断面ビュー(カット済みボディ)を作成

body_name, plane(xy/xz/yz), offset, new_body_name

ブール演算ツール (3種)

ツール名

説明

主なパラメータ

combine_by_name

2ボディをブール演算で結合

target_body, tool_body, operation(join/cut/intersect), new_body_name

combine_selection

複数ボディをブール演算で結合

body_names[], operation, new_body_name

combine_selection_all

表示中の全ボディをブール演算で結合

operation, new_body_name

変換・表示ツール (5種)

ツール名

説明

主なパラメータ

move_by_name

ボディを移動

body_name, x_dist, y_dist, z_dist

rotate_by_name

ボディを回転

body_name, axis, angle, cx, cy, cz

copy_body_symmetric

ボディをミラーコピー

source_body_name, new_body_name, plane(xy/xz/yz)

hide_body

ボディを非表示にする

body_name

show_body

ボディを表示する

body_name

情報取得・測定ツール (11種)

ツール名

説明

主なパラメータ

get_all_bodies

ドキュメント内の全ボディ一覧を取得

get_body_dimensions

ボディの寸法・体積・面積を取得

body_name

get_bounding_box

バウンディングボックスを取得

body_name

get_body_center

重心と幾何中心を取得

body_name

get_mass_properties

質量特性(体積・面積・質量・重心)を取得

body_name, density

get_edges_info

エッジ情報(長さ・種別)を取得

body_name

get_faces_info

面情報(面積・種別・中心)を取得

body_name

get_body_relationships

2ボディの位置関係(距離・干渉)を取得

body1, body2

measure_distance

2ボディ間の最短距離を測定

body1, body2

measure_angle

2ボディの指定面間の角度を測定

body1, body2, face_index1, face_index2

check_interference

2ボディが干渉しているか確認

body1, body2

ユーティリティ (6種)

ツール名

説明

主なパラメータ

execute_macro

複数コマンドを順番に実行

commands[]

save_document

FreeCADドキュメントを保存

filename

export_file

ボディをファイルにエクスポート

body_name, format(step/stl/obj/fcstd), filename

delete_all_features

ドキュメントの全オブジェクトを削除

undo

直前の操作を1ステップ元に戻す

redo

undo で戻した操作をやり直す


🟢 できること

  • 基本形状作成 - 直方体、立方体、円柱、球、円錐、トーラス、半球、半トーラス、多角柱、パイプ(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モデリングできる時代が来た!? AIエージェントに「FreeCADでこれ作って」と話しかけるだけで、3Dモデリングできる時代が来た!?


ライセンス

MIT License - 詳細は LICENSE ファイルを参照してください。

Available Tools

57 tools
add_chamferD

FreeCAD tool: add_chamfer

ParametersJSON Schema
NameRequiredDescriptionDefault
body_nameNoBody name
distanceNoChamfer distance (mm)
edge_indicesNoEdge indices (empty=all, array or JSON string)

TDQS

D1.4/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose1/5

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.

Usage Guidelines1/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
sketch_nameNoBody name
edge1NoFirst geometry index
edge2NoSecond geometry index
point1NoVertex on first edge (1=start, 2=end)
point2NoVertex on second edge (1=start, 2=end)

TDQS

D1.9/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose2/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
body_nameNoBody name
radiusNoFillet radius (mm)
edge_indicesNoEdge indices (empty=all, array or JSON string)

TDQS

D1.2/5.0
Behavior1/5

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.

Conciseness1/5

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.

Completeness1/5

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.

Parameters2/5

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.

Purpose1/5

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.

Usage Guidelines1/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
sketch_nameNoBody name
edge_indexNoGeometry index

TDQS

D1.4/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose1/5

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.

Usage Guidelines1/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
sketch_nameNoBody name
edge_indexNoGeometry index
distanceNoDimension value (mm)

TDQS

D1.7/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose2/5

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.

Usage Guidelines1/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
sketch_nameNoBody name
edge1NoFirst geometry index
edge2NoSecond geometry index

TDQS

D1.6/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose1/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
sketch_nameNoBody name
edge1NoFirst geometry index
edge2NoSecond geometry index

TDQS

D1.4/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose1/5

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.

Usage Guidelines1/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
sketch_nameNoBody name
edge_indexNoGeometry index
radiusNoRadius value (mm)

TDQS

D1.4/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose1/5

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.

Usage Guidelines1/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
sketch_nameNoBody name
edge1NoFirst geometry index
edge2NoSecond geometry index

TDQS

D1.4/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose1/5

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.

Usage Guidelines1/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
sketch_nameNoBody name
edge_indexNoGeometry index

TDQS

D1.3/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters2/5

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.

Purpose1/5

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.

Usage Guidelines1/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
body1NoFirst body name
body2NoSecond body name

TDQS

D1.4/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose1/5

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.

Usage Guidelines1/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
target_bodyNoBase body name
tool_bodyNoTool body name
operationNojoin|cut|intersect
new_body_nameNoBody name

TDQS

D1.7/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose2/5

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.

Usage Guidelines1/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
body_namesNoList of body names (array or JSON string)
operationNojoin|cut|intersect
new_body_nameNoBody name

TDQS

C2.2/5.0
Behavior2/5

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.

Conciseness2/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose2/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
operationNojoin|cut|intersect
new_body_nameNoBody name

TDQS

D1.9/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose2/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
source_body_nameNoBody name
new_body_nameNoBody name
planeNoxy|xz|yzxy

TDQS

D1.7/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose2/5

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.

Usage Guidelines1/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
body_nameNoBody name
widthNoWidth (mm)
depthNoDepth (mm)
heightNoHeight (mm)
cxNoCenter X
cyNoCenter Y
czNoCenter Z
x_placementNoleft|center|rightcenter
y_placementNofront|center|backcenter
z_placementNobottom|center|topcenter

TDQS

C2.1/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
source_body_nameNoBody name
new_body_base_nameNoBody name
axisNox|y|zz
quantityNoCount
angleNoTotal angle (deg)

TDQS

D1.9/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose3/5

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.

Usage Guidelines1/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
body_nameNoBody name
radiusNoBottom radius (mm)
radius2NoTop radius (mm)
heightNoHeight (mm)
cxNoCenter X
cyNoCenter Y
czNoCenter Z
z_placementNobottom|center|topbottom

TDQS

C2.5/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
body_nameNoBody name
sizeNoSide length (mm)
cxNoCenter X
cyNoCenter Y
czNoCenter Z
x_placementNoleft|center|rightcenter
y_placementNofront|center|backcenter
z_placementNobottom|center|topcenter

TDQS

D1.9/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose2/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
body_nameNoBody name
radiusNoRadius (mm)
heightNoHeight (mm)
cxNoCenter X
cyNoCenter Y
czNoCenter Z
z_placementNobottom|center|topcenter

TDQS

C2.1/5.0
Behavior2/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose2/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
body_nameNoBody name
major_radiusNoMajor radius (mm)
minor_radiusNoMinor radius (mm)
sweep_angleNoSweep angle (deg)
cxNoCenter X
cyNoCenter Y
czNoCenter Z

TDQS

D1.4/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose1/5

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.

Usage Guidelines1/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
body_nameNoBody name
radiusNoRadius (mm)
cxNoCenter X
cyNoCenter Y
czNoCenter Z
orientationNopositive|negativepositive

TDQS

C2.1/5.0
Behavior2/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose2/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
body_nameNoBody name
x1NoStart X
y1NoStart Y
z1NoStart Z
x2NoEnd X
y2NoEnd Y
z2NoEnd Z
radiusNoPipe radius (mm)

TDQS

D1.9/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose2/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
body_nameNoBody name
num_sidesNoNumber of sides
radiusNoCircumradius (mm)
heightNoHeight (mm)
cxNoCenter X
cyNoCenter Y
czNoCenter Z
z_placementNobottom|center|topbottom

TDQS

D1.5/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose1/5

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.

Usage Guidelines1/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
source_body_nameNoBody name
new_body_base_nameNoBody name
quantity_oneNoCount in direction 1
distance_oneNoDistance 1 (mm)
direction_one_axisNox|y|zx
quantity_twoNoCount in direction 2
distance_twoNoDistance 2 (mm)
direction_two_axisNox|y|zy

TDQS

D1.9/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose2/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
body_nameNoBody name
new_body_nameNoBody name
planeNoxy|xz|yzxy
offsetNoSection offset (mm)

TDQS

D1.9/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose2/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
sketch_nameNoSketch nameSketch
planeNoxy|xz|yzxy
cxNoX offset
cyNoY offset
czNoZ offset

TDQS

C2.1/5.0
Behavior2/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose2/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
body_nameNoBody name
radiusNoRadius (mm)
cxNoCenter X
cyNoCenter Y
czNoCenter Z

TDQS

D1.6/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose1/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
body_nameNoBody name
major_radiusNoMajor radius (mm)
minor_radiusNoMinor radius (mm)
cxNoCenter X
cyNoCenter Y
czNoCenter Z

TDQS

D1.7/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose2/5

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.

Usage Guidelines1/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

D1.1/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters1/5

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.

Purpose1/5

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.

Usage Guidelines1/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
sketch_nameNoBody name
cxNoCenter X
cyNoCenter Y
radiusNoRadius

TDQS

D1.7/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose2/5

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.

Usage Guidelines1/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
sketch_nameNoBody name
x1NoStart X
y1NoStart Y
x2NoEnd X
y2NoEnd Y

TDQS

D1.3/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters2/5

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.

Purpose1/5

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.

Usage Guidelines1/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
sketch_nameNoBody name
x1NoCorner X1
y1NoCorner Y1
x2NoCorner X2
y2NoCorner Y2

TDQS

D1.5/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters2/5

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.

Purpose2/5

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.

Usage Guidelines1/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
commandsNoList of {tool_name, arguments}

TDQS

D1.3/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters2/5

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.

Purpose1/5

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.

Usage Guidelines1/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
body_nameNoBody name
formatNostep|stl|obj|fcstdstep
filenameNoOutput filename

TDQS

D1.9/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose2/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
sketch_nameNoBody name
body_nameNoBody name
lengthNoExtrusion length (mm)
symmetricNo

TDQS

D1.7/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters2/5

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.

Purpose2/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

D1.1/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters1/5

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.

Purpose1/5

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.

Usage Guidelines1/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
body_nameNoBody name

TDQS

D1.4/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose1/5

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.

Usage Guidelines1/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
body_nameNoBody name

TDQS

D1.7/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose2/5

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.

Usage Guidelines1/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
body1NoFirst body name
body2NoSecond body name

TDQS

D1.4/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose1/5

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.

Usage Guidelines1/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
body_nameNoBody name

TDQS

D1.3/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters2/5

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.

Purpose1/5

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.

Usage Guidelines1/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
body_nameNoBody name

TDQS

D1.4/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose1/5

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.

Usage Guidelines1/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
body_nameNoBody name

TDQS

D1.3/5.0
Behavior1/5

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.

Conciseness1/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose1/5

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.

Usage Guidelines1/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
body_nameNoBody name
densityNoDensity (g/cm³)

TDQS

D1.9/5.0
Behavior1/5

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.

Conciseness3/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose2/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
body_nameNoBody name

TDQS

D1.4/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose1/5

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.

Usage Guidelines1/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
sketch_namesNoOrdered list of sketch names (array or JSON string)
body_nameNoBody name
ruledNo

TDQS

D1.1/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters1/5

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.

Purpose1/5

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.

Usage Guidelines1/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
body1No
body2No
face_index1NoFace index for body1
face_index2NoFace index for body2

TDQS

D1.5/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters1/5

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.

Purpose2/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
body1NoFirst body name
body2NoSecond body name

TDQS

D1.7/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose2/5

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.

Usage Guidelines1/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
body_nameNoBody name
x_distNoX distance (mm)
y_distNoY distance (mm)
z_distNoZ distance (mm)

TDQS

D1.6/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose1/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

D1.2/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose1/5

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.

Usage Guidelines1/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
sketch_nameNoBody name
body_nameNoBody name
axisNox|y|zz
angleNoRevolve angle (deg)

TDQS

D1.9/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose2/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
body_nameNoBody name
axisNox|y|zz
angleNoAngle (deg)
cxNoPivot X
cyNoPivot Y
czNoPivot Z

TDQS

D1.4/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose1/5

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.

Usage Guidelines1/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameNoSave path (optional)

TDQS

D1.7/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose2/5

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.

Usage Guidelines1/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
body_nameNoBody name
thicknessNoWall thickness (mm)
face_indicesNoFace indices to open (array or JSON string)
new_body_nameNoBody name

TDQS

D1.3/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters2/5

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.

Purpose1/5

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.

Usage Guidelines1/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
body_nameNoBody name

TDQS

D1.7/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose2/5

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.

Usage Guidelines1/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
profile_sketchNoProfile sketch name
path_sketchNoPath sketch name
body_nameNoBody name

TDQS

D1.6/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose1/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose2/5

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.

Usage Guidelines2/5

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.

  1. 57 tool updatesv0.9.0
    • First observedadd_chamfer
    • First observedadd_coincident_constraint
    • First observedadd_fillet
    • First observedadd_horizontal_constraint
    • First observedadd_linear_dimension
    • First observedadd_parallel_constraint
    • First observedadd_perpendicular_constraint
    • First observedadd_radius_dimension
    • First observedadd_tangent_constraint
    • First observedadd_vertical_constraint
    • First observedcheck_interference
    • First observedcombine_by_name
    • First observedcombine_selection
    • First observedcombine_selection_all
    • First observedcopy_body_symmetric
    • First observedcreate_box
    • First observedcreate_circular_pattern
    • First observedcreate_cone
    • First observedcreate_cube
    • First observedcreate_cylinder
    • First observedcreate_half_torus
    • First observedcreate_hemisphere
    • First observedcreate_pipe
    • First observedcreate_polygon_prism
    • First observedcreate_rectangular_pattern
    • First observedcreate_section_view
    • First observedcreate_sketch
    • First observedcreate_sphere
    • First observedcreate_torus
    • First observeddelete_all_features
    • First observeddraw_circle_in_sketch
    • First observeddraw_line_in_sketch
    • First observeddraw_rectangle_in_sketch
    • First observedexecute_macro
    • First observedexport_file
    • First observedextrude_sketch
    • First observedget_all_bodies
    • First observedget_body_center
    • First observedget_body_dimensions
    • First observedget_body_relationships
    • First observedget_bounding_box
    • First observedget_edges_info
    • First observedget_faces_info
    • First observedget_mass_properties
    • First observedhide_body
    • First observedloft_sketches
    • First observedmeasure_angle
    • First observedmeasure_distance
    • First observedmove_by_name
    • First observedredo
    • First observedrevolve_sketch
    • First observedrotate_by_name
    • First observedsave_document
    • First observedshell_body
    • First observedshow_body
    • First observedsweep_sketch
    • First observedundo

TDQS

C2/5.0

Scored across 57 tools

Disambiguation4/5

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.

Naming Consistency4/5

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.

Tool Count3/5

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.

Completeness3/5

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

ActivityInactive
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables 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.
    10
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables 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.
    10
    MIT