mcpField
O
onshape

onshape

ローカル
github.com/gpambrozioメディア・デザイン31 日前に更新

onshape について

AI アシスタントから Onshape の CAD ドキュメントを調査・編集できる MCP サーバーです。スケッチやソリッドフィーチャーからアセンブリ、図面、測定、レンダリング、エクスポートまで扱い、初回利用時にブラウザーでサインインします。

主な機能

  1. 01Onshape のドキュメントとワークスペース管理
  2. 02スケッチとソリッドフィーチャーの作成
  3. 03形状の確認とパーツの測定
  4. 04アセンブリと図面の作成
  5. 05モデルのレンダリングとファイル出力

活用シーン

  1. 01自然言語の説明からパーツを作成
  2. 02モデルの寸法と質量特性を確認
  3. 03パーツを組み立て部品表を確認
  4. 04印刷用に STL をエクスポート

MCP 対応

ドキュメント、パーツスタジオ、アセンブリ、図面、エクスポートなどの Onshape 操作を MCP クライアント向けのツールとして公開します。Onshape へのアクセスが必要なツール呼び出しでサインインを開始します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"gpambrozio-onshape": {
"command": "npx",
"args": [
"-y",
"@gpambrozio/onshape-mcp"
],
"env": {
"ONSHAPE_ACCESS_KEY": "<ONSHAPE_ACCESS_KEY>",
"ONSHAPE_SECRET_KEY": "<ONSHAPE_SECRET_KEY>",
"ONSHAPE_MCP_OUTPUT_DIR": "<ONSHAPE_MCP_OUTPUT_DIR>"
}
}
}
}
起動コマンドnpx -y @gpambrozio/onshape-mcp
設定が必要な環境変数
ONSHAPE_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 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@gpambrozio/onshape-mcp0.3.0

ツール

87

掲載時のツール一覧 · 1 日前に更新

パラメーター型必須説明
portintegerいいえコールバック用のループバックポート(OAuth のデフォルトは 8471)。
scopestringいいえアプリで明示が必要な場合に指定する、スペース区切りの OAuth スコープ。
storeenumいいえ認証情報の保存先:auto(キーチェーン、利用できない場合はファイル)、keychain、または file。auto | keychain | file
methodenumいいえログイン方式(デフォルトは api_key)。api_key | oauth
base_urlstringいいえOnshape API のベース URL(デフォルトは https://cad.onshape.com)。
client_idstringいいえOAuth クライアント ID。ONSHAPE_OAUTH_CLIENT_ID からも読み取ります。
oauth_urlstringいいえOAuth サーバー(デフォルトは https://oauth.onshape.com)。
wait_secondsintegerいいえブラウザーを待機してから戻るまでの秒数(デフォルトは 20)。
client_secretstringいいえOAuth クライアントシークレット。ONSHAPE_OAUTH_CLIENT_SECRET からも読み取ります。

詳細

Onshape MCP サーバー

AI アシスタントから Onshape の CAD を操作できます。ドキュメント、パーツスタジオ、スケッチ、ソリッドフィーチャー、アセンブリ、図面、測定、エクスポート用の 88 個のツールを利用できます。インストール以外のセットアップは不要です。Onshape を必要とする最初のツール呼び出しでブラウザーが開き、接続を求められます。

CI npm

"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_URLOnshape API ホスト(デフォルトは https://cad.onshape.com)
ONSHAPE_OAUTH_CLIENT_ID、ONSHAPE_OAUTH_CLIENT_SECRETAPI キーの代わりに、サインインに使用する OAuth アプリ
ONSHAPE_MCP_AUTO_LOGIN0 にすると、ツール呼び出しによるブラウザーサインインの開始を停止します
ONSHAPE_MCP_NO_BROWSER1 にすると、ブラウザーを起動せず、代わりに 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. の商標です。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。