Conecta Claude, Cursor, VS Code o cualquier cliente MCP al motor Qurak.
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.
| URL | Transporte | Uso |
|---|---|---|
| https://qurak.com/mcp | Streamable HTTP | Preferido. Úsalo salvo que tu cliente no pueda. |
| https://qurak.com/mcp/sse | HTTP+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.
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étodo | Cómo funciona | Úsalo cuando |
|---|---|---|
| OAuth | El 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 Bearer | Creas 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. |
| Alcance | Otorga |
|---|---|
| qurak:evaluate | Ejecutar expresiones y producir gráficos en tu cuenta. Gasta el presupuesto de cómputo y el límite de tasa de tu plan. |
| qurak:docs | Leer 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.
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.
{
"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.
Esta ruta es solo OAuth por necesidad — no hay un campo para un token. Los mismos pasos aplican a los conectores de claude.ai.
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>.
{
"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.
https://qurak.com/mcp| Herramienta | Qué hace | Alcance |
|---|---|---|
| evaluate | Evaluar 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 |
| plot | Ejecutar una expresión de graficado y devolver el gráfico como imagen PNG. Acepta los mismos session_id y timeout_ms. | qurak:evaluate |
| clear_session | Descartar una sesión de evaluación y todo lo definido en ella. | qurak:evaluate |
| search_docs | Buscar 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_task | Una 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_symbol | Todo lo que se sabe de un símbolo: disponibilidad, formas, opciones, ejemplos. | qurak:docs |
| check_support | Verificar si funciones específicas están disponibles, antes de usarlas. | qurak:docs |
| plan_computation | Aterriza 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_async | Enví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_circuit | Simula 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_capabilities | Los 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 |
| WolframLanguageEvaluator | Alias heredado de evaluate, conservado para clientes que esperan el nombre de herramienta de AgentTools. Mismos argumentos, mismo comportamiento. | qurak:evaluate |
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.
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.