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

Настройка

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» на его основе.

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