Подключите Claude, Cursor, VS Code или любой MCP-клиент к движку Qurak.
Ассистент, который угадывает арифметику, ошибается ровно настолько часто, чтобы это имело значение. Подключённый сюда, он передаёт математику настоящему движку и возвращает вычисленный ответ вместо правдоподобного — анализ, дифференциальные уравнения, алгебра, статистика, графики.
Подключение говорит вашему агенту правду о себе ещё до того, как потрачены вычисления: check_support отвечает, существует ли функция, get_capabilities сообщает действительно действующие лимиты, а plan_computation превращает цель в рабочий метод с приложенными проверенными рецептами. Агент продолжает пользоваться инструментом, который заранее говорит, чего он не умеет.
Он открыт на каждом тарифе, включая бесплатный, и всё подключение — это один URL. Платный тариф покупает бюджет вычислений и частоту — но никогда не доступ.
| URL | Транспорт | Назначение |
|---|---|---|
| https://qurak.com/mcp | Streamable HTTP | Предпочтительный. Используйте его, если только ваш клиент не может иначе. |
| https://qurak.com/mcp/sse | HTTP+SSE (2024-11-05) | Устаревший, только для старых клиентов. |
Транспорт не имеет состояния: он не выдаёт протокольный идентификатор сессии, поэтому GET и DELETE на /mcp отвечает 405 намеренно. Это не то же самое, что необязательный session_id у вычисляющих инструментов — см. Инструменты — это аргумент инструмента, который выбираете вы, а не что-то, что выдаёт транспорт.
Большинство клиентов делают это за вас. Выберите свой клиент ниже и следуйте тому пути, который он показывает, — оба не нужны.
| Способ | Как работает | Когда использовать |
|---|---|---|
| OAuth | Клиент открывает браузер, вы входите в Qurak и одобряете запрос. Учётные данные никогда не копируются вручную. | Ваш клиент просит только URL — в Claude Desktop и claude.ai токен вставить некуда. |
| Bearer-токен | Вы создаёте токен и помещаете его в заголовок Authorization в конфигурации клиента. | Ваш клиент поддерживает заголовки, и вам нужны постоянные учётные данные — удобно для CI или общей машины. |
| Скоуп | Даёт |
|---|---|
| qurak:evaluate | Выполнение выражений и построение графиков в вашем аккаунте. Расходует бюджет вычислений и лимит частоты вашего тарифа. |
| qurak:docs | Чтение справочника функций. Не тратит вычисления, поэтому подключение только к документации безопасно выдавать широко. |
Под капотом это стандартный поток OAuth 2.1 с PKCE, обнаруживаемый по адресу /.well-known/oauth-protected-resource и /.well-known/oauth-authorization-server (также отвечает по /.well-known/openid-configuration, который некоторые клиенты пробуют первым). Клиент может представиться тремя способами — client ID metadata document, динамической регистрацией или парой client ID и secret, которую вы регистрируете ниже, — и клиенты, поддерживающие любой из них, найдут его сами.
claude mcp add --transport http qurak https://qurak.com/mcp \
--header "Authorization: Bearer qk_..."<code>type</code> обязателен. Запись с <code>url</code> без <code>type</code> читается как stdio-сервер и молча пропускается.
{
"mcpServers": {
"qurak": {
"type": "http",
"url": "https://qurak.com/mcp",
"headers": { "Authorization": "Bearer qk_..." }
}
}
}Опустите флаг <code>--header</code>, чтобы использовать OAuth: при первом подключении Claude Code откроет браузер.
Этот путь по необходимости только через OAuth — поля для токена нет. Те же шаги подходят для коннекторов claude.ai.
Cursor предпочитает OAuth, как только сервер публикует метаданные обнаружения, — а этот публикует, — поэтому блок <code>headers</code> в его конфигурации, скорее всего, будет проигнорирован. Ожидайте браузерный поток и дайте ему пройти.
Ключ — <code>servers</code>, а не <code>mcpServers</code>.
{
"servers": {
"qurak": {
"type": "http",
"url": "https://qurak.com/mcp",
"headers": { "Authorization": "Bearer ${input:qurak-token}" }
}
},
"inputs": [
{ "id": "qurak-token", "type": "promptString",
"description": "Qurak Bearer token", "password": true }
]
}Использование <code>inputs</code> держит токен вне файла, так что конфигурацию можно безопасно коммитить.
Если ваш клиент говорит только на старом транспорте HTTP+SSE, укажите ему <code>https://qurak.com/mcp/sse</code>.
https://qurak.com/mcp| Инструмент | Что делает | Скоуп |
|---|---|---|
| evaluate | Вычислить выражение Qurak (синтаксис, совместимый с .wl). Возвращает отформатированный результат и затраченное время. Необязательный session_id, format (Standard, TeX, JSON) и timeout_ms. | qurak:evaluate |
| plot | Выполнить выражение построения графика и вернуть диаграмму как PNG-изображение. Принимает те же session_id и timeout_ms. | qurak:evaluate |
| clear_session | Уничтожить сессию вычислений и всё, что в ней определено. | qurak:evaluate |
| search_docs | Искать в справочник функций по имени или описанию, а заодно и в рецептах задач. Необязательный kind (function, task, any); каждый результат указывает, что он такое. | qurak:docs |
| get_task | Один рецепт задачи целиком: его шаги по порядку и вывод каждого при проверке на этом движке. Шаги выполняются последовательно в одной сессии. | qurak:docs |
| get_symbol | Всё известное об одном символе: доступность, формы, опции, примеры. | qurak:docs |
| check_support | Проверить, доступны ли конкретные функции, прежде чем их использовать. | qurak:docs |
| plan_computation | Сверяет цель с реальностью до вычислений: вердикты о поддержке каждой функции в черновике выражения, ближайшие проверенные рецепты и рекомендация, каким путём считать, — в числах бюджета именно этого подключения. Не тратит вычисления. | qurak:docs |
| evaluate_async | Отправляет выражение как фоновое задание с бюджетом в минуты, зависящим от тарифа, — для работы, которая не помещается в интерактивный бюджет. Сразу возвращает id задания; задания — это дневная квота. | qurak:evaluate |
| get_job list_jobs cancel_job | Статус задания и, когда оно завершено, его полный результат (передайте wait_ms — и один вызов ждёт в длинном опросе вместо десятков частых); недавние задания аккаунта; отмена. Опрос бесплатен. | qurak:evaluate |
| simulate_circuit | Симулирует квантовую схему — идеальный вектор состояния, стандартный набор гейтов — и возвращает её гистограмму измерений. Выполняется как фоновое задание, с потолком кубитов по тарифу. | qurak:evaluate |
| save_guide get_guide list_guides delete_guide | Долговременные заметки в аккаунте: сохраните определения и допущения рабочей модели под именем и прочитайте их в следующем разговоре. Для чтения нужен скоуп docs, для записи — evaluate. | qurak:docs qurak:evaluate |
| get_capabilities | Действующие лимиты этого подключения в числах: потолок бюджета вычислений, минутная квота и её остаток, максимальный сохраняемый график, выданные скоупы, границы сессий. Без аргументов. | любой |
| WolframLanguageEvaluator | Устаревший псевдоним для evaluate, сохранённый для клиентов, ожидающих имя инструмента AgentTools. Те же аргументы, то же поведение. | qurak:evaluate |
evaluate и plot не имеют состояния, если не передать session_id. С ним определения переносятся: a = 10 в одном вызове, затем a + 5 в следующем с тем же id даёт 15. Сессии приватны для вашего аккаунта, поэтому два аккаунта с одинаковым id никогда не видят переменные друг друга. Они закрываются после 30 минут простоя, когда вычисление в них превышает лимит времени (движок нельзя прервать, поэтому сессия уходит вместе с ним) или когда вы вызываете clear_session.
Бюджет вычислений и лимит частоты определяются вашим тарифом — смотрите Тарифыили вызовите get_capabilities из самого подключения, чтобы узнать действующие числа. Превышение любого из них возвращается как результат инструмента с установленным isError — это не ошибка транспорта, поэтому ваш агент может прочитать сообщение и скорректироваться. То же касается синтаксической ошибки, тайм-аута или сбоя внутри движка: это ответы, и подключение остаётся открытым.
check_support сообщает, что доступно, не тратя вычисление. timeout_ms позволяет вызову запросить бюджет меньше тарифного — удобно, чтобы быстро завершать выражение, которое должно быть дешёвым. Он ограничивается бюджетом самого тарифа, так что купить больше времени, чем у вас есть, нельзя. Файловые, процессные и сетевые функции заблокированы.