Qurak

Servidor MCP

Conecta Claude, Cursor, VS Code o cualquier cliente MCP al motor Qurak.

Lo que conectarse le compra a tu asistente

Un asistente que adivina la aritmética se equivoca justo lo suficiente como para importar. Conectado aquí, le entrega la matemática a un motor real y devuelve una respuesta calculada en lugar de una plausible — cálculo, ecuaciones diferenciales, álgebra, estadística, gráficos.

La conexión le dice a tu agente la verdad sobre sí misma antes de gastar cómputo: check_support responde si una función existe, get_capabilities informa los límites realmente vigentes, y plan_computation convierte un objetivo en un método que funciona, con recetas verificadas adjuntas. Un agente sigue llamando a una herramienta que dice por adelantado lo que no puede hacer.

Está abierta en todos los planes, incluido el gratuito, y toda la conexión es una sola URL. Lo que compra un plan pago es presupuesto de cómputo y tasa — nunca el acceso.

Crear un token   Entrar

Endpoints

URLTransporteUso
https://qurak.com/mcpStreamable HTTPPreferido. Úsalo salvo que tu cliente no pueda.
https://qurak.com/mcp/sseHTTP+SSE (2024-11-05)Obsoleto, solo para clientes antiguos.

El transporte no tiene estado: no emite ningún id de sesión de protocolo, así que GET y DELETE en /mcp responden 405 por diseño. Eso es distinto del session_id opcional que aceptan las herramientas de evaluación — ve Herramientas — que es un argumento de herramienta que eliges tú, no algo que el transporte reparte.

Dos formas de iniciar sesión

La mayoría de los clientes se encargan de esto por ti. Elige tu cliente abajo y sigue el único camino que muestra — no necesitas ambos.

MétodoCómo funcionaÚsalo cuando
OAuthEl cliente abre tu navegador, inicias sesión en Qurak y apruebas la solicitud. Ninguna credencial se copia nunca a mano.Tu cliente solo pide una URL — Claude Desktop y claude.ai no tienen dónde poner un token.
Token BearerCreas un token y lo pones en una cabecera Authorization en la configuración del cliente.Tu cliente admite cabeceras y quieres una credencial fija — útil para CI o una máquina compartida.

Lo que OAuth pide

AlcanceOtorga
qurak:evaluateEjecutar expresiones y producir gráficos en tu cuenta. Gasta el presupuesto de cómputo y el límite de tasa de tu plan.
qurak:docsLeer la referencia de funciones. No gasta cómputo, así que una conexión de solo documentación es segura de otorgar ampliamente.

Por debajo, esto es un flujo OAuth 2.1 estándar con PKCE, descubrible en /.well-known/oauth-protected-resource y /.well-known/oauth-authorization-server (también servido bajo /.well-known/openid-configuration, que algunos clientes prueban primero). Un cliente puede identificarse de tres maneras — un client ID metadata document, registro dinámico, o un client ID y secret que registras abajo — y los clientes que admitan cualquiera de ellas lo encontrarán por su cuenta.

Configuración del cliente

Línea de comandos
claude mcp add --transport http qurak https://qurak.com/mcp \
  --header "Authorization: Bearer qk_..."

<code>type</code> es obligatorio. Una entrada con un <code>url</code> y sin <code>type</code> se lee como un servidor stdio y se omite en silencio.

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

Omite la opción <code>--header</code> para usar OAuth en su lugar: Claude Code abre un navegador en la primera conexión.

  1. Abre Settings, luego Connectors.
  2. Elige Add custom connector.
  3. Pega <code>https://qurak.com/mcp</code> y confirma.
  4. Se abre una ventana del navegador. Inicia sesión en Qurak y aprueba la solicitud.

Esta ruta es solo OAuth por necesidad — no hay un campo para un token. Los mismos pasos aplican a los conectores de claude.ai.

  1. Abre Settings, luego MCP.
  2. Agrega un servidor con la URL <code>https://qurak.com/mcp</code>.
  3. Aprueba la solicitud del navegador.

Cursor prefiere OAuth en cuanto un servidor publica metadatos de descubrimiento, y este lo hace — así que un bloque <code>headers</code> en su configuración probablemente se ignore. Espera el flujo del navegador, y déjalo correr.

La clave es <code>servers</code>, no <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 }
  ]
}

Usar <code>inputs</code> mantiene el token fuera del archivo, así que la configuración es segura de confirmar en el repositorio.

