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)非推奨。古いクライアント専用。

トランスポートはステートレスで、プロトコルのセッションidを発行しません。そのため GETDELETE/mcp は設計どおり 405 で応答します。これは、評価系ツールが受け取る任意の session_id とは別のものです — 詳しくは ツール を参照 — これは自分で選ぶツール引数であり、トランスポートが配るものではありません。

サインインの2つの方法

ほとんどのクライアントはこれを自動で処理します。下でクライアントを選び、表示される1つの経路に従ってください — 両方は不要です。

方式仕組み使いどころ
OAuthクライアントがブラウザを開き、Qurakにサインインしてリクエストを承認します。資格情報を手でコピーすることは一切ありません。クライアントがURLしか求めないとき — Claude Desktopとclaude.aiにはトークンを入れる場所がありません。
ベアラートークントークンを作成し、クライアント設定の Authorization ヘッダーに設定します。クライアントがヘッダーに対応していて、固定の資格情報を使いたいとき — CIや共有マシンに便利です。

OAuthが求めるもの

スコープ付与内容
qurak:evaluateあなたのアカウントで式を実行し、プロットを生成します。プランの計算予算とレート制限を消費します。
qurak:docs関数リファレンスの読み取り。計算を消費しないため、ドキュメントのみの接続は広く許可しても安全です。

内部的にはPKCE付きの標準的なOAuth 2.1フローで、 /.well-known/oauth-protected-resource/.well-known/oauth-authorization-server で検出できます( /.well-known/openid-configurationでも応答します。こちらを先に試すクライアントもあります)。クライアントは3つの方法で自らを識別できます — クライアントIDメタデータドキュメント、動的登録、または下で登録するクライアントIDとシークレット — いずれかに対応するクライアントは自力で見つけます。

クライアント設定

コマンドライン
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_..." }
    }
  }
}

OAuthを使う場合は <code>--header</code> フラグを省略します: Claude Codeは初回接続時にブラウザを開きます。

  1. 設定を開き、Connectorsを選びます。
  2. Add custom connectorを選びます。
  3. <code>https://qurak.com/mcp</code> を貼り付けて確定します。
  4. ブラウザウィンドウが開きます。Qurakにサインインしてリクエストを承認してください。

この経路は必然的にOAuth専用です — トークンを入れる欄がありません。claude.ai のコネクタにも同じ手順が当てはまります。

  1. 設定を開き、MCPを選びます。
  2. URL <code>https://qurak.com/mcp</code> でサーバーを追加します。
  3. ブラウザのプロンプトを承認します。

サーバーがディスカバリーメタデータを公開している場合、CursorはOAuthを優先します。このサーバーは公開しているため、設定の <code>headers</code> ブロックは無視される可能性が高いです。ブラウザフローが開くので、そのまま進めてください。

キーは <code>mcpServers</code> ではなく <code>servers</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

ツール

ツール機能スコープ
evaluateQurakの式(.wl互換構文)を評価します。整形済みの結果を所要時間とともに返します。任意: session_id, format (Standard, TeX, JSON) と timeout_ms.qurak:evaluate
plotプロット式を実行し、チャートをPNG画像として返します。受け取る引数は次と同じ: session_idtimeout_ms.qurak:evaluate
clear_session評価セッションと、その中で定義されたすべてを破棄します。qurak:evaluate
search_docs名前や説明で 関数リファレンス を検索し、あわせてタスクレシピも検索します。任意: kind (function, task, any)。各結果にどちらであるかが示されます。qurak:docs
get_task1つのタスクレシピの全体: 順序どおりのステップと、このエンジンで検証された際に各ステップが生成した出力。ステップは1つのセッション内で順に実行されます。qurak:docs
get_symbol1つのシンボルについて分かっているすべて: 利用可否・形式・オプション・例。qurak:docs
check_support特定の関数が利用可能かどうかを、使う前に確認します。qurak:docs
plan_computation計算の前に目標を地に足のついたものにします: 下書きの式に含まれるすべての関数の対応可否の判定、最も近い検証済みレシピ、そしてこの接続自身の予算の数値で示されるルーティングの推奨。計算は一切消費しません。qurak:docs
evaluate_async式を、分単位でプランに依存する予算を持つバックグラウンドジョブとして送信します。対話用の予算に収まらない仕事のためのものです。ジョブIDを即座に返します。ジョブは1日の割り当て制です。qurak:evaluate
get_job
list_jobs
cancel_job
ジョブの状態と、完了後はその完全な結果(wait_ms を渡せば、細かく何十回もポーリングする代わりに1回の呼び出しでロングポーリングします)。アカウントの最近のジョブ一覧と、キャンセルも。ポーリングは無料です。qurak:evaluate
simulate_circuit量子回路をシミュレートし - 理想状態ベクトル、標準ゲートセット - 測定ヒストグラムを返します。バックグラウンドジョブとして実行され、量子ビット上限はプランに従います。qurak:evaluate
save_guide
get_guide
list_guides
delete_guide
アカウントに残る永続的なノートです: 作業中のモデルの定義と仮定を名前を付けて保存し、後の会話で読み戻せます。読み取りには docs スコープが、書き込みには evaluate が必要です。qurak:docs
qurak:evaluate
get_capabilitiesこの接続に有効な制限を数値で返します: 計算予算の上限、1分あたりの割り当てと残り、保存可能な最大プロット、付与済みスコープ、セッションの上限。引数なし。すべて
WolframLanguageEvaluator次のレガシーエイリアス: evaluate。AgentToolsのツール名を想定するクライアントのために残されています。引数も動作も同じです。qurak:evaluate

呼び出し間で状態を保つ

evaluateplot は、 session_idを渡さない限りステートレスです。渡すと定義は引き継がれます — あるコールで a = 10 、続くコールで同じidのまま a + 5 を評価すると 15になります。セッションはアカウント内に閉じており、2つのアカウントが同じidを使っても互いの変数は見えません。アイドルが30分続いたとき、セッション内の評価がタイムアウトしたとき(エンジンは中断できないためセッションごと失われます)、または次を呼び出したときに破棄されます: clear_session.

制限とエラー

計算予算とレート制限はプランに従います — 料金を参照するか、接続から get_capabilities を呼び出せば現在有効な数値が得られます。どちらかを超えると、トランスポートエラーではなく isError が設定されたツール結果として返るため、エージェントはメッセージを読んで調整できます。構文エラーやタイムアウト、エンジン内部の失敗も同じです: それらは応答であり、接続は開いたままです。

check_support は、評価を消費せずに何が利用できるかを教えてくれます。 timeout_ms を使うと、プランの上限より短い予算を呼び出しごとに指定できます — 安価なはずの式を早く失敗させたいときに便利です。プラン自体の予算にクランプされるため、持ち時間より多くは買えません。 ファイル・プロセス・ネットワーク関数はブロックされています。