Результат: вы направите на этот язык ассистента, который умеет получить URL или запускать инструменты.
Что нужно знать: для первого раздела ничего. Серверу MCP нужен инструментарий, установленный так, как описано в разделе Первая программа.
Начните с одного запроса
Для ассистента, который может получить URL, но не имеет настроенных инструментов, самый доступный общий интерфейс — один самодостаточный файл.
https://topaz.ooo/agents.mdВ нём есть строение файла, формы, граница хоста и профиля продукта, а также особенно важный для модели, уже знающей другие языки, перечень несуществующих форм. Он предостерегает от Vec<T>, async, try, синтаксиса классов и использования null как универсального отсутствия, сохраняя при этом поддерживаемую форму границы данных T | null. Такие явные различия не дают уверенной догадке превратиться в неверный исходный код.
Рядом с ним есть ещё две машинные поверхности. https://topaz.ooo/llms.txt содержит указатель всех актуальных страниц, а https://topaz.ooo/version.json сообщает, какая версия отвечает.
Если вы настраиваете ассистента для кого-то другого, выдать ему этот один URL и есть вся настройка.
Какую задачу решают инструменты
Загрузка файла приводит ассистента к правильным формам. Она не говорит, компилируется ли на самом деле программа, которую он только что написал.
Ассистент, пишущий на незнакомом языке, делает одно из двух. Либо читает документацию и угадывает, либо пишет, получает точное указание на ошибку и исправляет её. Второй цикл даёт работающий код даже при скудной документации. Первый даёт уверенный текст, который не компилируется. Один только справочник оставляет ассистента в первом цикле. Проверяющий инструмент переводит его во второй.
Четыре инструмента
| Инструмент | На какой вопрос отвечает |
|---|---|
topaz_spec | Какова точная форма для этой части языка? |
topaz_examples | Покажи проверенный код для этого понятия. |
topaz_check | Правильно ли то, что я только что написал, и если нет, то где именно? |
topaz_run | Что оно на самом деле печатает? |
Именно topaz_check задуман как инструмент, меняющий результат. Планируемый сервер возвращает собственную диагностику компилятора, её код и позицию в исходном коде без изменений. Ассистент сможет исправлять результат по точным данным, а не по пересказу.
Что необходимо изолировать при выполнении
Топаз направляет наблюдаемые эффекты через границу хоста или профиля продукта. Это упрощает создание хоста без возможностей, но не превращает обычный нативный CLI в песочницу: нативное выполнение может предоставлять файловые операции и ввод-вывод.
Поэтому планируемый topaz_run обязан иметь два независимых барьера. Он использует проверенный хост Топаза без возможностей и запускается в песочнице операционной системы, которая запрещает сеть и дочерние процессы и открывает только временный присланный исходник. Обычный неограниченный topaz run не подходит в качестве серверной границы.
Изоляция сама по себе не ограничивает ресурсы. Присланная программа может крутиться, выделять память или печатать без конца, поэтому каждому запуску нужны пределы реального времени, памяти и вывода, а после него не должно оставаться дочерних процессов.
Проект также требует не сохранять и не журналировать присланный исходный код и не оставлять состояние между вызовами. Это условия приёмки реализации, а не утверждение о уже существующем сервере.
Дескриптор для машинного чтения
Клиенты и поисковые роботы могут прочитать описание сервера напрямую.
https://topaz.ooo/mcp.jsonТам в структурированном виде перечислены планируемые инструменты, их входные данные, версия языка и обязательные границы безопасности. После выпуска список инструментов сервера должен совпадать с дескриптором. Дескриптор, расходящийся со своим сервером, хуже, чем его отсутствие.
Текущее состояние
Дескриптор опубликован со значением "status": "planned", а сам сервер пока не поставлен. Для выпуска упакованный сервер должен пройти проверки изоляции и ограничений ресурсов, а также проверку удобства: ассистент без прежнего знакомства с языком, получив только сервер, со второй попытки проверяет и запускает небольшую программу. После этого статус изменится, а на странице появится блок настройки клиента.
Готовы двигаться дальше, если
Вы можете сказать, на какой вопрос отвечает каждый из четырёх планируемых инструментов, и объяснить, почему для выполнения нужны и граница хоста языка, и независимая изоляция операционной системы и ресурсов.
О том, до чего программа может и не может дотянуться, читайте в разделе Границы интеграции. Формы, которые будет искать ассистент, собраны в разделе Краткий обзор синтаксиса.