Si tu cliente solo habla el transporte HTTP+SSE antiguo, apúntalo a <code>https://qurak.com/mcp/sse</code> en su lugar.

URL
https://qurak.com/mcp

Herramientas

HerramientaQué haceAlcance
evaluateEvaluar una expresión de Qurak (sintaxis compatible con .wl). Devuelve el resultado formateado, con el tiempo que tardó. Opcional: session_id, format (Standard, TeX, JSON) y timeout_ms.qurak:evaluate
plotEjecutar una expresión de graficado y devolver el gráfico como imagen PNG. Acepta los mismos session_id y timeout_ms.qurak:evaluate
clear_sessionDescartar una sesión de evaluación y todo lo definido en ella.qurak:evaluate
search_docsBuscar en la referencia de funciones por nombre o descripción, y en las recetas de tareas junto a ella. Opcional: kind (function, task, any); cada resultado dice cuál es.qurak:docs
get_taskUna receta de tarea completa: sus pasos en orden, y la salida que cada uno produjo cuando se verificó contra este motor. Los pasos corren en secuencia en una sola sesión.qurak:docs
get_symbolTodo lo que se sabe de un símbolo: disponibilidad, formas, opciones, ejemplos.qurak:docs
check_supportVerificar si funciones específicas están disponibles, antes de usarlas.qurak:docs
plan_computationAterriza un objetivo antes de calcular: veredictos de disponibilidad para cada función de un borrador de expresión, las recetas verificadas más cercanas y una recomendación de ruta en los números de presupuesto propios de esta conexión. No gasta cómputo.qurak:docs
evaluate_asyncEnvía una expresión como trabajo en segundo plano con un presupuesto de minutos que depende del plan, para trabajo que el presupuesto interactivo no puede contener. Devuelve un id de trabajo de inmediato; los trabajos son un cupo diario.qurak:evaluate
get_job
list_jobs
cancel_job
El estado de un trabajo y, una vez terminado, su resultado completo (pasa wait_ms y una sola llamada espera con long-poll en lugar de docenas consultando sin parar); los trabajos recientes de la cuenta; la cancelación. Consultar es gratis.qurak:evaluate
simulate_circuitSimula un circuito cuántico — vector de estado ideal, conjunto de compuertas estándar — y devuelve su histograma de mediciones. Corre como trabajo en segundo plano, con un techo de cúbits que sigue al plan.qurak:evaluate
save_guide
get_guide
list_guides
delete_guide
Notas duraderas en la cuenta: guarda las definiciones y supuestos de un modelo de trabajo bajo un nombre, y léelas de vuelta en una conversación posterior. Leer necesita el alcance docs; escribir necesita evaluate.qurak:docs
qurak:evaluate
get_capabilitiesLos límites vigentes para esta conexión, en números: techo del presupuesto de cómputo, cuota por minuto y lo que queda de ella, gráfico guardado más grande, alcances otorgados, límites de sesión. Sin argumentos.cualquiera
WolframLanguageEvaluatorAlias heredado de evaluate, conservado para clientes que esperan el nombre de herramienta de AgentTools. Mismos argumentos, mismo comportamiento.qurak:evaluate

Mantener estado entre llamadas

evaluate y plot no tienen estado salvo que pases un session_id. Con uno, las definiciones se conservan — a = 10 en una llamada, luego a + 5 en la siguiente con el mismo id, se evalúa a 15. Las sesiones son privadas de tu cuenta, así que dos cuentas usando el mismo id nunca ven las variables de la otra. Se descartan tras 30 minutos de inactividad, cuando una evaluación en ellas agota su tiempo (el motor no puede interrumpirse, así que la sesión se va con él), o cuando llamas a clear_session.

Límites y errores

El presupuesto de cómputo y el límite de tasa siguen tu plan — ve Planes, o llama a get_capabilities desde la propia conexión para los números vigentes. Superar cualquiera de los dos vuelve como un resultado de herramienta con isError activado, no como un error de transporte, para que tu agente pueda leer el mensaje y ajustarse. Lo mismo vale para un error de sintaxis, un tiempo agotado o un fallo dentro del motor: son respuestas, y la conexión sigue abierta.

check_support te dice qué está disponible sin gastar una evaluación. timeout_ms permite que una llamada pida un presupuesto más corto que el del plan — útil para fallar rápido en una expresión que esperas barata. Está limitado al presupuesto del propio plan, así que no puede comprar más tiempo del que tienes. Las funciones de archivos, procesos y red están bloqueadas.