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读取函数参考。不消耗计算,因此只连文档的连接可以放心大范围授予。

底层是带 PKCE 的标准 OAuth 2.1 流程,可在 /.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. 打开 Settings,然后打开 Connectors。
  2. 选择 Add custom connector。
  3. 粘贴 <code>https://qurak.com/mcp</code> 并确认。
  4. 浏览器窗口会打开。登录 Qurak 并批准请求。

这条路径必然只有 OAuth——没有可填令牌的地方。同样的步骤也适用于 claude.ai 的连接器。

  1. 打开 Settings,然后打开 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 允许单次调用申请比套餐更短的时限——适合让预期便宜的表达式尽快失败。它会被钳制在套餐自身的时限内,买不到超出你所拥有的时间。 文件、进程和网络函数已被封禁。