ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

MCP搭建全指南:用TaoToken统一Key打通mcp server与openwebui

MCP搭建全指南:用TaoToken统一Key打通mcp server与openwebui 1. 为什么我要把 MCP 服务接到 OpenWebUI 里MCP 全称 Model Context Protocol简单说就是给大模型装外挂工具的一套标准协议。你可以把它理解成 USB 接口以前每个 AI 客户端想调用一个工具比如抓网页、查时间、读记忆都得自己写一套对接代码现在只要工具方按 MCP 协议暴露服务任何支持 MCP 的客户端都能即插即用。mcp server 就是这些工具服务的具体实现mcpo 则是把 MCP 服务转成 OpenAPIHTTP 接口的桥接层让 OpenWebUI 这类只认 HTTP 的客户端也能用上。这套东西适合谁适合已经在本地跑 Ollama、用 OpenWebUI 当聊天前端但苦于模型没有联网抓取、没有长期记忆、没有实时时间能力的同学。我自己搭这套链路时最大的痛点是每个 mcp server 都要单独配一遍 Key 和地址客户端一多就乱。后来用 TaoToken 统一 Key 和 API 通道做入口把模型调用和工具调用收敛到一处配置才清爽下来。这篇就按一次跑通 MCP 调用链的目标把 mcp server、mcpo、OpenWebUI、Ollama 以及 Cline/CC Switch 的配置骨架全部给到可复制片段。核心检索词先摆出来MCP 是什么、mcp server 能做什么、mcpo 怎么用、OpenWebUI 怎么接工具、Ollama 怎么配远程地址。下面从环境准备一路走到连通性验证。2. TaoToken 前置统一 Key 与 API 通道在动手配 mcp server 之前先把模型侧的入口统一掉。TaoToken 在这里扮演的角色是统一 Key 统一 API 通道你不需要为每个客户端单独申请一堆 Key也不用在 OpenWebUI、Cline、CC Switch 里各填一套不同的地址。官网入口在 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 基址是 https://taotoken.net/api 这个不带 UTM直接填进配置里。具体要拿的东西就一个API Key。进控制台 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite 创建然后在 API Keys 页面 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 复制出来。这个 Key 后面会同时出现在 OpenWebUI 的模型连接配置、Cline 的 provider 配置、以及 CC Switch 的通道配置里。注意Key 只显示一次复制后先存到本地密码管理器别直接贴进会提交到 Git 的配置文件。如果你只是想先验证模型通道通不通可以打开模型对话页 https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodelsutm_campaignrewrite 发一条消息确认 Key 有效再往下走。这一步能省掉后面到底是工具没通还是模型没通的排查时间。3. 可复制配置从 mcpo 到 OpenWebUI 的完整骨架3.1 安装 mcpo 与第一个 mcp servermcpo 是 OpenWebUI 官方出的 MCP-to-OpenAPI 代理作用是把 stdio 类型的 mcp server 转成 HTTP 服务。Python 环境下直接装pip install mcpo pip install mcp-server-fetchmcp-server-fetch 是官方 servers 仓库里的样例工具能力是抓取网页内容。装完后用 mcpo 把它拉起来mcpo --port 8000 -- uvx mcp-server-fetch这条命令的意思是mcpo 监听 8000 端口把uvx mcp-server-fetch这个 stdio 服务转成 HTTP。启动后访问 http://localhost:8000/docs 能看到自动生成的 OpenAPI 文档说明桥接成功。3.2 用 config.json 一次挂多个 mcp server单个工具用命令行还行工具一多就得靠配置文件。mcpo 支持--config加载多个 mcp server每个工具会挂到独立路由下{ mcpServers: { memory: { command: npx, args: [-y, modelcontextprotocol/server-memory] }, time: { command: uvx, args: [mcp-server-time, --local-timezoneAsia/Shanghai] }, fetch: { command: uvx, args: [mcp-server-fetch] } } }启动命令mcpo --config ./config.json --host 0.0.0.0 --port 8100这里有个我踩过的坑默认只监听 localhost如果 OpenWebUI 跑在另一台机器或容器里必须显式加--host 0.0.0.0否则 docs 能打开但工具路由访问不了。每个工具的路由规则是http://host:port/toolName比如 memory 就是http://localhost:8100/memory完整 schema 在http://localhost:8100/memory/docs。3.3 OpenWebUI 侧接入工具OpenWebUI 里点右上角用户头像进设置找到工具或连接配置区把 mcpo 暴露的地址填进去。如果 Ollama 跑在远程机器上这里同时要填 Ollama 的 IP 和端口端口就是 mcpo 启动命令里指定的那个上面用的是 8100避免和默认 8000 冲突。模型连接部分把 API 基址填https://taotoken.net/apiKey 填刚才复制的那个。这样模型走 TaoToken 通道工具走本地 mcpo两条链路互不干扰。3.4 Cline 与 CC Switch 配置要点Cline 是 VS Code 里的编码 Agent配置 MCP 时在它的 MCP 设置里加一段 server 定义格式和上面的 config.json 基本一致command 指向 mcpo 或直接指向 stdio 服务。CC Switch 用来在多个 API 通道间切换把 TaoToken 的基址和 Key 存成一个 profile需要切模型时一键换不用改代码。长期跑编码任务的话Coding Plan 页面 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 有对应的套餐说明适合把 Agent 调用量固定下来的场景。4. 验证请求确认调用链真的通了配置填完不算完得实际发一次请求。分三步验证第一步确认 mcpo 活着。浏览器打开http://localhost:8100/docs能看到工具列表和每个工具的 schema。点进http://localhost:8100/memory/docs如果显示 OpenAPI 详情页说明路由正常。第二步用 curl 直接打工具接口绕开 OpenWebUI 排除前端问题curl -X POST http://localhost:8100/time \ -H Content-Type: application/json \ -d {timezone: Asia/Shanghai}返回里带上当前时间说明 mcp server 本身工作正常。第三步回 OpenWebUI 里发一条会触发工具的提问比如现在几点了或帮我抓一下某个网页的标题。同时盯着 mcpo 的终端日志如果看到工具调用记录整条链路就通了。我实测下来日志里出现tool call字样基本就稳了。5. 本篇常见错排查docs 能打开但点工具 404九成是 host 没指定。加--host 0.0.0.0重启 mcpo问题消失。这个坑我在 3.2 里提过但值得单独拎出来因为它最容易被忽略。OpenWebUI 里工具列表为空检查填的地址是不是http://mcpo所在IP:8100而不是 localhost。如果 OpenWebUI 在 Docker 里localhost 指向的是容器自己得用宿主机 IP 或容器网络别名。工具调用没反应但日志无报错先确认模型本身能正常对话。如果模型通道都不通工具自然触发不了。回模型对话页发条消息验证 Key再回来查工具。fetch 抓不到内容fetch 是爬虫协议实现只能对允许爬取的网站正常工作。遇到反爬站点返回空是预期行为不是配置问题。端口冲突8000 常被其他服务占用统一改用 8100 或更高端口记得 OpenWebUI 和 mcpo 两边端口一致。Cline 里 MCP 不生效Cline 的 MCP 配置改动后需要重启 VS Code 窗口光重载不够。另外确认 command 路径是绝对路径相对路径在 Agent 环境下经常找不到。6. 把 Key 和工具入口收敛到一处整套链路跑通后你会发现真正需要维护的配置就两处模型侧的 TaoToken Key 和基址工具侧的 mcpo config.json。前者在 API Keys 页面 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 管理后者在本地文件里。接入细节和参数说明可以对照接入文档 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 核对避免基址或路径写错。如果你用的是 Claude Code 这类 Anthropic 系工具配置入口在 https://taotoken.net/claudecode-anthropic?utm_sourcetaotoken_aicg_blog_endutm_contentclaudecode-anthropicutm_campaignrewrite 思路一样统一 Key统一通道工具侧继续走 mcpo。最后给个实用建议把 config.json 和启动命令写成一个 shell 脚本开机自启。我现在的做法是mcpo --config ~/.mcp/config.json --host 0.0.0.0 --port 8100丢进 systemdOpenWebUI 那边地址固定不变换工具只改 config.json 重启服务前端完全不用动。这样每次加新 mcp server 的成本就是往 JSON 里加一段五分钟搞定。
返回列表