Используйте этот справочник, чтобы составить запрос к инструменту Лиспекса и прочитать ответ. Здесь также описано, как вызывающее приложение управляет доступом к инструментам и внешними действиями.
Сначала установите исполняемый файл Native и выполните
настройку подключения.
Команда lispex mcp serve обменивается сообщениями JSON через локальный стандартный ввод и вывод.
Сервер предоставляет протокол MCP версии 2025-11-25.
Клиент инициализирует соединение, прежде чем получать список инструментов или вызывать их.
Запрос и ответ
Чтобы узнать причину ошибки чтения, вызовите lispex_diagnostic с аргументом {"code": "E100"}.
Ниже показан полный запрос JSON-RPC после инициализации соединения.
Клиент выбирает id, чтобы сопоставить ответ с запросом.
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "lispex_diagnostic",
"arguments": {
"code": "E100"
}
}
}Ответ использует тот же id.
В result.structuredContent.result входят следующие поля, показанные здесь в сокращении.
{
"known": true,
"code": "E100",
"severity": "error",
"phase": "reader",
"family": "illegal-token-or-structure",
"exit_status": 1,
"raising_condition": "The reader cannot form one admitted datum."
}Это означает, что при чтении не удалось разобрать одно допустимое значение данных.
Здесь exit_status: 1 описывает найденную ошибку, а не завершение сервера.
Поиск выполнен успешно, файл результата не создан, соединение остаётся открытым.
Аргументы инструментов
Аргументы передаются как объекты JSON. Лишние поля аргументов отклоняются.
| Инструмент | Аргументы | Результат |
|---|---|---|
lispex_reference | Необязательный topic; для точного name требуется topic | Записи об установленной версии языка |
lispex_eval | Обязательный source; необязательный input | Значения, вывод, предупреждения и диагностика интерпретатора Лиспекса |
lispex_diagnostic | Обязательный code: буква E или W и три цифры | Запись каталога и причина либо known: false |
lispex_compare_routes | Обязательные court и source; необязательный input | Сравниваемые результаты, расход ресурсов и идентификаторы продуктов |
source — строка с полным исходником в UTF-8.
input — строка с одним значением данных Лиспекса, например "41".
Программа получает это значение под именем input.
Для lispex_reference доступны следующие темы.
topic | Содержимое |
|---|---|
forms | Формы языка и их структура |
procedures | Встроенные процедуры и их аргументы |
reader | Допустимые записи исходника, включая комментарии |
resources | Профили ресурсов |
routes | Способы выполнения |
Пустой объект аргументов возвращает список тем.
Тема без имени возвращает список её записей.
Неизвестное имя возвращает known: false.
Например, ответ на {"topic": "procedures", "name": "eval"} содержит disposition: "absent".
Чтение результата вычисления
Ответ инструмента содержит JSON-результат в structuredContent и его текстовую копию в content.
Полный пример вычисления приведён в руководстве по подключению.
Поле в structuredContent | Значение |
|---|---|
schema | lispex.mcp-eval-result/v1, версия этого формата результата |
status | Исход вычисления, например ok или runtime-error |
values | Возвращённые значения в текстовой записи Лиспекса |
stdout | Перехваченный вывод, включая напечатанные значения верхнего уровня |
diagnostics, warnings | Ошибки и предупреждения для проверки |
exit_status | Статус вычисления, отдельный от состояния процесса сервера |
source_sha256, input_sha256 | Идентификаторы исходника и ввода запроса |
resource_profile | Лимиты и результат их применения |
source_retained | false; сервер освобождает исходник запроса после вызова |
vouch_authority | false; аутентификация и допуск выполняются отдельно через Ваучер |
Например, {"source": "(car)"} возвращает status: "runtime-error",
диагностику E302 и exit_status: 1.
Запрос {"code": "E302"} объясняет, что при вызове передано неверное число аргументов.
Выбор сравнения
Аргумент court выбирает один фиксированный набор реализаций.
court | Продукты |
|---|---|
tree-rust | Встроенный интерпретатор Лиспекса и ВМ Лиспекса |
Виртуальная машина выполняет скомпилированные инструкции.
Сервер использует одинаковые исходник, ввод и запрошенные условия расхода ресурсов. Он записывает идентификатор Core IR — промежуточного представления с разрешёнными ссылками имён. В запись также входит идентификатор скомпилированного байткода.
Запись каждой реализации в observations содержит результаты в semantic
и сведения о ресурсах в resources. Идентификаторы продуктов находятся в products.
| Поле результата | Как его читать |
|---|---|
required_routes | Полный выбранный набор способов выполнения |
status, comparison_completed | Завершилось ли сравнение |
agreement | Совпадают ли результаты и наблюдения за ресурсами согласно правилам сравнения |
mismatch_axes, resource_mismatch_axes | Какие сравниваемые свойства различаются |
partial_comparison | false; отсутствие нужного продукта останавливает выбранное сравнение |
answer_selected | false; при расхождении изучите записанные результаты |
Другие значения court
Базовый сервер предоставляет tree-rust.
В схеме инструмента также есть rust-topaz и all-four.
Они работают только с дополнительными продуктами Топаза, указанными при запуске сервера.
Без этих продуктов инструмент возвращает status: "unavailable",
например missing_prerequisites: ["topaz-vm"] и attempted_routes: [].
Профиль ресурсов
Используйте инструменты при написании программ с проверенным исходником.
Идентификатор профиля — lispex-mcp-local-authoring/v1.
| Ресурс | Лимит |
|---|---|
| Исходник на запрос | 65 536 байт |
| Ввод на запрос | 16 384 байта |
| Результат вычисления | 1 МиБ |
| Время вычисления | 5 секунд |
| Результат сравнения | 4 МиБ |
Сервер сообщает о превышении времени, отмене, некорректном вводе и отсутствии нужных продуктов. Результаты сравнения также сообщают об ошибках сборки, очистки и завершения процессов. Прежде чем считать вычисление завершённым, прочитайте его статус. Для правил приложения от недоверенных пользователей используйте вычислитель с управлением ресурсами.
Данные и разрешения
Исходник и необязательный ввод поступают на локальный сервер через stdio. Рабочий процесс хранит данные запроса в памяти и освобождает их по завершении запроса. Результаты содержат идентификаторы исходника, вычисленные значения, вывод, наблюдения за ресурсами и диагностику. К тексту, введённому в ассистент, применяется политика этого приложения.
Вызывающее приложение управляет доступом к инструментам и разрешениями для внешних действий. Возвращённое значение правила — данные, которые приложение может использовать при принятии решения. Ваучер Лиспекса добавляет аутентификацию издателя, привязку к точному запросу и повторное выполнение. Принимающее приложение применяет свои правила допуска и решает, выполнять ли внешнее действие.
Руководство по подключению · Интерпретатор и ВМ Лиспекса · Каталог диагностики