Qurak

Serveur MCP

Connectez Claude, Cursor, VS Code ou n'importe quel client MCP au moteur Qurak.

Ce que la connexion apporte à votre assistant

Un assistant qui devine l'arithmétique se trompe juste assez souvent pour que cela compte. Connecté ici, il confie les mathématiques à un vrai moteur et renvoie une réponse calculée plutôt qu'une réponse plausible — analyse, équations différentielles, algèbre, statistiques, tracés.

La connexion dit à votre agent la vérité sur elle-même avant de dépenser le moindre calcul : check_support répond si une fonction existe, get_capabilities rapporte les limites réellement en vigueur, et plan_computation transforme un objectif en méthode de travail avec les recettes vérifiées jointes. Un agent continue d'appeler un outil qui dit d'avance ce qu'il ne sait pas faire.

C'est ouvert sur tous les forfaits, y compris le gratuit, et toute la connexion tient en une URL. Ce qu'achète un forfait payant, c'est du budget de calcul et du débit — jamais l'accès.

Créer un token   Connexion

Points de terminaison

URLTransportUsage
https://qurak.com/mcpStreamable HTTPPréféré. Utilisez-le sauf si votre client ne peut pas.
https://qurak.com/mcp/sseHTTP+SSE (2024-11-05)Déprécié, pour les anciens clients seulement.

Le transport est sans état : il n'émet aucun id de session de protocole, donc GET et DELETE sur /mcp répondent 405 à dessein. C'est distinct du session_id facultatif que prennent les outils d'évaluation — voir Outils — qui est un argument d'outil que vous choisissez, pas quelque chose que le transport distribue.

Deux façons de se connecter

La plupart des clients gèrent cela pour vous. Choisissez votre client ci-dessous et suivez le seul chemin qu'il montre — vous n'avez pas besoin des deux.

MéthodeFonctionnementÀ utiliser quand
OAuthLe client ouvre votre navigateur, vous vous connectez à Qurak et approuvez la demande. Aucun identifiant n'est jamais copié à la main.Votre client ne demande qu'une URL — Claude Desktop et claude.ai n'ont nulle part où mettre un token.
Token BearerVous créez un token et le placez dans un en-tête Authorization dans la configuration du client.Votre client prend en charge les en-têtes et vous voulez un identifiant fixe — utile pour la CI ou une machine partagée.

Ce qu'OAuth demande

PortéeAccorde
qurak:evaluateExécuter des expressions et produire des tracés sur votre compte. Dépense le budget de calcul et la limite de débit de votre forfait.
qurak:docsLire la référence des fonctions. Ne dépense aucun calcul ; une connexion docs-seulement peut donc être accordée largement sans risque.

Sous le capot, c'est un flux OAuth 2.1 standard avec PKCE, découvrable à /.well-known/oauth-protected-resource et /.well-known/oauth-authorization-server (également servi sous /.well-known/openid-configuration, que certains clients essaient d'abord). Un client peut s'identifier de trois façons — un document de métadonnées de client ID, l'enregistrement dynamique, ou un client ID et un secret que vous enregistrez ci-dessous — et les clients qui prennent en charge l'une d'elles la trouveront d'eux-mêmes.

Configuration du client

Ligne de commande
claude mcp add --transport http qurak https://qurak.com/mcp \
  --header "Authorization: Bearer qk_..."

<code>type</code> est obligatoire. Une entrée avec une <code>url</code> et sans <code>type</code> est lue comme un serveur stdio et silencieusement ignorée.

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

Omettez l'option <code>--header</code> pour utiliser OAuth à la place : Claude Code ouvre un navigateur à la première connexion.

  1. Ouvrez Settings, puis Connectors.
  2. Choisissez Add custom connector.
  3. Collez <code>https://qurak.com/mcp</code> et confirmez.
  4. Une fenêtre de navigateur s'ouvre. Connectez-vous à Qurak et approuvez la demande.

Ce chemin est OAuth uniquement, par nécessité — il n'y a aucun champ pour un token. Les mêmes étapes s'appliquent aux connecteurs claude.ai.

  1. Ouvrez Settings, puis MCP.
  2. Ajoutez un serveur avec l'URL <code>https://qurak.com/mcp</code>.
  3. Approuvez l'invite du navigateur.

Cursor préfère OAuth dès qu'un serveur publie des métadonnées de découverte, ce que fait celui-ci — un bloc <code>headers</code> dans sa configuration sera donc probablement ignoré. Attendez-vous au flux navigateur, et laissez-le se dérouler.

La clé est <code>servers</code>, pas <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 }
  ]
}

