MathCAD MCP Server について
MathCAD MCP サーバーは、Windows の COM 自動化を通じて PTC MathCAD Prime を操作する MCP サーバーで、AI アシスタントがワークシートを扱えるようにします。単位を考慮した値の入出力や、結果の書き出しを AI クライアントから行いたいエンジニアや研究者を想定しています。
主な機能
- 01ワークシートの開く、閉じる、保存
- 02単位を含む入力と出力へのアクセス
- 03計算の一時停止、再開、再計算
- 04PDF、RTF、XPS 形式へのエクスポート
- 05読み取り専用と変更状態の確認
活用シーン
- 01AI アシスタントによるパラメーター変更と工学計算結果の取得
- 02MathCAD ワークシートの PDF 書き出し
- 03入力値を変えた場合の梁のたわみの検討
MCP 対応
このプロジェクトは MCP サーバーであり、ワークシート管理、入出力へのアクセス、計算制御のためのツール、リソース、プロンプトテンプレートを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MathCAD MCP サーバー
PTC MathCAD Prime との連携を提供する Model Context Protocol(MCP)サーバーです。Claude などの AI アシスタントが、標準化されたインターフェースを通じて MathCAD ワークシートを操作できます。
機能
- ワークシート管理:MathCAD ワークシートを開く、閉じる、保存する
- 入力制御:単位付きの数値、文字列、行列を設定する
- 出力へのアクセス:適切な単位付きで計算結果を取得する
- 計算管理:ワークシートの計算を一時停止、再開、再実行する
- エクスポートオプション:ワークシートを PDF、RTF、XPS ファイルとして保存する
要件
- Windows オペレーティングシステム(MathCAD の COM オートメーションに必要)
- Python 3.10 以降
- PTC MathCAD Prime 3.0 以降がインストールされていること
- 依存関係:MathcadPy、pywin32、MCP Python SDK(requirements.txt を参照)
インストール
Claude Desktop を使った簡単なインストール
-
必要な依存関係をインストールします:
pip install -r requirements.txt -
インストールスクリプトを実行します:
python install_standalone.pyオプション:
- 実行時に MathCAD ウィンドウを非表示にするには、
--hideフラグを使用します:python install_standalone.py --hide
- 実行時に MathCAD ウィンドウを非表示にするには、
-
変更を反映するため、Claude Desktop を再起動します。
手動設定
Claude Desktop の設定ファイル(Mac の場合は ~/Library/Application Support/Claude/claude_desktop_config.json、Windows の場合は %APPDATA%\Claude\claude_desktop_config.json)を編集します:
{
"mcpServers": {
"mathcad": {
"command": "python",
"args": [
"path/to/mathcad-mcp/standalone.py"
],
"env": {
"MATHCAD_VISIBLE": "true"
}
}
}
}
使用方法
ツール
このサーバーは、次の MCP ツールを公開します:
list_mathcad_version:実行中の MathCAD のバージョンを取得するopen_worksheet:ファイルパスから MathCAD ワークシートを開くclose_worksheet:指定したワークシートを閉じるclose_all_worksheets:開いているすべてのワークシートを閉じるquit_mathcad:MathCAD アプリケーションを終了するsave_worksheet:ワークシートを指定したパスと形式で保存するsave_worksheet_inplace:ワークシートを現在の場所に保存するactivate_worksheet:ワークシートを最前面に表示するset_real_input:単位を任意で指定して数値入力を設定するset_string_input:文字列入力を設定するset_matrix_input:単位を任意で指定して行列入力を設定するget_input:指定した入力(実数/文字列/行列)の現在の値を取得するget_matrix_input:指定した行列入力の現在の値を取得するcalculate_worksheet:ワークシートを再計算するsync_worksheet:ワークシートの計算を行うエイリアスpause_calculation:ワークシートの計算を一時停止するresume_calculation:ワークシートの計算を再開するget_output:指定した出力値(実数、文字列、または行列)を取得するget_real_output:ワークシートから数値の出力値を取得するget_real_output_with_units:指定した単位に変換して数値の出力値を取得するget_matrix_output:ワークシートから行列の出力を取得するget_matrix_output_with_units:単位を変換して行列の出力を取得するsave_as_pdf:ワークシートを PDF ファイルとして保存する(Mathcad Prime 5 以降のみ)save_as_rtf:ワークシートを RTF ファイルとして保存するsave_as_xps:ワークシートを XPS ファイルとして保存するis_worksheet_readonly:ワークシートが読み取り専用かどうかを確認するis_worksheet_modified:ワークシートに未保存の変更があるかどうかを確認するset_worksheet_modified:ワークシートの「変更済み」ステータスを強制的に設定する
リソース
このサーバーは、次の MCP リソースを公開します:
mathcad://worksheets:開いているすべてのワークシートを一覧表示するmathcad://worksheets/paths:ファイルパスを含めてワークシートを一覧表示するmathcad://worksheet/{worksheet_name}/inputs:ワークシート内の入力を一覧表示するmathcad://worksheet/{worksheet_name}/outputs:ワークシート内の出力を一覧表示するmathcad://worksheet/{worksheet_name}/output/{output_name}:特定の出力値を取得するmathcad://worksheet/{worksheet_name}/output/{output_name}/matrix:行列の出力を取得するmathcad://worksheet/{worksheet_name}/output/{output_name}/with_units/{units}:単位を変換して出力を取得するmathcad://worksheet/{worksheet_name}/info:ワークシートに関する情報を取得するmathcad://worksheet/{worksheet_name}/status:ワークシートのステータスを取得する
プロンプトテンプレート
サーバーは、MathCAD 関連のタスクを支援する次のプロンプトテンプレートを提供します。
solve_equation:数式を解くためのテンプレートplot_function:関数をプロットするためのテンプレートanalyze_engineering_problem:工学的な問題を分析するためのテンプレートunit_conversion:単位変換タスクのためのテンプレートcreate_worksheet_template:新しいワークシートテンプレートを作成するためのテンプレート
ワークフローの例
例 1:物理の問題を解く
1. Open an existing MathCAD worksheet:
"Can you open my physics worksheet at C:\Users\username\Documents\Physics\projectile_motion.mcdx?"
2. Set input parameters:
"Set the initial velocity to 50 m/s and the launch angle to 30 degrees."
3. Calculate the results:
"Now calculate the trajectory and show me the maximum height and distance."
4. Extract output values:
"What's the maximum height reached by the projectile?"
例 2:工学的な分析
1. Open or create a worksheet for analysis:
"I need to analyze a beam deflection problem. Can you open the structural_analysis.mcdx worksheet?"
2. Configure the worksheet:
"Set the load P to 5000 N, beam length L to 2 m, Young's modulus E to 200 GPa, and moment of inertia I to 4×10⁻⁶ m⁴."
3. Run the calculation:
"Calculate the worksheet and tell me the maximum deflection."
4. Export the results:
"Save the worksheet as a PDF so I can include it in my report."
環境変数
MATHCAD_VISIBLE:MathCAD アプリケーションのウィンドウを表示する場合は「true」(デフォルト)、非表示にする場合は「false」に設定します。
アーキテクチャ
このサーバーは、MCP Python SDK の FastMCP フレームワークを使用して構築されています。主なコンポーネントは次のとおりです。
standalone.py:MathCAD と連携する自己完結型のサーバースクリプトinstall_standalone.py:Claude Desktop にサーバーをインストールするためのユーティリティスクリプト
トラブルシューティング
よくある問題
COM オートメーションエラー
COM オートメーションエラーが発生した場合は、次の点を確認してください。
- MathCAD がインストールされ、正しくライセンス認証されていることを確認します
- Windows で実行していることを確認します
- MathCAD と MCP サーバーを再起動してみます
ワークシートが見つからない
ワークシートが見つからない場合は、次の点を確認してください。
- 相対パスではなく、絶対パスを使用します
- ファイルパスが正しくエスケープされていることを確認します
- ファイルが存在し、有効な
.mcdxファイルであることを確認します
単位変換の問題
単位変換に失敗する場合は、次の点を確認してください。
- 単位間に互換性があることを確認します(例:長さを質量に変換することはできません)
- 正しい単位記号が使われていることを確認します(例:メートルには「m」を使用します)
- 標準的な単位形式を使用してみます(例:「m*s^(-1)」ではなく「m/s」を使用します)
ライセンス
このプロジェクトは MIT License の下でライセンスされています。詳細については、LICENSE ファイルを参照してください。
謝辞
- MathcadPy - MathCAD Prime オートメーション API 用の Python ラッパー
- Model Context Protocol - プロトコル仕様と SDK
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。