当 kingbase-mcp 跑在 restricted 模式,AI 客户端的 Base URL 该填什么
在 IDE 里用自然语言问一句“这张表最近为什么慢”,然后让 AI 自己去查元数据、拉执行计划、跑健康检查——这是金仓 KES MCP Server 想做的事。但很多人把 MCP 服务端跑起来之后卡在最后一步:AI 客户端要调用模型,模型通道的 Base URL 填什么?本文就围绕kingbase-mcp --access-mode restricted这个具体场景,把模型通道这一层配好。TaoToken 在这里只负责提供 Key 和 Base URL,官网入口是 https://taotoken.net/?utm_source=taotoken_aicg_blog_end ,注册后创建 Key 即可,不涉及 kingbase-mcp 的启动参数和传输方式。
需要先厘清职责边界:kingbase-mcp 的 restricted 模式负责数据库侧的 SQL 类型白名单、拦截写入与修改等高风险操作,这是它自己的安全层;而 AI 客户端要驱动 MCP 工具,得先有一个能用的模型通道,这一层由 TaoToken 提供。两者互不越界,配好之后在同一个环境里提一个结构类问题,就能同时验证 MCP 调用和模型通道是否都通。
一、原问题与场景:MCP 跑起来了,模型通道还没接上
开发者日常的痛点很具体:要在 IDE、数据库客户端和监控工具之间来回切换,手工复制状态信息。KES MCP Server 用 9 个标准工具覆盖了元数据查看、执行计划分析、健康检查和 sys_hypo 无损索引模拟,让 AI 在 IDE 里直接接管这些操作。MCP 这一端的流程是固定的:克隆 Gitee 上的king-db/kingbase-mcp,执行uv pip install .,生产环境用uv run kingbase-mcp --access-mode restricted启动。
问题出在上面那层 AI 客户端。客户端要发起自然语言提问,背后必须有一个模型通道来理解意图、决定调用哪个 MCP 工具。如果 Base URL 没配对,表现往往是:MCP 服务端日志正常,但客户端里提问没有任何工具调用发生,或者直接报连接错误。这时候要改的不是 kingbase-mcp 的启动命令,而是客户端的模型接入配置。
二、TaoToken 前置:拿 Key、定 Base URL
在配置客户端之前,先完成两件事。
第一,打开 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 注册账号,进入控制台创建 API Key。这个 Key 就是客户端调用模型通道的凭证,格式形如YOUR_API_KEY,实际使用时替换成你自己的。
第二,确认 Base URL。TaoToken 的 API 地址是 https://taotoken.net/api ,注意两点:不带/v1后缀,也不加任何 UTM 参数。很多客户端默认会自己拼/v1/chat/completions,所以 Base URL 只填到/api这一层就够了。
这里再强调一次边界:TaoToken 只提供 Key 和 Base URL,不碰 kingbase-mcp 的启动参数,也不管它用 Stdio、SSE 还是 Streamable HTTP 传输。restricted 模式下的白名单拦截、SQL 类型限制,全部由 kingbase-mcp 自己负责。你换客户端、加 Key,都还是从上面那个官网入口获取。
三、可复制配置:把 Base URL 填进 AI 客户端
不同客户端的配置位置不一样,但核心就两个字段:Base URL 和 API Key。下面按常见形态给出可复制的写法。
如果客户端支持 OpenAI 兼容格式的环境变量,可以这样设:
export OPENAI_BASE_URL="https://taotoken.net/api" export OPENAI_API_KEY="YOUR_API_KEY"如果客户端是 Claude Code 这类走 Anthropic 协议的,配置写在settings.json里,用ANTHROPIC_*系列变量:
{ "env": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_API_KEY": "YOUR_API_KEY" } }如果客户端是 Codex 这类用config.toml的,对应字段填同样的 Base URL 和 Key:
base_url = "https://taotoken.net/api" api_key = "YOUR_API_KEY"如果客户端本身带图形界面,就在设置页找到“模型服务”或“自定义 API”一栏,Base URL 填https://taotoken.net/api,Key 填YOUR_API_KEY,模型 ID 按你实际要用的填。
需要提醒的是,kingbase-mcp 的启动命令保持原样,不要因为改了客户端配置就去动它:
uv run kingbase-mcp --access-mode restricted传输方式(Stdio / SSE / Streamable HTTP)也按你原来的部署来,TaoToken 不介入这一层。
四、验证请求:提一个结构类问题,看两件事
配置完成后,不要急着问复杂的优化问题,先用一个结构类问题做最小验证。比如在客户端里输入:“帮我看看当前数据库里有哪些 schema,以及某张表的字段和索引情况。”
这个问题的好处是:它必然触发 MCP 的元数据查看工具,同时又要经过模型通道来理解你的意图。如果两件事都通,你会看到 AI 先调用工具拿到 schema、表、字段、约束、索引等信息,再基于结果给出回答。
验证时重点看两个信号:
一是客户端有没有发出模型请求。如果 Base URL 或 Key 配错,这一步就会失败,通常报 401 或连接超时。
二是 MCP 服务端有没有收到工具调用。如果模型通道通了但 MCP 没反应,说明客户端的 MCP 配置(传输方式、启动命令)有问题,而不是模型通道的问题。
两个信号都正常,说明 restricted 模式下的 kingbase-mcp 和 TaoToken 模型通道已经协同工作。之后再试执行计划分析、健康检查、sys_hypo 索引模拟这些工具,就都是在这个基础上扩展了。
五、本篇常见错排查
围绕这个场景,最容易踩的坑集中在几处。
Base URL 多写了/v1。客户端自己会拼路径,你填https://taotoken.net/api/v1就会变成/api/v1/v1/...,直接 404。正确写法是只到/api。
Base URL 带了 UTM 参数。从官网复制地址时如果连查询串一起复制,客户端可能把参数当成路径的一部分。API 地址就是 https://taotoken.net/api ,干净的这一条。
Key 没替换。配置里写的是YOUR_API_KEY占位符,忘了换成控制台创建的真实 Key,表现就是 401。
把模型通道的问题当成 MCP 的问题。提问没反应时,先确认客户端有没有成功发出模型请求。如果模型请求就失败了,跟 kingbase-mcp 的 restricted 模式无关,别去改启动参数。
误以为 TaoToken 管 MCP 传输。Stdio、SSE、Streamable HTTP 的选择和配置是 kingbase-mcp 和客户端之间的事,TaoToken 不提供也不修改这些设置。
restricted 模式下工具被拦截。如果你让 AI 执行写入类操作,restricted 模式会按白名单拦截,这是预期行为,不是配置错误。需要完整权限只能在测试环境用 unrestricted 模式。
六、配好之后,继续往下走
到这里,kingbase-mcp 在 restricted 模式下运行,AI 客户端的 Base URL 指向 TaoToken,模型通道和 MCP 工具调用都验证通过。后续如果要换客户端、加 Key,或者查看接入细节,可以从这几个入口继续:
创建和管理 Key、查看接入文档,走 API Keys 和接入文档页面;想直接验证模型通道是否正常,用模型对话功能试一句;如果是长期做编码和 Agent 场景,考虑 Coding Plan 更合适。这些入口都从 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 进入后按需选择。
再回到最初的目标:让 AI 在 IDE 里直接接管数据库运维,减少在多个工具之间切换的成本。MCP 这一端由 kingbase-mcp 的 9 个工具和 restricted 安全模式负责,模型通道这一端由 TaoToken 的 Key 和 Base URL 负责。两边各司其职,配好之后,剩下的就是你在同一个环境里用自然语言提问了。