Utiliser <code>inputs</code> garde le token hors du fichier, la configuration peut donc être commitée sans risque.

Si votre client ne parle que l'ancien transport HTTP+SSE, pointez-le plutôt vers <code>https://qurak.com/mcp/sse</code>.

URL
https://qurak.com/mcp

Outils

OutilCe qu'il faitPortée
evaluateÉvaluer une expression Qurak (syntaxe compatible .wl). Renvoie le résultat formaté, avec le temps pris. Facultatif : session_id, format (Standard, TeX, JSON) et timeout_ms.qurak:evaluate
plotExécuter une expression de tracé et renvoyer le graphique en image PNG. Prend les mêmes session_id et timeout_ms.qurak:evaluate
clear_sessionSupprimer une session d'évaluation et tout ce qui y est défini.qurak:evaluate
search_docsRechercher dans la référence des fonctions par nom ou description, ainsi que dans les recettes de tâches. Facultatif : kind (function, task, any); chaque résultat dit ce qu'il est.qurak:docs
get_taskUne recette de tâche complète : ses étapes dans l'ordre, et la sortie que chacune a produite lors de sa vérification sur ce moteur. Les étapes s'exécutent en séquence dans une même session.qurak:docs
get_symbolTout ce qui est connu d'un symbole : disponibilité, formes, options, exemples.qurak:docs
check_supportVérifier si des fonctions précises sont disponibles, avant de les utiliser.qurak:docs
plan_computationAncre un objectif avant de calculer : un verdict de disponibilité pour chaque fonction d'un brouillon d'expression, les recettes vérifiées les plus proches, et une recommandation d'aiguillage dans les chiffres de budget propres à cette connexion. Ne dépense aucun calcul.qurak:docs
evaluate_asyncSoumet une expression comme tâche de fond avec un budget de plusieurs minutes, selon le forfait, pour le travail que le budget interactif ne peut contenir. Renvoie immédiatement un id de tâche ; les tâches sont un quota journalier.qurak:evaluate
get_job
list_jobs
cancel_job
Le statut d'une tâche et, une fois finie, son résultat complet (passez wait_ms et un seul appel attend en long-poll au lieu de dizaines d'interrogations serrées) ; les tâches récentes du compte ; l'annulation. Interroger est gratuit.qurak:evaluate
simulate_circuitSimule un circuit quantique - vecteur d'état idéal, jeu de portes standard - et renvoie son histogramme de mesures. S'exécute comme tâche de fond, avec un plafond de qubits qui suit le forfait.qurak:evaluate
save_guide
get_guide
list_guides
delete_guide
Des notes durables sur le compte : enregistrez les définitions et hypothèses d'un modèle de travail sous un nom, et relisez-les dans une conversation ultérieure. La lecture demande la portée docs ; l'écriture demande evaluate.qurak:docs
qurak:evaluate
get_capabilitiesLes limites en vigueur pour cette connexion, en chiffres : plafond du budget de calcul, quota par minute et ce qu'il en reste, plus grand tracé stocké, portées accordées, bornes de session. Aucun argument.toutes
WolframLanguageEvaluatorAlias hérité de evaluate, conservé pour les clients qui attendent le nom d'outil AgentTools. Mêmes arguments, même comportement.qurak:evaluate

Conserver l'état entre les appels

evaluate et plot sont sans état sauf si vous passez un session_id. Avec, les définitions se transmettent — a = 10 sur un appel, puis a + 5 sur le suivant avec le même id, s'évalue en 15. Les sessions sont privées à votre compte : deux comptes utilisant le même id ne voient jamais les variables l'un de l'autre. Elles sont supprimées après 30 minutes d'inactivité, quand une évaluation y dépasse son délai (le moteur ne peut pas être interrompu, la session part donc avec), ou quand vous appelez clear_session.

Limites et erreurs

Le budget de calcul et la limite de débit suivent votre forfait — voir Offres, ou appelez get_capabilities depuis la connexion elle-même pour les chiffres en vigueur. Dépasser l'un ou l'autre revient comme un résultat d'outil avec isError défini, pas comme une erreur de transport, pour que votre agent puisse lire le message et s'ajuster. Il en va de même d'une erreur de syntaxe, d'un délai dépassé ou d'un échec dans le moteur : ce sont des réponses, et la connexion reste ouverte.

check_support vous dit ce qui est disponible sans dépenser une évaluation. timeout_ms permet à un appel de demander un budget plus court que celui du forfait — utile pour échouer vite sur une expression que vous attendez bon marché. Il est plafonné au budget du forfait, il ne peut donc pas acheter plus de temps que vous n'en avez. Les fonctions de fichiers, de processus et de réseau sont bloquées.