Agent的安卓时刻到了!MCP协议下的Cursor与Milvus部署指南(TaoToken统一Key接入版)

发布时间:2026/9/28 11:19:29
Agent的安卓时刻到了!MCP协议下的Cursor与Milvus部署指南(TaoToken统一Key接入版)
1. 为什么 MCP 协议下的 Cursor Milvus 值得折腾如果你最近在写 Agent大概率会遇到一个很割裂的场景模型能跟你聊明白 RAG 的原理却没法直接帮你把一条向量写进 Milvus更没法在对话里顺手查一下集合里到底有多少条数据。原因不复杂大模型本身只是“大脑”它缺一套标准化的手和脚去碰真实的数据源。MCP 协议Model Context Protocol解决的就是这件事它把工具调用、数据访问、提示模板抽象成统一接口让 Cursor 这类宿主可以像插 USB 一样挂载 Milvus 这样的外部服务。这篇要落地的场景很具体本地开发环境里用 Cursor 作为 MCP Host通过 mcp-server-milvus 这个 Server 去操作本地 Docker 起的 Milvus 向量库同时把模型调用统一收敛到 TaoToken 的 Key 上避免在 Cursor、脚本、Agent 之间来回换 Key。适合谁看正在做 RAG、语义检索、Agent 记忆模块又不想为每个模块单独写认证和格式转换代码的开发者。整套链路跑通后你可以在 Cursor 的 Agent 模式里直接说“帮我建一个 articles 集合128 维向量字段”它会真的去 Milvus 里执行而不是只给你一段示例代码。我试过把 Milvus 的集合创建、插入、相似度搜索都交给 MCP 走一遍体感上最大的变化是调试成本降了很多。以前改一个字段类型要改 Python 脚本、重启、再手动查现在在对话里就能迭代。下面按“前置准备 → 配置骨架 → 连通性验证 → 向量检索回环 → 排障”的顺序展开每一步都给可复制的命令和配置。2. TaoToken 统一 Key 的前置准备在动 Milvus 之前先把模型侧的入口统一掉。TaoToken 在这里的角色是提供一个兼容 OpenAI 风格的 API 入口Cursor、你的测试脚本、后续的 Agent 服务都可以用同一个 Key 和 Base URL不用为每个工具单独申请凭证。官网入口是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 地址是 https://taotoken.net/api 注意 API 路径不带 UTM 参数。你需要先拿到一个 API Key。登录后进入控制台在 API Keys 页面创建一个新 Key复制出来存到环境变量里别硬编码进配置文件。模型对话的调试入口在 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。如果你后面要长期跑编码类 Agent可以关注 Coding Plan 页面 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 它更适合高频调用的场景。环境变量建议这样设Linux/macOS 写进~/.zshrc或~/.bashrcWindows 用系统环境变量export TAOTOKEN_API_KEYsk-你的key export TAOTOKEN_BASE_URLhttps://taotoken.net/api验证 Key 是否可用直接用 curl 打一次模型列表或对话接口curl -s https://taotoken.net/api/v1/models \ -H Authorization: Bearer $TAOTOKEN_API_KEY | head -c 500返回 JSON 里能看到模型列表就说明 Key 和网络都通了。这一步别跳过后面 Cursor 里如果模型调用失败你至少能确定不是 Key 的问题。3. 可复制的配置骨架settings.json 与 config.tomlCursor 的 MCP 配置和模型配置是两套东西但都建议收敛到项目级或用户级目录方便版本管理。先给一个 settings.json 骨架放在~/.cursor/或项目.cursor/下用于声明模型入口{ ai: { provider: openai-compatible, baseUrl: https://taotoken.net/api, apiKey: ${TAOTOKEN_API_KEY}, model: claude-3-5-sonnet, temperature: 0.2 }, mcp: { enabled: true, configPath: .cursor/mcp.json } }注意apiKey用${TAOTOKEN_API_KEY}引用环境变量Cursor 启动时会读取。如果你的 Cursor 版本不支持变量插值就退而求其次用本地未提交的配置文件别把 Key 推到 Git。再给一个 config.toml 骨架适合你后续用 Python 脚本或 CLI 工具直连 TaoToken 时复用[llm] provider openai-compatible base_url https://taotoken.net/api api_key_env TAOTOKEN_API_KEY model claude-3-5-sonnet timeout 60 [milvus] uri http://127.0.0.1:19530 collection articles dimension 128 [mcp] server_command uv server_args [ --directory, /path/to/mcp-server-milvus/src/mcp_server_milvus, run, server.py, --milvus-uri, http://127.0.0.1:19530 ]这两个文件的分工要清楚settings.json 管 Cursor 自身的模型和 MCP 开关config.toml 管你脚本侧的参数。两者都指向同一个 TaoToken Base URLKey 只存一份环境变量避免多处漂移。4. Cursor MCP 配置片段与 Milvus 服务启动Milvus 用 Docker 起最省事。先拉 standalone 的 compose 文件并启动wget https://github.com/milvus-io/milvus/releases/download/v2.5.4/milvus-standalone-docker-compose.yml -O docker-compose.yml docker-compose up -d docker ps -a确认milvus-standalone、milvus-etcd、milvus-minio三个容器都是 Up 状态。内存建议 16GB 以上硬盘留 100GB低于这个配置在插入向量时容易 OOM。接着 clone mcp-server-milvus 并装依赖git clone https://github.com/zilliztech/mcp-server-milvus.git cd mcp-server-milvus pip3 install uv -i https://mirrors.aliyun.com/pypi/simple uv --version uvx --version先在本地直接跑一次 Server确认能连上 Milvusuv run src/mcp_server_milvus/server.py --milvus-uri http://127.0.0.1:19530没有报连接错误就说明 Server 和 Milvus 通了。然后写 Cursor 的 MCP 配置在项目根目录创建.cursor/mcp.json{ mcpServers: { milvus: { command: /usr/local/bin/uv, args: [ --directory, /Users/you/mcp-server-milvus/src/mcp_server_milvus, run, server.py, --milvus-uri, http://127.0.0.1:19530 ] } } }三个参数要替换成你自己的command是 uv 的绝对路径用which uv查--directory是 clone 下来的 server 目录--milvus-uri是 Milvus 地址本地就是 127.0.0.1:19530。改完重启 Cursor在 MCP 面板里应该能看到 milvus 这个 Server 处于 connected 状态。5. 连通性验证与向量检索回环测试验证分两层先确认 MCP 工具能被 Cursor 调用再确认向量写入和检索能闭环。第一层在 Cursor 里切到 Agent 模式普通 Chat 模式不会触发 MCP输入What are the collections I have in my Milvus DB?如果返回空列表或提示没有集合说明 MCP 链路通了。接着创建集合Create a new collection called articles in Milvus with fields for title (string), content (string), and a vector field (128 dimensions)再查一次集合列表能看到articles就说明写入路径正常。第二层做一次向量检索回环。用 Python 脚本插入几条带向量的数据再通过 MCP 查询。先装依赖pip install pymilvus插入脚本from pymilvus import connections, Collection, FieldSchema, CollectionSchema, DataType import random connections.connect(host127.0.0.1, port19530) fields [ FieldSchema(nameid, dtypeDataType.INT64, is_primaryTrue, auto_idTrue), FieldSchema(nametitle, dtypeDataType.VARCHAR, max_length256), FieldSchema(namecontent, dtypeDataType.VARCHAR, max_length2048), FieldSchema(nameembedding, dtypeDataType.FLOAT_VECTOR, dim128), ] schema CollectionSchema(fields, descriptionarticles) collection Collection(namearticles, schemaschema) collection.create_index( field_nameembedding, index_params{index_type: IVF_FLAT, metric_type: L2, params: {nlist: 128}}, ) data [ [ftitle-{i} for i in range(5)], [fcontent-{i} for i in range(5)], [[random.random() for _ in range(128)] for _ in range(5)], ] collection.insert(data) collection.flush() print(row count:, collection.num_entities)跑完后回到 Cursor Agent 模式输入Search the articles collection in Milvus for the top 3 vectors similar to a random 128-dim vector如果返回了 title 和 content说明“写入 → 索引 → 检索”整条链路闭环。这一步是整个部署里最关键的验证点过了它后面接 RAG 或 Agent 记忆模块就只是业务逻辑的事。6. 本篇常见错排查MCP Server 显示 disconnected九成是command路径写错。用which uv拿到绝对路径别用uv这种依赖 PATH 的写法Cursor 启动时的环境变量和终端不一定一致。Milvus 连接超时先docker ps看容器是否都在跑再telnet 127.0.0.1 19530测端口。如果容器反复重启多半是内存不够把 Docker Desktop 的内存调到 16GB 以上。Agent 模式不调用 MCP确认你在 Cursor 里选的是 Agent 而不是 Chat并且.cursor/mcp.json在项目根目录。有些版本需要重启 Cursor 才会加载新配置。模型调用返回 401检查TAOTOKEN_API_KEY是否在当前 shell 生效Cursor 是否继承了这个环境变量。可以在 Cursor 内置终端里echo $TAOTOKEN_API_KEY验证。如果 Key 没问题确认 Base URL 是https://taotoken.net/api不要多加/v1之外的路径。插入向量报维度不匹配集合建的时候是 128 维插入的数据也必须是 128 维。改维度要删集合重建Milvus 不支持直接改字段维度。uv run 报依赖缺失在 mcp-server-milvus 目录下先uv sync或uv pip install -r requirements.txt确保依赖装全再启动 Server。排障时如果卡在接入层优先看 API Keys 和接入文档如果是模型行为不对去模型对话页面单独测一次如果是长期编码任务频繁断连考虑 Coding Plan 的额度策略。7. 把 Key 和 MCP 收敛成一套可复用的接入方式整套跑下来真正省事的地方在于模型入口只有 TaoToken 一个 Base URLMCP 入口只有 mcp.json 一份配置Milvus 只是一个本地 Docker 服务。三者解耦之后你换模型、换向量库、换宿主工具都不用重写认证和格式转换。API Keys 管理页在 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 模型对话调试在 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 长期编码和 Agent 场景看 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。建议你先把本文的 settings.json 和 config.toml 骨架存成模板下次起新项目直接复制只改 Milvus URI 和集合名十分钟就能把 Agent 检索链路重新拉起来。