← 全部范例范例 06
接入 MCP 客户端,让智能体自己先报价
你将构建: 一条从支持 MCP 的客户端到托管服务器的可用连接,配一枚只读作用域的令牌,以及一套让智能体在执行前先为任务报价的提示模式。
| 分类 | 智能体与 MCP |
|---|---|
| 使用的操作 | POST /mcp |
| 积分 | 免费 —— 这些端点从不计费 |
| 测试密钥可用 | 否 —— 需要正式密钥 |
| 预计耗时 | ~10 分钟 |
| 前置条件 | 工作区的所有者或管理员权限(用于创建 qm_ 令牌),以及一个允许设置自定义请求头的客户端。 |
一个端点,Streamable HTTP
服务器在单一端点上通过 Streamable HTTP 使用 JSON-RPC 2.0 通信。请调用 tools/list 来发现你的令牌实际能触及的工具,而不要信任从本页这类页面复制来的清单。
tools-list.sh
# JSON-RPC 2.0 over Streamable HTTP, one endpoint.
curl -X POST https://api.qannasapi.com/mcp \
-H "Authorization: Bearer $QANNAS_MCP_TOKEN" \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}'
# Trust this over any tool list copied from a page — it reflects
# the scopes your token actually carries.创建一枚限定作用域的令牌
令牌在创建时只显示一次,携带只读作用域并默认拒绝。这里没有可供保留的写入作用域:令牌能查询,但永远无法更改、发送或删除任何东西。吊销即时生效。
client config
// Any client with a custom-headers field connects today.
{
"mcpServers": {
"qannas": {
"url": "https://api.qannasapi.com/mcp",
"headers": {
"Authorization": "Bearer qm_…"
}
}
}
}
// The token is shown once at creation. Store it then.让智能体先报价
工作流工具接受 dry_run 报价,而索取报价不花任何费用。把这条指令写进系统提示 —— 先报价并等待批准 —— 这样智能体会在花费之前先提出成本。
quote-first.txt
# Put this in the agent's system prompt.
# A dry_run quote is free, so there is no reason not to.
Before running any QannasAPI workflow tool, call it once with
dry_run: true, show me the credit quote, and wait for my
approval before running it for real.了解 MCP 承载不了什么
增量跟踪仅限 REST:since_cursor 与 track_delta 未在 MCP 上暴露。共识式联系人查询同样仅限 REST。而且 MCP 调用始终按真实积分计费 —— 这个接口上没有测试密钥模式。
小结
| 模式 | 做法 |
|---|---|
| 传输 | Streamable HTTP,JSON-RPC 2.0,单一端点 |
| 发现工具 | tools/list —— 信任你的令牌,而非复制来的清单 |
| 令牌 | qm_ 前缀,只显示一次,只读作用域,即时吊销 |
| 为任务报价 | 在任意工作流工具上使用 dry_run,永远免费 |
| MCP 上没有的 | 增量跟踪与共识式查询仅限 REST |
| 计费 | 始终是真实积分 —— 没有测试密钥模式 |
上线检查清单
- 在你自己的令牌上调用 tools/list,而不要把工具清单硬编码进代码。
- 把「先报价,等待批准」写进智能体的系统提示。
- 为每个智能体各建一枚令牌,这样吊销其中之一不会影响其余。
- 创建时就把令牌存好 —— 它不会再次显示。
下一步
先运行预估。它不花任何费用,用的正是计量器将要套用的那套算术。