1. Packrift MCP Server 接进 Cline 时,模型通道到底填哪儿
Packrift MCP Server 是一个跑在 Cloudflare Workers 上的 MCP 服务,向 AI 代理暴露search_products、get_product、check_inventory、get_shipping_estimate等工具,用来查包装目录、实时价格和库存。它适合做电商包装采购、包装推荐、运费估算这类场景,尤其是想让代理自动完成「搜产品 → 看库存 → 估运费」这条链路的人。但它的说明文档只写到 6.4 节用 curl 打127.0.0.1:8787/mcp做tools/list自测,没交代把这些工具挂进 MCP 客户端之后,驱动代理调用工具的那个模型通道该填哪儿。
这就是我踩过的坑:MCP 地址和模型 Base URL 是两条完全独立的链路,一个指向 Packrift 的工具端点,一个指向给 Cline 提供推理能力的模型服务。很多人第一次配的时候会把两者混在一起,结果工具列表能拉出来,但代理一调用就报模型请求失败,或者反过来模型通了、工具却调不动。这篇就把这两条地址拆开讲清楚:Packrift 的 MCP 地址原样填进 Cline 的 MCP servers 配置,本地仍用http://127.0.0.1:8787/mcp,部署后换成https://<account>.workers.dev/mcp;而 Cline 的模型供应商设置里,Base URL 填https://taotoken.net/api,Key 到 TaoToken 创建。下面按可跟做的顺序走一遍。
2. 先把两条链路分清楚:MCP 端点 vs 模型通道
在动手之前,先把概念对齐,不然后面配置一定乱。
Packrift MCP Server 本身是一个工具服务,它不负责「思考」,只负责在你调用search_products时去 Shopify Admin GraphQL 查目录、返回 JSON。它部署在 Cloudflare Workers 上,暴露POST /mcp(JSON-RPC 请求)、GET /mcp(SSE)、GET /(健康检查)和/.well-known/mcp/server-card.json(服务器卡片)。它的鉴权用的是 Shopify Admin 令牌,也就是SHOPIFY_PACKRIFT_TOKEN,这是 Packrift 自己的事,跟模型 Key 完全无关。
Cline 是一个 MCP 客户端,它需要两样东西才能跑起来:一是 MCP servers 配置,告诉它去哪里找工具;二是模型供应商配置,告诉它用哪个模型来驱动代理决策。前者填 Packrift 的 MCP 地址,后者填 TaoToken 的 Base URL 和 Key。TaoToken 在这里只负责给 Cline 这类客户端提供 Key 和 Base URL,不参与 Packrift 的产品搜索、定价与库存逻辑。
注意:原文 6.2 节写
.dev.vars、7.1 节wrangler secret put SHOPIFY_PACKRIFT_TOKEN,这一步是 Shopify Admin 令牌,属于 Packrift 自己的鉴权,跟模型 Key 不是一回事,不要混配。把shpat_...填到 Cline 的模型 Key 里,或者把 TaoToken 的 Key 填到wrangler secret里,都会失败。
两条链路对照如下:
| 配置项 | 填什么 | 作用 |
|---|---|---|
| Cline MCP servers 地址 | http://127.0.0.1:8787/mcp或https://<account>.workers.dev/mcp | 让 Cline 找到 Packrift 工具 |
| Cline 模型 Base URL | https://taotoken.net/api | 让 Cline 的代理有模型可调 |
| Cline 模型 Key | 到 TaoToken 创建 | 模型通道鉴权 |
PackriftSHOPIFY_PACKRIFT_TOKEN | shpat_... | Packrift 访问 Shopify 的鉴权 |
3. 可复制配置:Cline 的 MCP servers 与模型供应商
3.1 本地起 Packrift MCP Server
先按原文 6.2、6.3 节把服务跑起来。进入项目目录,安装依赖,创建本地密钥文件:
cd ~/Downloads/packrift-mcp-server npm install创建.dev.vars(已添加到.gitignore):
SHOPIFY_PACKRIFT_TOKEN=shpat_你的令牌运行本地服务器:
npx wrangler dev --port 8787 --local跑起来后,先用 curl 确认工具列表能出来,这一步对应原文 6.4 节:
curl -s -X POST http://127.0.0.1:8787/mcp \ -H 'Content-Type: application/json' \ -d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'如果返回里能看到search_products、check_inventory这些工具名,说明 Packrift 侧没问题,可以进 Cline 配置了。
3.2 Cline 的 MCP servers 配置
打开 Cline 的 MCP 配置,新增一个 server。本地开发阶段,地址原样填 Packrift 的端点,不做任何替换:
{ "mcpServers": { "packrift": { "url": "http://127.0.0.1:8787/mcp", "transport": "streamable-http" } } }部署之后,把url换成 7.2 节的部署后端点:
{ "mcpServers": { "packrift": { "url": "https://packrift-mcp.<account>.workers.dev/mcp", "transport": "streamable-http" } } }这里的关键是:Packrift 的端点不做任何替换,它是什么就填什么。不要在这里填 TaoToken 的地址,也不要把/mcp后缀去掉。
3.3 Cline 的模型供应商配置
模型通道在 Cline 的供应商设置里单独配。Base URL 填:
https://taotoken.net/apiKey 到 TaoToken 创建,创建入口在官网,注册后进控制台生成 API Key。模型选择上,选一个支持工具调用(function calling / tool use)的模型,否则代理没法驱动 MCP 工具。配好后 Cline 会用这个通道发模型请求,同时用 MCP servers 里的地址去调 Packrift 工具。
提示:如果你后面要做长期编码或 Agent 任务,可以看 Coding Plan;只是验证模型通不通,用模型对话就行;接入和排障相关的文档在接入文档里。
4. 验证请求:让代理调一次 search_products 再调 check_inventory
配置完成后,不要只看工具列表,要真正让代理跑一轮工具调用。在 Cline 的对话里输入类似这样的指令:
帮我搜索 poly mailer 产品,然后检查一下库存。代理应该会先调search_products,参数query用poly mailer,可能还会带limit。这一步对应原文 6.4 节的第三个 curl:
curl -s -X POST http://127.0.0.1:8787/mcp \ -H 'Content-Type: application/json' \ -d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"search_products","arguments":{"query":"poly mailer","limit":3}}}'如果工具能返回商品 JSON,代理接着会调check_inventory,参数是variant_ids数组。成功的结果是:工具返回商品与库存 JSON,同一轮对话的模型请求也走通。也就是说,你既能看到工具调用记录,也能看到模型基于工具返回内容给出的自然语言回复。
判断标准很简单:如果工具返回了 JSON,但模型没有继续回复,说明模型通道有问题;如果模型回复了,但工具没被调用,说明 MCP servers 配置有问题。两条链路都通,才算完成。
5. 本篇常见错排查
5.1 把 Shopify 令牌填成模型 Key
最常见的错。SHOPIFY_PACKRIFT_TOKEN是shpat_开头,属于 Packrift 访问 Shopify 的鉴权;TaoToken 的 Key 是另一套。两者填反了,要么 Packrift 查不到目录,要么 Cline 模型请求 401。检查方法:看 Cline 模型设置里的 Key 是不是从 TaoToken 控制台生成的,看.dev.vars或wrangler secret里的是不是shpat_。
5.2 MCP 地址填成了 TaoToken 的地址
Cline 的 MCP servers 里必须填 Packrift 的/mcp端点,本地是http://127.0.0.1:8787/mcp,部署后是https://<account>.workers.dev/mcp。填成https://taotoken.net/api会拉不到工具列表。反过来,模型 Base URL 填成 Packrift 的地址,模型请求也会失败。
5.3 部署后忘了换端点
本地测试用127.0.0.1:8787,部署后要换成 7.2 节的https://packrift-mcp.<account>.workers.dev/mcp。如果部署后 Cline 还指向本地,而本地服务已经关了,工具调用会超时。
5.4 模型不支持工具调用
如果选的模型不支持 function calling,Cline 可能能连上模型,但代理不会去调 MCP 工具。换一个支持工具调用的模型即可。
5.5 工具报错但模型没收到
原文 8.6 节提到,工具异常按 MCP 规范返回{ content: [...], isError: true },而不是 JSON-RPC 错误。如果你在 Cline 里看到工具返回了isError: true,但模型没反应,检查一下模型通道是否正常。协议级错误(未知工具、错误 JSON)才会返回 JSON-RPC 错误。
5.6 缓存导致的「库存不对」
search_products有 KV 缓存 5 分钟,check_inventory永不缓存。如果你刚改完库存,搜索结果的目录可能还是旧的,但库存查询是实时的。排查时以check_inventory为准。
6. 配好之后:两条链路各司其职
把 Packrift MCP Server 接进 Cline,核心就是记住两条地址各管各的:Packrift 的 MCP 地址原样填进 Cline 的 MCP servers 配置,本地用http://127.0.0.1:8787/mcp,部署后用https://<account>.workers.dev/mcp;Cline 的模型供应商设置里,Base URL 填https://taotoken.net/api,Key 到 TaoToken 创建。TaoToken 在这里只负责给 Cline 这类客户端提供 Key 和 Base URL,不参与 Packrift 的产品搜索、定价与库存逻辑。
验证方式再强调一遍:在 Cline 里让代理调一次search_products(query 用poly mailer)再调check_inventory,如果工具能返回商品与库存 JSON,同一轮对话的模型请求也走通,就说明 MCP 侧与模型侧两条链路都已完成。后面你要做长期编码或 Agent 任务,可以看 Coding Plan;接入和排障相关的细节在接入文档;只是想验证模型通不通,用模型对话就够了。