Skip to main content
Glama
nickharris808

physics-lint-mcp

physics-lint-mcp

CI MCP Licence Tests

📖 Dokumentationsseite — die Portfolio-Erzählung, die Konzepte, ein vollständiger Durchlauf und was das alles beweist (und was nicht).

Ein Physik-Orakel, das Ihr KI-Agent nicht überreden kann.

Ein LLM hat keine Möglichkeit, eine physikalisch unmögliche S-Parameter-Matrix von einer plausiblen zu unterscheiden — beide sind nur Zahlen. Übergeben Sie einem Agenten ein erfundenes Modell, und es wird selbstbewusst darüber argumentieren, es zitieren und darauf aufbauen. Nichts in der Schleife widerspricht.

Diese MCP-Tools geben dem Agenten Grundwahrheiten aus der linearen Algebra, statt aus seinem eigenen Urteilsvermögen.

30-Sekunden-Schnellstart

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 \
            .

Die beiden Prüfer sind separate Pakete und werden aus ihren eigenen Repositories geholt; der Server ist das . am Ende. Bestätigen Sie, dass der Server über stdio antwortet, bevor Sie ihn in einen Client einbinden:

$ 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",

Noch nicht auf PyPI. pip install physics-lint-mcp ist die vorgesehene Installation, sobald veröffentlicht; bis dahin funktioniert der Drei-Pakete-Befehl oben.

Related MCP server: mcp-openems

Konfigurieren

Claude Desktop / Cursor / jeder MCP-Client:

{
  "mcpServers": {
    "physics-lint": {
      "command": "physics-lint-mcp"
    }
  }
}

Eine fertige mcp.json wird mit dem Paket geliefert.

Tools

Tool

Argumente

Was es beantwortet

check_touchstone

path (string, erforderlich)

Ist diese .sNp-Datei ein physikalisch mögliches passives Netzwerk?

check_screening

c_full (array, erforderlich), c_iso (array, erforderlich) — beide N×N

Verletzt diese Kopplungsmatrix die Obergrenze für Vielteilchen-Abschirmung?

pairwise_error

screening_factor (number, erforderlich), k in (0, 1]

Wie falsch ist ein paarweiser Extraktor bei diesem Abschirmfaktor?

self_test

keine

Unterscheidet der Prüfer weiterhin?

Die Schemas, die der Server über tools/list anbietet, sind die maßgebliche Version dieser Tabelle, und ein Test stellt sicher, dass beide übereinstimmen.

Ein durchgearbeitetes Beispiel: ein Agent, der sich selbst nicht täuschen kann

Der Fehler, den dies verhindert, ist spezifisch. Ein Agent erhält eine Hersteller-.s2p, wird gefragt, ob die Verbindung zustande kommt, und argumentiert flüssig über Zahlen, die ein Netzwerk beschreiben, das nicht existieren kann. Nichts in der Schleife widerspricht, weil ein LLM keine Möglichkeit hat, eine unmögliche S-Matrix von einer plausiblen zu unterscheiden.

Binden Sie den Server ein, und das Erste, was sich in einer Sitzung lohnt, ist, den Prüfer zu bitten, sich selbst zu beweisen:

Sie: Bevor wir uns das Modell ansehen, führen Sie self_test aus.

Agent: (ruft self_test auf) Die Batterie unterscheidet — fünf Netzwerke, die jeweils ein Gesetz verletzen, wurden alle abgelehnt.

Jetzt das Modell:

Sie: Prüfen Sie vendor/lna_stage.s2p.

Agent: (ruft check_touchstone mit path="vendor/lna_stage.s2p" auf) Dieses Netzwerk ist als passives Gerät nicht physikalisch realisierbar: Es verletzt Passivität und Energieerhaltung. Ich werde nicht aus seinen Werten argumentieren.

Dieser letzte Satz ist nicht der Agent, der vorsichtig ist — es ist das interpretation-Feld, das im Ergebnis zurückkommt, geschrieben für ein Modell zum Lesen. Ein Agent, der nur {"passed": false} erhält, macht oft weiter.

Zwei Dinge, die das Design verbietet, und beide sind wichtiger, als sie aussehen: Der Agent kann das Modell nicht reparieren, weil jedes Tool schreibgeschützt ist; und er kann einen Fehler nicht mit einem Absturz verwechseln, weil ein physikalischer Fehler als Ergebnis zurückkommt und nicht als Transportfehler. Die nächsten drei Abschnitte sind diese beiden Eigenschaften im Detail, und der dritte ist der Fall, der Sie zuerst beißen wird.

Fehlerbehebung

physics-lint-mcp: Befehl nicht gefunden — das Konsolenskript wurde nicht installiert. Überprüfen Sie pip show physics-lint-mcp; wenn es da ist, ist das bin-Verzeichnis der Umgebung nicht im PATH, was häufig vorkommt, wenn ein Client den Server mit einer anderen Shell startet. Verwenden Sie den absoluten Pfad in mcp.json: {"command": "/full/path/to/venv/bin/physics-lint-mcp"}.

Der Client zeigt den Server als fehlgeschlagenen Start an — führen Sie zuerst den stdio-Smoke-Test aus dem Schnellstart von Hand aus. Es ist derselbe Codepfad ohne die Überwachung des Clients, sodass der Traceback sichtbar ist.

No module named 'sparam_lint' — die beiden Prüfer sind separate Pakete und werden nicht automatisch mitgezogen. Installieren Sie alle drei, wie der Schnellstart zeigt.

Ein Toolaufruf gibt isError: true zurück und der Agent stoppt — das ist ein physikalisches Urteil, kein Fehler. Das Ergebnis enthält die verletzten Gesetze und eine Interpretation; Ihr Agent sollte sie lesen, statt den Aufruf als fehlgeschlagen zu behandeln.

