Песочница

Справочник инструментов MCP

Аргументы инструментов MCP, поля ответов, настройки сравнений и лимиты ресурсов.

Используйте этот справочник, чтобы составить запрос к инструменту Лиспекса и прочитать ответ. Здесь также описано, как вызывающее приложение управляет доступом к инструментам и внешними действиями.

Сначала установите исполняемый файл Native и выполните настройку подключения. Команда lispex mcp serve обменивается сообщениями JSON через локальный стандартный ввод и вывод. Сервер предоставляет протокол MCP версии 2025-11-25. Клиент инициализирует соединение, прежде чем получать список инструментов или вызывать их.

Запрос и ответ

Чтобы узнать причину ошибки чтения, вызовите lispex_diagnostic с аргументом {"code": "E100"}. Ниже показан полный запрос JSON-RPC после инициализации соединения. Клиент выбирает id, чтобы сопоставить ответ с запросом.

JSON
{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "lispex_diagnostic",
    "arguments": {
      "code": "E100"
    }
  }
}

Ответ использует тот же id. В result.structuredContent.result входят следующие поля, показанные здесь в сокращении.

JSON
{
  "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Значение
schemalispex.mcp-eval-result/v1, версия этого формата результата
statusИсход вычисления, например ok или runtime-error
valuesВозвращённые значения в текстовой записи Лиспекса
stdoutПерехваченный вывод, включая напечатанные значения верхнего уровня
diagnostics, warningsОшибки и предупреждения для проверки
exit_statusСтатус вычисления, отдельный от состояния процесса сервера
source_sha256, input_sha256Идентификаторы исходника и ввода запроса
resource_profileЛимиты и результат их применения
source_retainedfalse; сервер освобождает исходник запроса после вызова
vouch_authorityfalse; аутентификация и допуск выполняются отдельно через Ваучер

Например, {"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_comparisonfalse; отсутствие нужного продукта останавливает выбранное сравнение
answer_selectedfalse; при расхождении изучите записанные результаты

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

Вызывающее приложение управляет доступом к инструментам и разрешениями для внешних действий. Возвращённое значение правила — данные, которые приложение может использовать при принятии решения. Ваучер Лиспекса добавляет аутентификацию издателя, привязку к точному запросу и повторное выполнение. Принимающее приложение применяет свои правила допуска и решает, выполнять ли внешнее действие.

Руководство по подключению · Интерпретатор и ВМ Лиспекса · Каталог диагностики