physics-lint-mcp
physics-lint-mcp
📖 ドキュメントサイト — ポートフォリオのストーリー、コンセプト、完全なウォークスルー、そしてこれが証明すること(と証明しないこと)のすべて。
あなたのAIエージェントが言葉でごまかせない物理オラクル。
LLMには、物理的に不可能なSパラメータ行列と妥当なものを見分ける方法がない——どちらも単なる数値にすぎないからだ。エージェントに捏造されたモデルを渡せば、それは自信を持って推論し、引用し、その上に構築していく。ループの中で異議を唱えるものは何もない。
これらのMCPツールは、エージェント自身の判断ではなく、線形代数からのグラウンドトゥルースをエージェントに与える。
30秒クイックスタート
git clone https://github.com/nickharris808/physics-lint-mcp.git
cd physics-lint-mcp
pip install git+https://github.com/nickharris808/sparam-lint.git@main \
git+https://github.com/nickharris808/maxwell-lint.git@main \
.2つのチェッカーは別々のパッケージで、それぞれ独自のリポジトリから取得される。サーバーは最後の . である。クライアントに配線する前に、サーバーがstdioで応答することを確認する:
$ printf '%s\n%s\n' \
'{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"smoke","version":"0"}}}' \
'{"jsonrpc":"2.0","id":2,"method":"tools/list"}' \
| physics-lint-mcp | tail -1 | python3 -m json.tool | grep '"name"'
"name": "check_touchstone",
"name": "self_test",
"name": "check_screening",
"name": "pairwise_error",まだPyPIには未公開。
pip install physics-lint-mcpが公開後の想定インストール方法。それまでは上記の3パッケージコマンドが有効な方法である。
Related MCP server: mcp-ltspice-qucs
設定
Claude Desktop / Cursor / 任意のMCPクライアント:
{
"mcpServers": {
"physics-lint": {
"command": "physics-lint-mcp"
}
}
}すぐ使える mcp.json がパッケージに同梱されている。
ツール
ツール | 引数 | 答えること |
|
| この |
|
| この結合行列は多体系スクリーニングの上限を破っているか? |
|
| このスクリーニング係数でペアワイズ抽出器はどの程度間違っているか? |
| なし | チェッカーは依然として判別できるか? |
サーバーが tools/list で公開するスキーマがこの表の正式版であり、テストが両者の一致を検証する。
実例: 自分を欺けないエージェント
これが防ぐ失敗は具体的である。エージェントがベンダーの .s2p を渡され、リンクが成立するかどうかを問われ、存在し得ないネットワークを記述する数値について流暢に推論する。ループの中で異議を唱えるものは何もない。なぜならLLMには、不可能なS行列と妥当なものを見分ける方法がないからだ。
サーバーを配線したら、セッションで最初にやる価値があるのは、チェッカーに自分自身を証明させることだ:
あなた: モデルを見る前に、
self_testを実行して。エージェント: (
self_testを呼び出す) バッテリーは判別できる——それぞれ1つの法則に違反するように作られた5つのネットワークはすべて拒否された。
次にモデル:
あなた:
vendor/lna_stage.s2pをチェックして。エージェント: (
path="vendor/lna_stage.s2p"でcheck_touchstoneを呼び出す) このネットワークは受動デバイスとして物理的に実現可能ではない: 受動性とエネルギー保存に失敗している。その値から推論することはしない。
最後の文はエージェントが慎重になっているわけではない——それは結果に含まれる interpretation フィールドが、モデルが読むために書かれたものだからだ。{"passed": false} だけを与えられたエージェントは、しばしば先に進み続ける。
この設計が禁じる2つのことがあり、どちらも見た目以上に重要である: エージェントはモデルを修復できない——すべてのツールが読み取り専用だからだ。そして、失敗をクラッシュと誤認できない——物理的な失敗はトランスポートエラーではなく結果として返ってくるからだ。次の3つのセクションは、これら2つの特性の詳細であり、3つ目は最初にあなたを噛むであろうケースである。
トラブルシューティング
physics-lint-mcp: command not found — コンソールスクリプトがインストールされていない。pip show physics-lint-mcp を確認せよ。存在する場合、環境の bin ディレクトリが PATH にない。これはクライアントが別のシェルでサーバーを起動する場合に一般的である。mcp.json で絶対パスを使用せよ:
{"command": "/full/path/to/venv/bin/physics-lint-mcp"}。
クライアントがサーバーの起動失敗を表示する — まずクイックスタートのstdioスモークテストを手動で実行せよ。これはクライアントの監視なしの同じコードパスなので、トレースバックが見える。
No module named 'sparam_lint' — 2つのチェッカーは別々のパッケージであり、自動的には取得されない。クイックスタートが示すように、3つすべてをインストールせよ。
ツール呼び出しが isError: true を返し、エージェントが停止する — それは物理的な判定であり、障害ではない。結果には失敗した法則と解釈が含まれる。エージェントは呼び出しを失敗として扱うのではなく、それらを読むべきである。
何も返ってこない — サーバーはstdio上でJSON-RPCを話し、1行に1オブジェクトである。複数のオブジェクトを1行にまとめるクライアント、または末尾の改行なしで書き込むクライアントはハングする。initialize リクエストが最初に来なければならない。
ツールリストが上記の表より短い — 古いビルドを実行している。tools/list は表がテストされているのと同じ定義から生成されるため、1つのバージョン内で両者が食い違うことはない。
エージェントが見るもの
すべての結果には、モデルが読むために書かれた interpretation フィールドが含まれる。エージェントはブール値ではなく散文に基づいて行動するからだ:
{
"physically_admissible": false,
"failed_laws": ["passivity", "energy_conservation"],
"interpretation": "This network is not physically realizable as a passive
device. Do not use it as a reference and do not reason from its values.
One legitimate exception: a non-reciprocal device such as a ferrite
isolator will correctly fail the reciprocity law by design."
}最後の文が重要である。「相反性に失敗」とだけ言われたエージェントは、完璧に正常なアイソレータを親切に「修正」してしまうだろう。
そしてクリーンな結果では、解釈は判定が意味しないことを述べる:
5つの法則はすべて成立し、ネットワークは物理的に許容される。これは正確であることを意味するものではないことに注意——間違った構造の受動モデルは、ここでのすべての法則を通過する。
すべてのツールは読み取り専用
ここではモデルを書き込んだり、捏造したり、修復したりするものは何もない。失敗しているネットワークを黙ってパッチできるエージェントは、オラクルを持つ目的を無意味にする。したがって、I/Oの不在はテストによって強制される。
物理的な失敗はエラーではなく結果である
法則に失敗するファイルは、トランスポートレベルのエラーではなく、isError: true と完全な判定を含む通常の結果を返す。エージェントは推論するために失敗を見る必要がある。不透明なプロトコルエラーは何も教えてくれない。
エージェントなしで試す
printf '%s\n' \
'{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}' \
'{"jsonrpc":"2.0","id":2,"method":"tools/list"}' | physics-lint-mcp範囲について、正直に
これらのツールは物理的許容性を検証するものであり、正確性ではない。完全に間違った構造の受動モデルは、すべてのチェックを通過する。これらは下限であり、フィールドソルブや測定に対する検証の代わりではない。
ツールキットの残り
異なる場所で同じ質問に答える8つの成果物: このモデルは物理的に可能か? それぞれが採点者である——モデルが間違っていると教えることはできるが、正しいと教えることはできない。
Sパラメータモデルは物理的に可能か? 5つの法則 + ネガティブコントロール。 | |
結合抽出器が不可能な物理を予測するか? スクリーニング上限 k ≤ 1。 | |
モデルは黙るべき時を知っているか? 棄権再現率、正確性と決してプールしない。 | |
検証済みグラウンドトゥルースを持つ11のラベル付きネットワーク。採点者を採点する。 | |
認定された不可能性の結果 + 27の反例。ゼロ依存の検証器。 | |
同じチェックをCIで。 | |
| AIエージェントが呼び出せる物理オラクル。 |
3つのチェックすべて、インストール不要、クライアントサイドで実行。 |
これらのツールはモデルを採点する。構造的に受動的——つまりパラメータが何であれこれらの法則に失敗できない——かつ多体系領域で高速に正確で、較正された棄権とフェイルクローズの署名証明書を備えたモデルを生成することが、商業の中核である: ChipletOS。
ライセンス
Apache-2.0。LICENSE を参照。著作権は NOTICE に記載。
これらのツールと並行して書かれた署名証明書と受動的構造合成は、ChipletOS のクローズドコアである。
貢献
ここでの絶対的なルールは1つ: すべてのツールは読み取り専用のままである——失敗しているモデルを黙ってパッチできるエージェントは、オラクルを持つ意味を無意味にするだろう。CONTRIBUTING.md に詳細がある。各兄弟リポジトリは独自のルールを定めており、それらは異なる——それは意図的であり、それぞれが独自の条件で信頼できる理由である。
引用
CITATION.cff は機械可読であり、GitHubはそこから「このリポジトリを引用」ボタンをレンダリングする。
Related MCP Connectors
Machine-verifiable authorization checks for autonomous AI agents.
AI-callable calculators and engineering models with real formulas. No hallucinated math.
Verifiable Earth ground truth for AI agents: water, hazard, ground stability, resource, with proof.
Structural FEM for AI agents: frames, plates, buckling, seismic and Eurocode checks, solved locally.
Related MCP Servers
- AlicenseAqualityAmaintenancePhysBound is a specialized "Physics Linter" for AI that deterministically validates RF and thermodynamic claims against hard physical limits, preventing hallucinations in engineering workflows.637 PyPI2MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to design RF filters and SMPS-EMC from spec using three MCP servers that drive LTspice, Qucs-S, and scikit-rf, with closed-form synthesis, real-component optimization, and CISPR-aware compliance checking.4AGPL 3.0
- AlicenseBqualityCmaintenanceEnables AI agents to verify technical claims against supplied evidence, identify unsupported assumptions and contradictions, and recommend the smallest next check before acting.5MIT
- FlicenseNot gradedqualityBmaintenanceEnables AI agents to compare visual specifications and calculate physical dimensions and degrees of freedom from multimodal inputs.7-