onshape について
AI アシスタントから Onshape の CAD ドキュメントを調査・編集できる MCP サーバーです。スケッチやソリッドフィーチャーからアセンブリ、図面、測定、レンダリング、エクスポートまで扱い、初回利用時にブラウザーでサインインします。
主な機能
- 01Onshape のドキュメントとワークスペース管理
- 02スケッチとソリッドフィーチャーの作成
- 03形状の確認とパーツの測定
- 04アセンブリと図面の作成
- 05モデルのレンダリングとファイル出力
活用シーン
- 01自然言語の説明からパーツを作成
- 02モデルの寸法と質量特性を確認
- 03パーツを組み立て部品表を確認
- 04印刷用に STL をエクスポート
MCP 対応
ドキュメント、パーツスタジオ、アセンブリ、図面、エクスポートなどの Onshape 操作を MCP クライアント向けのツールとして公開します。Onshape へのアクセスが必要なツール呼び出しでサインインを開始します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @gpambrozio/onshape-mcpONSHAPE_ACCESS_KEYシークレットOnshape API access key. Optional: the server signs in through the browser when this is not set.ONSHAPE_SECRET_KEYシークレットOnshape API secret key, paired with ONSHAPE_ACCESS_KEY.ONSHAPE_MCP_OUTPUT_DIRDirectory for exported STL/STEP files and renders. Defaults to the working directory.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
87掲載時のツール一覧 · 1 日前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| port | integer | いいえ | コールバック用のループバックポート(OAuth のデフォルトは 8471)。 |
| scope | string | いいえ | アプリで明示が必要な場合に指定する、スペース区切りの OAuth スコープ。 |
| store | enum | いいえ | 認証情報の保存先:auto(キーチェーン、利用できない場合はファイル)、keychain、または file。auto | keychain | file |
| method | enum | いいえ | ログイン方式(デフォルトは api_key)。api_key | oauth |
| base_url | string | いいえ | Onshape API のベース URL(デフォルトは https://cad.onshape.com)。 |
| client_id | string | いいえ | OAuth クライアント ID。ONSHAPE_OAUTH_CLIENT_ID からも読み取ります。 |
| oauth_url | string | いいえ | OAuth サーバー(デフォルトは https://oauth.onshape.com)。 |
| wait_seconds | integer | いいえ | ブラウザーを待機してから戻るまでの秒数(デフォルトは 20)。 |
| client_secret | string | いいえ | OAuth クライアントシークレット。ONSHAPE_OAUTH_CLIENT_SECRET からも読み取ります。 |
詳細
Onshape MCP サーバー
AI アシスタントから Onshape の CAD を操作できます。ドキュメント、パーツスタジオ、スケッチ、ソリッドフィーチャー、アセンブリ、図面、測定、エクスポート用の 88 個のツールを利用できます。インストール以外のセットアップは不要です。Onshape を必要とする最初のツール呼び出しでブラウザーが開き、接続を求められます。
"Make a 60 × 40 × 10 mm bracket with 4 mm mounting holes and 2 mm fillets, then show me a render"
アシスタントがスケッチを作成し、押し出し、エッジにフィレットを適用して、結果を測定し、会話にレンダリングして戻し、印刷できる STL をエクスポートします。
インストール
Claude Code
claude mcp add onshape -- npx -y @gpambrozio/onshape-mcp
Claude Desktop — 最新リリースから onshape-mcp-<version>.mcpb をダウンロードし、ダブルクリックします。それ以外のインストールは不要です。
Cursor、VS Code、Windsurf、Zed などの MCP クライアント — クライアントの MCP 設定にサーバーを追加します。
{
"mcpServers": {
"onshape": {
"command": "npx",
"args": ["-y", "@gpambrozio/onshape-mcp"]
}
}
}
ファイルの場所はクライアントによって異なります。Cursor は ~/.cursor/mcp.json、VS Code は .vscode/mcp.json、Windsurf は ~/.codeium/windsurf/mcp_config.json、Zed は context_servers 配下の ~/.config/zed/settings.json です。
Node 20 以降が必要です。初回実行時に npx がパッケージを取得します。
サインイン
設定は不要です。Onshape を必要とする最初のツール呼び出しでサインインが開始され、クライアントにリンクの表示を求めます。MCP の URL エリシテーションに対応したクライアントではプロンプトとして表示され、それ以外のクライアントでは返信に URL が含まれます。開いたページから、Onshape スタック用のキーのページに直接移動し、貼り付けたキーのペアを入力できます。キーの作成時に Read、Write、Delete にチェックを入れると、ここにあるすべてのツールが機能します。キーは Onshape で検証され、OS のキーチェーンに保存されます。
認証情報がアシスタント、モデル、このプロジェクトの作者に渡ることはありません。やり取りはブラウザーと、このプロセス内で 127.0.0.1 にバインドされたサーバーの間で行われます。これが、MCP に URL エリシテーションがある理由です。
ほかの認証方法もあります。
onshape_login— 同じフローを明示的に開始します。onshape_set_api_key— すでにお持ちのキーのペアを貼り付けます。- OAuth 2.0 — Onshape 開発者ポータルで登録したアプリ向けに、
method: "oauth"を指定してonshape_loginを実行します。リダイレクト URL はhttp://localhost:8471/oauth/callbackです。トークンは自動的に更新されます。 - 環境変数 — 無人インストールでは
ONSHAPE_ACCESS_KEYとONSHAPE_SECRET_KEYを設定し、サーバーがブラウザーを開かないようにするにはONSHAPE_MCP_AUTO_LOGIN=0を設定します。
既存の onshape-cli の認証情報は、~/.onshape/credentials.json にあれば自動的に読み込まれます。
onshape_auth_status で使用中の認証情報を(伏せ字で)確認でき、onshape_logout で削除できます。
ツール
| 分野 | ツール |
|---|---|
| サインイン | login, login_status, set_api_key, auth_status, logout |
| ドキュメント | list_documents, search_documents, get_document, get_document_summary, create_document, update_document, delete_document, get_workspaces, get_elements, find_part_studios, list_versions, create_version, delete_element |
| パーツスタジオ | create_part_studio, get_features, get_feature_specs, get_sketch_info, get_body_details, get_parts, mass_properties, measure, clearance, validate_part_studio, add_feature, update_feature, delete_feature, rollback, eval_featurescript |
| スケッチ | sketch_rectangle, sketch_circle, sketch_line, sketch_circle_axis, create_sketch, sketch_candy_cane_path |
| ソリッド | extrude, hole, thicken, revolve, sweep, fillet, chamfer, shell, draft, boolean, boolean_union, mirror, linear_pattern, circular_pattern, offset_plane |
| ジオメトリ | get_edges, find_circular_edges, find_edges_by_feature |
| 変数 | get_variables, set_variable, get_configuration, encode_configuration |
| エクスポート | export_stl, export, shaded_view, get_thumbnail, thumbnail_info |
| アセンブリ | create_assembly, get_assembly, insert_instance, delete_instance, transform_instance, get_assembly_features, assembly_mate_connector, assembly_mate, assembly_group, assembly_add_feature, get_bom, assembly_mass_properties |
| 図面 | create_drawing, get_drawing_views, export_drawing |
| フィーチャースタジオ | create_feature_studio, get_feature_studio, set_feature_studio, get_feature_studio_specs |
| メタデータ | get_metadata, set_metadata |
| エスケープハッチ | request |
すべての名前には onshape_ が接頭辞として付き、各ツールは
{"ok": true, "result": …} または {"ok": false, "error": …, "detail": …} を返します。
知っておくと便利な点:
- 単位はすべてインチと度です。 ただし STL エクスポートは、スライサーで想定される単位に合わせて、デフォルトでミリメートルになります。
- フィーチャーツールはデフォルトで検証を行います。 フィーチャーの再生成に失敗しても、Onshape は
200を返すため、各ツールはフィーチャーの状態を再読み込みし、失敗を明確に報告します。検証を省略するにはvalidate: falseを渡します。 - レンダリング結果は画像として返されます。
shaded_viewとget_thumbnailは、PNG をインラインで返すと同時に書き出すため、モデルを見てパーツを確認できます。 - 大きな読み取り結果はディスクに保存されます。
ONSHAPE_MCP_MAX_RESPONSE_BYTES(デフォルトは 200 kB)を超えるデータはファイルに書き出され、要約されます。これにより、フィーチャーツリーがコンテキストウィンドウを使い果たすのを防ぎます。 onshape_requestを使うと、専用ツールで対応していない任意の REST エンドポイントにアクセスできます。
設定
すべての設定は省略可能です。
| 変数 | 効果 |
|---|---|
ONSHAPE_ACCESS_KEY、ONSHAPE_SECRET_KEY | サインインの代わりに、このキーのペアを使用します |
ONSHAPE_BASE_URL | Onshape API ホスト(デフォルトは https://cad.onshape.com) |
ONSHAPE_OAUTH_CLIENT_ID、ONSHAPE_OAUTH_CLIENT_SECRET | API キーの代わりに、サインインに使用する OAuth アプリ |
ONSHAPE_MCP_AUTO_LOGIN | 0 にすると、ツール呼び出しによるブラウザーサインインの開始を停止します |
ONSHAPE_MCP_NO_BROWSER | 1 にすると、ブラウザーを起動せず、代わりに URL を表示します |
ONSHAPE_MCP_SIGNIN_WAIT_MS | サインインを待つ呼び出しの待機時間(デフォルトは 120000) |
ONSHAPE_DOC、ONSHAPE_WS、ONSHAPE_ELEM | デフォルトの対象。設定すると、これらの引数は省略可能になります |
ONSHAPE_MCP_OUTPUT_DIR | 相対エクスポートパスの出力先(デフォルト:作業ディレクトリ) |
ONSHAPE_MCP_MAX_RESPONSE_BYTES | ファイルへの書き出しが始まるレスポンスサイズ(デフォルトは 200000) |
ONSHAPE_MCP_CONFIG | 認証情報ファイルのパス(デフォルトは ~/.onshape-mcp/credentials.json) |
ONSHAPE_TIMEOUT_MS | リクエストごとのタイムアウト(デフォルトは 120000) |
利用可能な場合、シークレットは OS のキーチェーン(サービス名 onshape-mcp)に保存され、設定ファイルにはシークレット以外のメタデータのみが保存されます。キーチェーンが利用できない場合、ファイルにはシークレットも保存され、0700 のディレクトリ内に 0600 の権限で書き込まれます。
Onshape アカウントの制限
これらの制限はこのサーバーではなく、Onshape によるものです。
- 無料アカウントでは公開ドキュメントのみ作成できます —
onshape_create_documentにpublic: trueを渡してください。 - 削除には削除権限のあるキーが必要です。 権限がない場合、Onshape は
403 Invalid API key stateを返します。cad.onshape.com/user/developer/apiKeys でキーを再作成し、Delete にチェックを入れてください。 - 一部のアカウントでは変数テーブルのエンドポイントが 404 を返します。
onshape_set_variableとonshape_get_variablesは、どのアカウントでも動作するassignVariableフィーチャーにフォールバックします。result.route/result.sourceで、どちらの経路が使われたか確認できます。すでに Variable フィーチャーがある名前を設定すると、 そのフィーチャーがインプレースで書き換えられます。
開発
npm install
npm run check # type-check
npm test # unit tests, no network and no browser
npm run build
npm run bundle # build the Claude Desktop .mcpb
node scripts/smoke.mjs # live read-only check against your account
node scripts/smoke.mjs --write # also builds a throwaway part
構成:src/auth(認証情報ストア、キーチェーン、ログインフロー、OAuth、エリシテーション)、
src/api(REST ラッパー)、src/builders(Onshape BTM フィーチャーペイロード)、
src/tools(MCP のインターフェース)、src/server.ts(登録と認証ゲート)。
貢献を歓迎します。CONTRIBUTING.md をご覧ください。セキュリティに関する報告: SECURITY.md。
ライセンス
MIT。onshape-cli に由来する部分があります
— NOTICE をご覧ください。
Onshape または PTC とは提携、承認、支援関係にありません。「Onshape」は PTC Inc. の商標です。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。