はじめに
待望のPyLumerical-MCPがリリースされました!
PyLumerical-MCPとは、AIエージェントがフォトニクス解析ソフトウェアAnsys LumericalをPyLumerical(Lumerical実行のためのPython関数)で操作するためのMCPです。
PyLumerical以外にもPyMAPDL、PyMechanical、PyAEDT、PyFluentもリリースされていますので、Ansysユーザーの皆様、注目です!
以下のサイトにてProduct families>AIをチェックしてご確認ください。
上記サイトでも案内されていますが、ソースコードなどはGitHubで公開されています。
どのような環境で使えるのか
MCPとは、Anthoropic社が提唱した、AIと外部システムやツールを共通の方法で接続するためのオープンプロトコルです。
今ではAnthoropic社Claudeのツール以外でも、ChatGPT/CodeXやGemini/Antigravityなどで使えます。
公式のPython-SDKも用意されているため、Python環境だけでもMCPが利用できます。
ただし、PyLumerical-MCPは、ローカルにインストールされているAnsys Lumericalを操作するMCPのため、
- ローカルMCPを利用できるAI環境
- LLMをサブスクやAPIで利用できる契約、またはローカルLLM環境
- ローカルにインストールされた、ライセンスが有効なAnsys Lumerical
が必要になります。
利用環境構築
詳しくは以下などをご覧ください。
PyLumerical-MCPはPyPl(pip installなど)やGitHub( https://github.com/ansys/pylumerical-mcp.git )からダウンロード/インストールできます。
PyLumerical-MCPはStreamable HTTPとSTDIOの両方をサポートしています。
と言っても、セットアップ自体は今の時代、難しくありません。
Claude CodeやCodeXなど使用ツールでMCPを設定する方法をご確認ください。
Python-SDKで実装する場合も、具体的なPythonプログラムは生成AIに書いてもらってください。
私はPython-SDKを使ったPythonプログラムで実装しました。
どんなプログラムを書いたかはあるのですが、、ひとまずお試しで実行!
今回、利用したLLMモデルはOpenAI社のGPT-5.5です。言わずもがな他のモデルを使用した場合や、GPT-5.5であっても、出力される内容が時と場合によって、コンテキストとプロンプトによって変化するのがLLMです。以降の内容は、使ってみた結果の"ある一例"(完全な再現性は無いもの)としてご覧ください。
>uv run main.py
=== Available MCP tools ===
- get_guidelines_for
- open_session
- close_session
- list_sessions
- execute_python_code
- restart_session
Added OpenAI hosted tools ===
===
- web_search
入力してください。終了は exit /quit / q
You>
PyLumerical-MCPでは6つのツールが使えるようになっています。
まず、open_sessionをはじめ、セッション(操作対象のLumerical)の起動や終了、リスタート、リスト出力が可能です。
FDTD, MODE, DEVICE, INTERCONNECTのセッションが操作できます。
次にget_guidelines_for。
こちらはこのPyLumerical-MCP、ひいてはLumericalを使うためのガイドラインです。
やって良いこと、ダメなことが書かれています。AIエージェントにはまずこのガイドラインを見ることが指示されており、この内容に沿ってLumericalを操作していきます。
このへんがAnsys社のノウハウですね。ソース見れば、全文読めますが。。
また、同様の方法でオリジナルのガイドラインや自社の設計方針を組み込めば、それに沿った動作も可能ということです。※ここで注意!この自作ガイドラインも、クラウド提供のAIが見るときは、クラウド上へ情報がアップロードされます。学習されない設定にしていたとしても、、クラウド送付NGのノウハウは記載しないでください。
最後にexecute_python_code。
これは名前のとおり、AIが書いたPythonコードを実行するためのツールです。
入力したプロンプトやガイドラインをもとにAIがLumericalを操作するPythonコードを書いてくれるので、それを実行するためのツールです。
※ここでも1つ注意!このexecute_python_codeツールはLumericalを操作するPythonコード以外も実行できる仕様になっています。自由度は高い一方、重要なデータを消しちゃうなどの意図しない操作をする可能性もあります。そうしないようにプロンプトで指示することはできますが強制力はないため、最悪そうなっても問題ない環境でご利用ください。
なお、私が使ったPythonプログラムには、web_search、つまりウェブ検索ツールも追加して、ウェブ上の情報もAIが参照できるようにしました。
使ってみよう
では、さっそく!
You>FDTDセッション起動
うまく機能すれば、Lumericalのセッションが立ち上がります。

うん、素敵♪
さて、続いて。
You>Y分岐導波路をモデリングして
さすがに超ざっくりとした指示。すぐにモデリングは始めません。
~前半省略~
5 .** 基板·クラッド **
- 上クラッドあり/なし
-材料:例 Si02, air
6. ** 保存先 **
- '.fsp'ファイルの保存パス
-例:'C:/Users/yourname/y_branch.fsp'
7 .** ポート設定 **
-入力1ポート +出力2ポートでよいですか?
- 基本TEモードでよいですか?
例えば、以下のように返してもらえればすぐ作成します。
'1'text
Si 220 nm厚、500 nm幅、Si02基板、airクラッド
波長 1.55 um
入力ストレート 3um
分岐長 8 um
出力ストレート 3um
出力間隔 2 um
Sベンド分岐
TE基本モード
保存先 C:/temp/y_branch.fsp
確認後、、fdtd_main'セッション内にジオメトリ、FDTD領域、
3ポートを作成します。
※の段階ではソルバーは実行しません。
You>
作業前に、やることを確認する。優秀ですね。
You>まかせる。波長は1.60umで
まったくもってダメな指示の仕方ですが。。今回はお試しということで勘弁してください。
それでもAIは「わっかりましたー」と言わんばかりに、
ガイドラインを見て、
モデリングのためのPythonコードを書いて、
Lumericalに対して実行してくれました。
このとき、複数のステップにまたがる場合も、Lumerical側がエラーを出してPythonコードが実行されなかった場合も、止まることなく最後まで処理を実行してくれました。
そういう風に動くように、Pythonプログラムを組んだのはありますが。。

はい、できました!
ちゃんとモデリングされていますし、その設定内容をレポートしてくれています。次にやることも2案提示しています。
もちろん、このモデルや設定が意図している内容かどうかはLumericalの画面でもご確認ください。
この状態でLumericalの画面を操作しても、Lumerical上で設定を変更しても、AI側は問題ありません。設定変更した場合は、次の指示でそれを伝えれば、AIがLumerical上で設定を確認してくれます。
次回、解析編に続く。
モデリングができることが分かったということで、、
少し遊んでみました。
You>お城をモデリングして
さすがにGPT5.5では、超簡易的な積み木のお城しかモデリングしてくれませんでした。
が、今はGPT-5.6-Solがいる!
おー!
こんなモデルでフォトニクス解析することはないですが、細かい指示をしなくてもここまではできるみたいです。
お問い合わせ
フォトニクス解析ソフトウェアAnsys Lumericalをはじめ、光学シミュレーションソフトの導入や技術相談、設計解析委託をお考えの方はサイバネットにお問合せください。
