Qurak

MCP-сервер

Подключите Claude, Cursor, VS Code или любой MCP-клиент к движку Qurak.

Что подключение даёт вашему ассистенту

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

Подключение говорит вашему агенту правду о себе ещё до того, как потрачены вычисления: check_support отвечает, существует ли функция, get_capabilities сообщает действительно действующие лимиты, а plan_computation превращает цель в рабочий метод с приложенными проверенными рецептами. Агент продолжает пользоваться инструментом, который заранее говорит, чего он не умеет.

Он открыт на каждом тарифе, включая бесплатный, и всё подключение — это один URL. Платный тариф покупает бюджет вычислений и частоту — но никогда не доступ.

Создание токена   Войти

Эндпоинты

URLТранспортНазначение
https://qurak.com/mcpStreamable HTTPПредпочтительный. Используйте его, если только ваш клиент не может иначе.
https://qurak.com/mcp/sseHTTP+SSE (2024-11-05)Устаревший, только для старых клиентов.

Транспорт не имеет состояния: он не выдаёт протокольный идентификатор сессии, поэтому GET и DELETE на /mcp отвечает 405 намеренно. Это не то же самое, что необязательный session_id у вычисляющих инструментов — см. Инструменты — это аргумент инструмента, который выбираете вы, а не что-то, что выдаёт транспорт.

Два способа входа

Большинство клиентов делают это за вас. Выберите свой клиент ниже и следуйте тому пути, который он показывает, — оба не нужны.

СпособКак работаетКогда использовать
OAuthКлиент открывает браузер, вы входите в Qurak и одобряете запрос. Учётные данные никогда не копируются вручную.Ваш клиент просит только URL — в Claude Desktop и claude.ai токен вставить некуда.
Bearer-токенВы создаёте токен и помещаете его в заголовок Authorization в конфигурации клиента.Ваш клиент поддерживает заголовки, и вам нужны постоянные учётные данные — удобно для CI или общей машины.

Что запрашивает OAuth

СкоупДаёт
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-сервер и молча пропускается.

.mcp.json
{
  "mcpServers": {
    "qurak": {
      "type": "http",
      "url": "https://qurak.com/mcp",
      "headers": { "Authorization": "Bearer qk_..." }
    }
  }
}

Опустите флаг <code>--header</code>, чтобы использовать OAuth: при первом подключении Claude Code откроет браузер.

  1. Откройте Settings, затем Connectors.
  2. Выберите Add custom connector.
  3. Вставьте <code>https://qurak.com/mcp</code> и подтвердите.
  4. Откроется окно браузера. Войдите в Qurak и одобрите запрос.

Этот путь по необходимости только через OAuth — поля для токена нет. Те же шаги подходят для коннекторов claude.ai.

  1. Откройте Settings, затем MCP.
  2. Добавьте сервер с URL <code>https://qurak.com/mcp</code>.
  3. Подтвердите запрос в браузере.

Cursor предпочитает OAuth, как только сервер публикует метаданные обнаружения, — а этот публикует, — поэтому блок <code>headers</code> в его конфигурации, скорее всего, будет проигнорирован. Ожидайте браузерный поток и дайте ему пройти.

Ключ — <code>servers</code>, а не <code>mcpServers</code>.

.vscode/mcp.json
{
  "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>.

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