Skip to main content
Glama
nickharris808

physics-lint-mcp

physics-lint-mcp

CI MCP Licence Tests

📖 Сайт документации — повествование о портфолио, концепции, полное прохождение и что всё это доказывает (а что нет).

Физический оракул, мимо которого ваш ИИ-агент не сможет обойтись разговорами.

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

Два проверяющих являются отдельными пакетами и загружаются из своих собственных репозиториев; сервер — это . в конце. Подтвердите, что сервер отвечает через 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 — это предполагаемая установка после публикации; до тех пор работает команда из трёх пакетов, приведённая выше.

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) Батарея различает — пять сетей, построенных для нарушения одного закона каждая, были отклонены.

Теперь модель:

Вы: Проверьте vendor/lna_stage.s2p.

Агент: (вызывает check_touchstone с path="vendor/lna_stage.s2p") Эта сеть физически не реализуема как пассивное устройство: она не проходит пассивность и сохранение энергии. Я не буду рассуждать на основе её значений.

Это последнее предложение — не осторожность агента; это поле interpretation, возвращаемое в результате, написанное для чтения моделью. Агент, получивший только {"passed": false}, часто продолжает действовать.

Две вещи, которые дизайн запрещает, и обе важнее, чем кажутся: агент не может исправить модель, потому что каждый инструмент доступен только для чтения; и он не может принять сбой за ошибку, потому что физический сбой возвращается как результат, а не как транспортная ошибка. Следующие три раздела — это эти два свойства в деталях, а третий — случай, который ударит вас первым.

Устранение неполадок

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' — два проверяющих являются отдельными пакетами и не подтягиваются автоматически. Установите все три, как показано в быстром старте.

Вызов инструмента возвращает isError: true, и агент останавливается — это физический вердикт, а не сбой. Результат содержит нарушенные законы и интерпретацию; ваш агент должен их прочитать, а не считать вызов неудачным.

Вообще ничего не возвращается — сервер говорит на JSON-RPC через stdio, по одному объекту в строке. Клиент, который объединяет несколько объектов в одну строку или пишет без завершающего перевода строки, зависнет. Запрос initialize должен идти первым.

Список инструментов короче, чем таблица выше — вы используете более старую сборку. tools/list генерируется из тех же определений, против которых тестируется таблица, поэтому они не могут расходиться в пределах одной версии.

Что видит агент

Каждый результат содержит поле 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."
}

Это последнее предложение важно. Агент, которому сказали только «взаимность не выполнена», с готовностью «исправит» вполне хороший изолятор.

И в чистом результате интерпретация говорит, что вердикт не означает:

Все пять законов выполняются; сеть физически допустима. Обратите внимание, что это НЕ означает, что она точна — пассивная модель неправильной структуры проходит все законы здесь.

Каждый инструмент доступен только для чтения

Здесь ничто не записывает, не фабрикует и не исправляет модель. Агент, который мог бы молча исправить неисправную сеть, победил бы цель наличия оракула, поэтому отсутствие ввода-вывода обеспечивается тестом.

Физический сбой — это результат, а не ошибка

Файл, не прошедший законы, возвращает обычный результат с isError: true и полным вердиктом, а не ошибку транспортного уровня. Агенту нужно увидеть сбой, чтобы рассуждать о нём; непрозрачная ошибка протокола ничему его не учит.

Попробуйте без агента

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

Область применения, честно

Эти инструменты проверяют физическую допустимость, а не точность. Пассивная модель совершенно неправильной структуры проходит все проверки. Это нижняя граница, а не замена проверки на полевом решении или измерении.

Остальная часть набора инструментов

Восемь артефактов, отвечающих на один вопрос в разных местах: возможна ли эта модель физически? Каждый из них — оценщик: он может сказать вам, что модель неверна; ни один не может сказать, что она верна.

sparam-lint

Возможна ли S-параметрическая модель физически? Пять законов + отрицательный контроль.

maxwell-lint

Предсказывает ли экстрактор связи невозможную физику? Потолок экранирования k ≤ 1.

abstain-bench

Знает ли модель, когда замолчать? Полнота воздержания, никогда не объединяется с точностью.

sparam-conformance

11 размеченных сетей с проверенной истиной. Оценивает оценщиков.

screening-ceiling

Сертифицированный результат невозможности + 27 контрпримеров. Проверяющий без зависимостей.

physics-lint-action

Те же проверки в вашем CI.

physics-lint-mcp ← вы здесь

Физический оракул, который может вызывать ваш ИИ-агент.

Попробуйте в браузере

Все три проверки, без установки, работает на стороне клиента.

Эти инструменты оценивают модель. Создание модели, которая является пассивной по построению — так что она не может провалить эти законы независимо от своих параметров — и точной на скорости в многочастичном режиме, с калиброванным воздержанием и сертификатом подписания с закрытием при сбое, является коммерческим ядром: ChipletOS.

Лицензия

Apache-2.0. См. LICENSE; авторские права в NOTICE.

Сертификат подписания и синтез пассивности по построению, вместе с которыми были написаны эти инструменты, являются закрытым ядром ChipletOS.

Вклад

Одно не подлежащее обсуждению правило здесь: каждый инструмент остаётся доступным только для чтения — агент, который мог бы молча исправить неисправную модель, победил бы цель наличия оракула. В CONTRIBUTING.md есть подробности. Каждый родственный репозиторий заявляет своё собственное, и они различаются — это намеренно, и именно поэтому каждый заслуживает доверия на своих условиях.

Цитирование

CITATION.cff машиночитаем; GitHub отображает кнопку «Cite this repository» на его основе.

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
    31 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