Es kommt überhaupt nichts zurück — der Server spricht JSON-RPC über stdio, ein Objekt pro Zeile. Ein Client, der mehrere Objekte in einer Zeile bündelt oder ohne abschließenden Zeilenumbruch schreibt, hängt. Die initialize-Anfrage muss zuerst kommen.

Die Tool-Liste ist kürzer als die obige Tabelle — Sie führen eine ältere Version aus. tools/list wird aus denselben Definitionen generiert, gegen die die Tabelle getestet wird, sodass sie innerhalb einer Version nicht abweichen können.

Was der Agent sieht

Jedes Ergebnis enthält ein interpretation-Feld, das für ein Modell zum Lesen geschrieben ist, weil ein Agent auf Prosa handelt, nicht auf einem booleschen Wert:

{
  "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."
}

Dieser letzte Satz ist wichtig. Ein Agent, dem nur "Reziprozität fehlgeschlagen" gesagt wird, wird hilfreich einen einwandfreien Isolator "reparieren".

Und bei einem sauberen Ergebnis sagt die Interpretation, was das Urteil nicht bedeutet:

Alle fünf Gesetze gelten; das Netzwerk ist physikalisch zulässig. Beachten Sie, dass dies NICHT bedeutet, dass es genau ist — ein passives Modell der falschen Struktur besteht hier jedes Gesetz.

Jedes Tool ist schreibgeschützt

Nichts hier schreibt, erfindet oder repariert ein Modell. Ein Agent, der ein fehlschlagendes Netzwerk stillschweigend patchen könnte, würde den Zweck eines Orakels zunichtemachen, daher wird das Fehlen von I/O durch einen Test erzwungen.

Ein physikalischer Fehler ist ein Ergebnis, kein Fehler

Eine Datei, die die Gesetze nicht besteht, gibt ein normales Ergebnis mit isError: true und dem vollständigen Urteil zurück, statt eines Transportfehlers. Der Agent muss den Fehler sehen, um darüber zu argumentieren; ein undurchsichtiger Protokollfehler lehrt ihn nichts.

Probieren Sie es ohne Agenten aus

printf '%s\n' \
  '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}' \
  '{"jsonrpc":"2.0","id":2,"method":"tools/list"}' | physics-lint-mcp

Umfang, ehrlich

Diese Tools verifizieren physikalische Zulässigkeit, nicht Genauigkeit. Ein passives Modell einer völlig falschen Struktur besteht jede Prüfung. Sie sind eine Untergrenze, kein Ersatz für die Validierung gegen eine Feldsimulation oder Messung.

Der Rest des Werkzeugkastens

Acht Artefakte, die eine Frage an verschiedenen Orten beantworten: Ist dieses Modell physikalisch möglich? Jedes ist ein Bewerter — es kann Ihnen sagen, dass ein Modell falsch ist; keines kann Ihnen sagen, dass eines richtig ist.

sparam-lint

Ist ein S-Parameter-Modell physikalisch möglich? Fünf Gesetze + eine Negativkontrolle.

maxwell-lint

Sagt ein Kopplungsextraktor unmögliche Physik voraus? Abschirmungsgrenze k ≤ 1.

abstain-bench

Weiß ein Modell, wann es schweigen soll? Enthaltungs-Recall, nie mit Genauigkeit gepoolt.

sparam-conformance

11 beschriftete Netzwerke mit verifizierter Grundwahrheit. Bewertet die Bewerter.

screening-ceiling

Ein zertifiziertes Unmöglichkeitsergebnis + 27 Gegenbeispiele. Verifizierer ohne Abhängigkeiten.

physics-lint-action

Dieselben Prüfungen, in Ihrer CI.

physics-lint-mcp ← Sie sind hier

Ein Physik-Orakel, das Ihr KI-Agent aufrufen kann.

Probieren Sie es im Browser aus

Alle drei Prüfungen, keine Installation, läuft clientseitig.

Diese Tools bewerten ein Modell. Eines zu erzeugen, das konstruktionsbedingt passiv ist — sodass es diese Gesetze unabhängig von seinen Parametern nicht verletzen kann — und das im Vielteilchen-Regime schnell und genau ist, mit kalibrierter Enthaltung und einem Fail-Closed-Freigabezertifikat, ist der kommerzielle Kern: ChipletOS.

Lizenz

Apache-2.0. Siehe LICENSE; Urheberrecht in NOTICE.

Das Freigabezertifikat und die passiv-durch-Konstruktion-Synthese, für die diese Tools geschrieben wurden, sind der geschlossene Kern von ChipletOS.

Mitwirken

Eine nicht verhandelbare Regel hier: Jedes Tool bleibt schreibgeschützt — ein Agent, der ein fehlschlagendes Modell stillschweigend patchen könnte, würde den Zweck eines Orakels zunichtemachen. CONTRIBUTING.md enthält die Details. Jedes Schwester-Repository legt seine eigenen fest, und sie unterscheiden sich — das ist beabsichtigt, und deshalb ist jedes für sich vertrauenswürdig.

Zitieren

CITATION.cff ist maschinenlesbar; GitHub rendert daraus einen "Dieses Repository zitieren"-Button.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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
    2
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables AI-assisted design of antennas and electromagnetic structures using openEMS FDTD simulation, with analytical dimension calculators and full-wave script generation.
    16
    1
    AGPL 3.0
  • A
    license
    C
    quality
    B
    maintenance
    Enables engineers to convert antenna papers/diagrams and natural language specs into auditable, versionable HFSS Python modeling code, with optional simulation and parametric optimization.
    22
    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.
    2
    AGPL 3.0