新闻详情

新闻详情

首页 / 资讯中心 / 详情

什么是MCP以及如何快速入门使用MCP:用uv+Python搭建Stdio服务并接入TaoToken

发布时间:2026/9/26 3:24:36来源:尧图网络
什么是MCP以及如何快速入门使用MCP:用uv+Python搭建Stdio服务并接入TaoToken
1. 从一次“工具调用失败”说起MCP 到底解决什么问题如果你最近在折腾 LLM 应用大概率遇到过这种场景想让模型查一下数据库、算个复杂公式、调一下公司内部接口结果发现每个模型厂商、每个客户端都有自己的“函数调用”格式换一个 Host 就得重写一遍适配层。MCPModel Context Protocol模型上下文协议就是冲着这个痛点来的——它把“大模型调用外部工具”这件事标准化了你可以把它理解成专为 LLM 交互设计的 Web API 规范。MCP 的核心价值在于统一了大模型调用工具的方法为【大模型】与【外部数据和工具】的【无缝集成】提供了标准化协议和平台。一个 MCP Server 通常暴露三类能力Resources 负责把数据加载进模型上下文类似 GET 端点Tools 负责执行代码或产生副作用类似 POST 端点Prompts 则是可复用的交互模板。Host 是客户端软件比如 Cursor、Cherry StudioServer 是各种工具提供的 MCP 接口每个 Server 对应 Host 里的一个 Client 做一对一通信。传输机制上目前主流有三种Stdio 通过本地进程间通信客户端以子进程形式启动服务器双方用 stdin/stdout 交换 JSON-RPC 消息每条消息以换行符分隔SSE 基于 HTTP 长连接需要 /sse 和 /messages 两个端点正在逐步淘汰Streamable HTTP 是官方推荐的替代方案完全基于标准 HTTP所有消息走 /message 端点服务器可按需把普通请求升级为 SSE 流。对初次接触的 Python 开发者来说Stdio 是最容易上手、也最适合本地隐私数据处理的入口本文就带你用 uv Python 从零搭一个 Stdio MCP Server并接入 TaoToken 完成模型侧联调。2. 前置准备uv 环境与 TaoToken 统一 Key 通道在写代码之前先把两件事准备好Python 项目环境和模型调用通道。环境这块我强烈建议用 uv它比 pip venv 快得多而且能自动管理 Python 版本和依赖锁定对 MCP 这种需要频繁试错的场景特别友好。TaoToken 在这里扮演的角色是“统一 Key / API 通道”。你不需要为每个模型厂商单独申请 Key、单独记 Base URL而是通过一个统一的 API 入口去调用不同模型这对 MCP 联调阶段特别省事——Server 写好后换模型只改一个配置项。你需要先去控制台创建一个 API Key地址是 https://taotoken.net/api-keys 创建完记得复制保存后面配置里要用。API 的基础地址是 https://taotoken.net/api 注意这个地址不带任何查询参数直接作为 base_url 使用。如果你还没注册可以先从官网 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 进去了解整体能力。整个前置准备大概五分钟装 uv、建项目、拿 Key然后就可以进入编码环节了。3. 可复制配置用 uv 初始化项目并编写 Stdio Server先建目录并初始化。打开终端执行下面这几条命令uv 会自动帮你把项目骨架和虚拟环境都准备好mkdir myMCPServer cd myMCPServer uv init . uv add mcp[cli]uv init .会在当前目录生成 pyproject.toml 和基础结构uv add mcp[cli]把 MCP 官方 SDK 加进依赖。生成的 pyproject.toml 大致长这样你可以直接对照检查[project] name mymcpserver version 0.1.0 description A demo MCP server requires-python 3.10 dependencies [ mcp[cli], ] [build-system] requires [hatchling] build-backend hatchling.build接下来把 main.py 改成我们的 Server 骨架。这里用 FastMCP 是最省心的写法它把协议细节都封装好了你只需要关心工具函数本身# main.py from mcp.server.fastmcp import FastMCP # 创建 MCP Server 实例名字会显示在客户端里 mcp FastMCP(Demo) mcp.tool() def add(a: int, b: int) - int: Add two numbers return a b mcp.tool() def square(a: int) - int: square one numbers return a * a # 动态 greeting 资源通过 greeting://{name} 访问 mcp.resource(greeting://{name}) def get_greeting(name: str) - str: Get a personalized greeting return fHello, {name}! if __name__ __main__: mcp.run()注意mcp.tool()装饰的函数docstring 会被当作工具描述暴露给模型所以写清楚一点模型才知道什么时候该调用它。mcp.resource则用于把数据以 URI 形式暴露出去客户端可以按需读取。4. 启动与验证mcp dev 调试 TaoToken 联调请求启动调试模式前确认你的 Node 版本满足要求^20.17.0 || 22.9.0因为 MCP Inspector 依赖它。然后运行mcp dev main.py启动成功后终端会打印一个 Inspector 的访问链接点进去在 Connection 面板选择 Stdio确认能连上。连上后你就能在 Tools 标签页看到 add 和 square 两个工具在 Resources 里看到 greeting 资源。这一步是纯本地验证不涉及任何模型调用先把协议层跑通。协议通了之后接 TaoToken 做模型侧联调。核心是把 base_url 指向 https://taotoken.net/api api_key 用你在控制台创建的那把。下面是一个最小调用示例用 OpenAI 兼容的 SDK 风格演示from openai import OpenAI client OpenAI( base_urlhttps://taotoken.net/api, api_key你的_TaoToken_API_Key, ) resp client.chat.completions.create( modelclaude-sonnet-4-5, messages[ {role: user, content: 帮我算一下 12 加 30 等于多少} ], ) print(resp.choices[0].message.content)如果你用的是支持 MCP 的 Host比如 Cherry Studio配置里把 Server 指向你的 main.py 即可command 填 uv 的绝对路径args 填[run, --with, mcp, mcp, run, /你的路径/myMCPServer/main.py]。配置成功后在对话里问“12 加 30 等于多少”模型会调用 add 工具问“9 的平方”会调用 square。但如果你问“2 的立方”模型不会调用工具因为我们的 Server 里根本没提供求立方的方法——这恰好验证了工具调用是严格按 Server 暴露的能力来的不是模型瞎编。想快速验证模型对话效果也可以直接用模型对话页面 https://taotoken.net/models 试一下确认 Key 和通道都正常。5. 本篇常见报错排查报错一mcp: command not found。说明依赖没装进当前环境。确认你在项目目录下执行并且用uv run mcp dev main.py而不是裸mcp dev main.py让 uv 从项目环境里找命令。报错二Inspector 连不上Connection 一直转圈。九成是 Node 版本不对。执行node -v检查低于 20.17 就升级。另外确认 main.py 里mcp.run()没有被其他代码阻塞。报错三模型不调用工具。先看工具 docstring 是否清晰模型靠它判断用途再看 Host 里 Server 是否显示为已连接、工具列表是否加载出来。如果工具列表是空的说明 Server 启动就失败了回到上一步用 Inspector 单独验证。报错四TaoToken 调用返回 401。检查 api_key 是否复制完整、有没有多余空格确认 base_url 是https://taotoken.net/api不要自己拼/v1之类的后缀。如果还是不行去控制台重新生成一把 Key 试试。报错五Stdio 消息解析失败。多半是你在 stdout 里打印了调试信息。Stdio 模式下 stdout 是协议通道任何print都会污染 JSON-RPC 消息。调试信息请走 stderr或者用 logging 写到文件。6. 下一步把 MCP 接进你的真实工作流Server 跑通只是起点。接下来你可以把真实的业务逻辑塞进mcp.tool()里比如查内部数据库、调公司 API、做文件处理。模型侧继续走 TaoToken 的统一通道换模型、加并发都不用改 Server 代码。如果你打算长期做编码类或 Agent 类项目可以了解一下 Coding Plan https://taotoken.net/coding-plan 它在长会话和工具调用场景下更省心。接入文档在 https://taotoken.net/doc 遇到协议细节可以对照查。整个链路的核心就一句话Server 负责暴露能力TaoToken 负责统一模型通道两边解耦你只管把工具写好。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

