Skip to main content
Glama
physics-lint-mcp

physics-lint-mcp

physics-lint-mcp

CI MCP Licence Tests

📖 ドキュメントサイト — ポートフォリオのストーリー、コンセプト、完全なウォークスルー、そしてこれが証明すること(と証明しないこと)のすべて。

あなたの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 がパッケージに同梱されている。

ツール

ツール

引数

答えること

check_touchstone

path (文字列, 必須)

この .sNp ファイルは物理的に可能な受動ネットワークか?

check_screening

c_full (配列, 必須), c_iso (配列, 必須) — ともにN×N

この結合行列は多体系スクリーニングの上限を破っているか?

pairwise_error

screening_factor (数値, 必須), k ∈ (0, 1]

このスクリーニング係数でペアワイズ抽出器はどの程度間違っているか?

self_test

なし

チェッカーは依然として判別できるか?

サーバーが 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つの成果物: このモデルは物理的に可能か? それぞれが採点者である——モデルが間違っていると教えることはできるが、正しいと教えることはできない。

sparam-lint

Sパラメータモデルは物理的に可能か? 5つの法則 + ネガティブコントロール。

maxwell-lint

結合抽出器が不可能な物理を予測するか? スクリーニング上限 k ≤ 1。

abstain-bench

モデルは黙るべき時を知っているか? 棄権再現率、正確性と決してプールしない。

sparam-conformance

検証済みグラウンドトゥルースを持つ11のラベル付きネットワーク。採点者を採点する。

screening-ceiling

認定された不可能性の結果 + 27の反例。ゼロ依存の検証器。

physics-lint-action

同じチェックをCIで。

physics-lint-mcp ← あなたはここ

AIエージェントが呼び出せる物理オラクル。

ブラウザで試す

3つのチェックすべて、インストール不要、クライアントサイドで実行。

これらのツールはモデルを採点する。構造的に受動的——つまりパラメータが何であれこれらの法則に失敗できない——かつ多体系領域で高速に正確で、較正された棄権とフェイルクローズの署名証明書を備えたモデルを生成することが、商業の中核である: ChipletOS。

ライセンス

Apache-2.0。LICENSE を参照。著作権は NOTICE に記載。

これらのツールと並行して書かれた署名証明書と受動的構造合成は、ChipletOS のクローズドコアである。

貢献

ここでの絶対的なルールは1つ: すべてのツールは読み取り専用のままである——失敗しているモデルを黙ってパッチできるエージェントは、オラクルを持つ意味を無意味にするだろう。CONTRIBUTING.md に詳細がある。各兄弟リポジトリは独自のルールを定めており、それらは異なる——それは意図的であり、それぞれが独自の条件で信頼できる理由である。

引用

CITATION.cff は機械可読であり、GitHubはそこから「このリポジトリを引用」ボタンをレンダリングする。

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    PhysBound is a specialized "Physics Linter" for AI that deterministically validates RF and thermodynamic claims against hard physical limits, preventing hallucinations in engineering workflows.
    6
    37 PyPI
    2
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables 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.
    4
    AGPL 3.0
  • A
    license
    B
    quality
    C
    maintenance
    Enables AI agents to verify technical claims against supplied evidence, identify unsupported assumptions and contradictions, and recommend the smallest next check before acting.
    5
    MIT