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 是兩回事——請見 工具 ——那是由你選擇的工具參數,而不是傳輸層發給你的東西。

兩種登入方式

大多數用戶端會替你處理好這件事。請在下方選擇你的用戶端,並依照它顯示的那一條路徑操作——兩種方式不必都做。

方式運作方式適用時機
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也會有回應,有些用戶端會先試這個)。用戶端可以用三種方式表明身分—— 用戶端 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_..." }
    }
  }
}

省略 <code>--header</code> 旗標即可改用 OAuth:Claude Code 會在第一次連線時開啟瀏覽器。

  1. 開啟設定,然後選擇「連接器」。
  2. 選擇「新增自訂連接器」。
  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>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_idtimeout_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

在多次呼叫之間保留狀態

evaluateplot 除非你傳入 session_id,否則都是無狀態的。傳入之後,定義就會延續下去—— a = 10 在某次呼叫中執行,接著在下一次以相同 id 的呼叫中執行 a + 5 ,求值結果就是 15。工作階段是你帳戶私有的,因此兩個帳戶即使使用相同的 id,也絕不會看到彼此的變數。它們會在閒置 30 分鐘後、其中的求值逾時時(引擎無法被中斷,因此工作階段會隨之結束),或是在你呼叫以下函式時被丟棄: clear_session.

限制與錯誤

計算預算與速率限制取決於你的方案——請見 價格,或直接從連線本身呼叫 get_capabilities 以取得目前生效的數字。超過任一項時,回傳的是設有 isError 的工具結果,而不是傳輸層錯誤,因此你的代理可以讀取訊息並自行調整。語法錯誤、逾時或引擎內部失敗也是如此:它們都是回答,連線會保持開啟。

check_support 可以在不耗用一次求值的情況下,告訴你有哪些功能可用。 timeout_ms 可讓單次呼叫要求比方案上限更短的預算——對於你預期成本很低的運算式,能更快失敗。它會被夾在方案本身的預算內,因此不可能買到比你擁有的更多時間。 檔案、行程與網路相關的函式已被封鎖。