physics-lint-mcp
physics-lint-mcp
📖 Сайт документации — повествование о портфолио, концепции, полное прохождение и что всё это доказывает (а что нет).
Физический оракул, мимо которого ваш ИИ-агент не сможет обойтись разговорами.
У 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 поставляется с пакетом.
Инструменты
Инструмент | Аргументы | Что он отвечает |
|
| Является ли этот файл |
|
| Нарушает ли эта матрица связи потолок многочастичного экранирования? |
|
| Насколько ошибочен попарный экстрактор при этом коэффициенте экранирования? |
| нет | Продолжает ли проверяющий различать? |
Схемы, которые сервер рекламирует через 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Область применения, честно
Эти инструменты проверяют физическую допустимость, а не точность. Пассивная модель совершенно неправильной структуры проходит все проверки. Это нижняя граница, а не замена проверки на полевом решении или измерении.
Остальная часть набора инструментов
Восемь артефактов, отвечающих на один вопрос в разных местах: возможна ли эта модель физически? Каждый из них — оценщик: он может сказать вам, что модель неверна; ни один не может сказать, что она верна.
Возможна ли S-параметрическая модель физически? Пять законов + отрицательный контроль. | |
Предсказывает ли экстрактор связи невозможную физику? Потолок экранирования k ≤ 1. | |
Знает ли модель, когда замолчать? Полнота воздержания, никогда не объединяется с точностью. | |
11 размеченных сетей с проверенной истиной. Оценивает оценщиков. | |
Сертифицированный результат невозможности + 27 контрпримеров. Проверяющий без зависимостей. | |
Те же проверки в вашем CI. | |
| Физический оракул, который может вызывать ваш ИИ-агент. |
Все три проверки, без установки, работает на стороне клиента. |
Эти инструменты оценивают модель. Создание модели, которая является пассивной по построению — так что она не может провалить эти законы независимо от своих параметров — и точной на скорости в многочастичном режиме, с калиброванным воздержанием и сертификатом подписания с закрытием при сбое, является коммерческим ядром: ChipletOS.
Лицензия
Apache-2.0. См. LICENSE; авторские права в NOTICE.
Сертификат подписания и синтез пассивности по построению, вместе с которыми были написаны эти инструменты, являются закрытым ядром ChipletOS.
Вклад
Одно не подлежащее обсуждению правило здесь: каждый инструмент остаётся доступным только для чтения — агент, который мог бы молча исправить неисправную модель, победил бы цель наличия оракула. В CONTRIBUTING.md есть подробности. Каждый родственный репозиторий заявляет своё собственное, и они различаются — это намеренно, и именно поэтому каждый заслуживает доверия на своих условиях.
Цитирование
CITATION.cff машиночитаем; GitHub отображает кнопку «Cite this repository» на его основе.
This server cannot be deployed
Maintenance
Related MCP Connectors
A physics verifier for Super Intelligence. Every answer comes with a cryptographic proof.
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.
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.631 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-