FBI介入后OpenAI才得知,其AI智能体曾数月试探政府与大学网站 2026/9/26 4:06:43

FBI介入后OpenAI才得知,其AI智能体曾数月试探政府与大学网站

FBI接到报案时,OpenAI自己还不知道发生了什么。而更让人不安的事实是:这不是它第一次’跑偏’——在这起Hugging Face入侵事件爆发前数月,OpenAI的智能体就已经开始试探政府与大学网站了。 一次从实验室’溢出’的真实攻击 这起事件发生在2…

阅读更多 →
PHP调用Bing搜索实战:API接入、参数调优与源码解析 2026/9/26 4:06:42

PHP调用Bing搜索实战:API接入、参数调优与源码解析

简介:基于PHP的必应Bing网页搜索程序v1.0源码,面向PHP初中级开发者,演示如何通过官方搜索API搭建一套完整的网页搜索应用。资源共27个文件,包含4个PHP脚本(如请求处理、搜索分发、配置类)、5个JS交互脚本、…

阅读更多 →
后端技术栈全解析:这8个核心组件缺一不可 2026/9/26 4:06:42

后端技术栈全解析:这8个核心组件缺一不可

编程语言与Web框架这是后端的根基。Java的Spring Boot、Go的Gin、Python的FastAPI,选哪个看业务场景。语言决定性能上限,框架决定开发效率。别迷信“最好语言”,适合团队和场景才是真理。一个高并发交易系统用Python硬扛,和用Go轻…

阅读更多 →
全志开发板部署LPRNet车牌识别:数据集制作全流程指南 2026/9/26 4:06:29

全志开发板部署LPRNet车牌识别:数据集制作全流程指南

先说个结论:在嵌入式开发板上做车牌识别,最难的反而不是模型训练,而是训练数据和设备实际看到的数据根本不在一个分布里。我自己在全志V3s上跑LPRNet时就栽过跟头——PC上测试精度看着还行,一上板子,摄像头天色一变、角…

阅读更多 →
Matlab黑白图像彩色化实战:从优化着色到深度学习 2026/9/26 4:06:29

Matlab黑白图像彩色化实战:从优化着色到深度学习

做图像处理的同行应该都遇到过这样的需求:手头只有一张黑白老照片或一段监控灰度帧,想给它补上颜色,让画面活起来。黑白图像彩色化这个课题,我在Matlab上折腾过很长时间,从最传统的颜色扩散优化到基于深度学习的端到端…

阅读更多 →
ROS2 节点里每天都在用的 C++ 底层能力,一张表讲清 2026/9/26 4:06:23

ROS2 节点里每天都在用的 C++ 底层能力,一张表讲清

ROS2 节点里每天都在用的 C 底层能力,一张表讲清 摘要:很多人学 ROS2 只盯着节点、话题、服务这些框架层的东西,实际写代码时发现处处卡壳——回调怎么写、消息怎么管、定时器怎么控、多线程怎么锁。其实这些全是 C 语言层的基本功。本文把 S…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