跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI

自定义 MCP 本地服务搭建:stdio 与 SSE 模式及 AI 工具调用

介绍如何使用 Python 搭建自定义 MCP(Model Context Protocol)本地服务。步骤包括安装 uv 包管理工具、配置 Python 3.13 环境、初始化项目并安装 MCP SDK。通过编写 FastMCP 代码定义工具、资源和提示词,支持 stdio 和 SSE 两种传输模式。最后通过 Cherry Studio 客户端进行联调测试,验证 AI 对自定义功能的调用能力。

Stephaine Walsh发布于 2026/3/29更新于 2026/10/24113 浏览
自定义 MCP 本地服务搭建:stdio 与 SSE 模式及 AI 工具调用

MCP(Model Context Protocol)作为 AI 与外部工具的通信协议,能让大模型精准调用自定义功能,摆脱官方工具的限制。本文将从环境搭建、项目初始化、代码开发到 Cherry Studio 联调,完整实现一个自定义 MCP 服务,最终让 AI 通过该服务完成「1+3=5」的个性化计算,全程步骤清晰、可直接复刻。

一、前置准备:安装 uv 包管理工具(核心环境)

uv 是新一代 Python 包管理工具,比 pip/conda 更快,且能统一管理 Python 版本和项目依赖,是搭建 MCP 服务的最佳选择,仅需一行命令完成安装。

安装命令(PowerShell 执行)
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/uv/releases/download/0.9.27/uv-installer.ps1 | iex"

安装完成后无需额外配置,自动添加系统环境变量 验证安装:在终端输入 uv --version,输出版本号即表示安装成功

二、Python 版本管理:安装 3.13(MCP 推荐版本)

MCP 对 Python 3.13 兼容性更佳,通过 uv 可一键安装并管理该版本,无需担心多版本冲突。

1. 查看当前已安装 Python 版本
uv python list
2. 安装 python 3.13
uv python install 3.13

三、项目初始化:创建 MCP 服务专属工程

  1. 创建项目文件夹并进入 建议按「根目录 - 项目目录」的结构创建,方便后续管理,以 Windows 为例: 创建一个 mcp_server 文件夹,初始化 python 项目
D:\AiMcpProject>cd D:\AiMcpProject
D:\AiMcpProject>cd mcp_server
D:\AiMcpProject\mcp_server> uv init . -p 3.13
Initialized project `mcp-server` at `D:\AiMcpProject\mcp_server`

四、安装 MCP SDK:核心依赖包

MCP SDK 是开发自定义 MCP 服务的基础,提供了 FastMCP 核心类和各类装饰器,支持 uv/pip 两种安装方式,优先推荐 uv(更快、无依赖冲突)。

方式 1:uv 安装(推荐,速度更快)
uv add "mcp[cli]"
方式 2:pip 安装(备用,兼容所有环境)
pip install "mcp[cli]"

五、核心开发:编写自定义 MCP 服务代码

项目初始化后,打开 main.py(PyCharm/VS Code 均可),编写核心业务代码。本次实现 3 个核心功能:个性化加法工具、动态问候资源、多风格问候提示词,且特意将加法结果「多加 1」,用于后续验证服务是否被成功调用。

main.py 内容

完整代码(可直接复制使用)
from mcp.server import FastMCP

# 初始化 MCP 服务,命名为 Demo(服务标识,可自定义)
mcp = FastMCP("Demo")

# 1. 自定义加法工具:核心测试功能(a+b 后多加 1,用于联调验证)


 () -> :
    
     a + b + 






 () -> :
    
     




 () -> :
    
    
    styles = {
        : ,
        : ,
        : ,
    }
    
     


 __name__ == :
    mcp.run(transport=)
@mcp.tool()
# 装饰器标记为 MCP 工具,供 AI 调用
def
add
a: int, b: int
int
"""Add two numbers(函数描述,AI 会识别该描述并调用)"""
return
1
# 个性化逻辑:比正常加法多 1,验证核心标识
# 2. 动态问候资源:通过自定义协议返回个性化内容
@mcp.resource("greeting://{name}")
# 自定义资源协议,支持参数传参
def
get_greeting
name: str
str
"""Get a personalized greeting(资源描述,说明功能用途)"""
return
f"Hello, {name}!"
# 3. 多风格问候提示词:为 AI 生成指定风格的问候语提供模板
@mcp.prompt()
# 装饰器标记为 MCP 提示词工具
def
greet_user
name: str, style: str = "friendly"
str
"""Generate a greeting prompt(生成不同风格的问候提示词)"""
# 定义三种问候风格,默认友好风格
"friendly"
"Please write a warm, friendly greeting"
"formal"
"Please write a formal, professional greeting"
"casual"
"Please write a casual, relaxed greeting"
# 返回匹配的风格提示词,无匹配则使用友好风格
return
f"{styles.get(style, styles['friendly'])} for someone named {name}."
# 启动 MCP 服务:使用标准输入输出传输协议(stdio)本地服务,兼容 Cherry Studio
if
"__main__"
"stdio"
代码核心说明
  1. FastMCP("Demo"):快速初始化 MCP 服务,Demo 为服务名称,在 Cherry Studio 中会显示该名称
  2. 三大核心装饰器: @mcp.tool():标记可调用工具,AI 能直接执行并返回结果(如加法计算) @mcp.resource():标记资源服务,通过自定义协议提供静态 / 动态资源(如个性化问候) @mcp.prompt():标记提示词工具,为 AI 生成指定风格的内容提供模板

六、客户端准备:安装 Cherry Studio(MCP 联调工具)

Cherry Studio 是一款专为 MCP 协议设计的 AI 客户端,能无缝对接自定义 MCP 服务,无需复杂的接口配置,是测试自定义 MCP 服务的最佳工具。

1. 下载安装

官网下载地址:请前往 Cherry Studio 官网下载安装

支持 Windows/macOS 系统,一键安装无附加组件 安装完成后打开,完成基础注册 / 登录(免费可用)

2. 安装 Cherry 内置工具(基础准备)

添加 MCP 服务器

七、关键步骤:Cherry Studio 添加自定义 MCP 服务

输入完后,点保存并打开。

八、联调测试:验证自定义 MCP 服务是否生效

回到首页,输入使用 MCP 1+3 等于多少?发送输出 5 证明已调用到我们自己写的 MCP 服务中。

九、在 Trace 中配置 MCP stdio 模式使用

1. 配置 mcp:
{
  "mcpServers": {
    "mcp-stdio-add": {
      "command": "python",
      "args": ["D:\\AiMcpProject\\mcp_server\\main.py"],
      "env": {}
    }
  }
}
2. 输入 使用 mcp-stdio-add 工具计算 1+3 的和,发送即可

十、运行 MCP SSE 模式

main.py 配置 SSE 和端口 8001

if __name__ == "__main__":
    mcp.settings.port = 8001
    mcp.run(transport="sse")
完整代码(可直接复制使用)
from mcp.server import FastMCP

# Create an MCP server
mcp = FastMCP("Demo")

# Add an addition tool
@mcp.tool()
def add(a: int, b: int) -> int:
    """Add two numbers"""
    return a + b + 1

# 多加 1 测试是走了我们自己的 mcp

# Add a dynamic greeting resource
@mcp.resource("greeting://{name}")
def get_greeting(name: str) -> str:
    """Get a personalized greeting"""
    return f"Hello, {name}!"

# Add a prompt
@mcp.prompt()
def greet_user(name: str, style: str = "friendly") -> str:
    """Generate a greeting prompt"""
    styles = {
        "friendly": "Please write a warm, friendly greeting",
        "formal": "Please write a formal, professional greeting",
        "casual": "Please write a casual, relaxed greeting",
    }
    return f"{styles.get(style, styles['friendly'])} for someone named {name}."

# sse stdio Streamable Http
# Run with streamable HTTP transport
if __name__ == "__main__":
    mcp.settings.port = 8001
    mcp.run(transport="sse")
运行程序:
Trace 配置 MCP SSE:
输入 使用 mcp-stdio-add 工具计算 1+3 的和,发送即可,会输出结果 和 python 端输出接口请求

目录

  1. 一、前置准备:安装 uv 包管理工具(核心环境)
  2. 安装命令(PowerShell 执行)
  3. 二、Python 版本管理:安装 3.13(MCP 推荐版本)
  4. 1. 查看当前已安装 Python 版本
  5. 2. 安装 python 3.13
  6. 三、项目初始化:创建 MCP 服务专属工程
  7. 四、安装 MCP SDK:核心依赖包
  8. 方式 1:uv 安装(推荐,速度更快)
  9. 方式 2:pip 安装(备用,兼容所有环境)
  10. 五、核心开发:编写自定义 MCP 服务代码
  11. 完整代码(可直接复制使用)
  12. 初始化 MCP 服务,命名为 Demo(服务标识,可自定义)
  13. 1. 自定义加法工具:核心测试功能(a+b 后多加 1,用于联调验证)
  14. 装饰器标记为 MCP 工具,供 AI 调用
  15. 个性化逻辑:比正常加法多 1,验证核心标识
  16. 2. 动态问候资源:通过自定义协议返回个性化内容
  17. 自定义资源协议,支持参数传参
  18. 3. 多风格问候提示词:为 AI 生成指定风格的问候语提供模板
  19. 装饰器标记为 MCP 提示词工具
  20. 启动 MCP 服务:使用标准输入输出传输协议(stdio)本地服务,兼容 Cherry Studio
  21. 代码核心说明
  22. 六、客户端准备:安装 Cherry Studio(MCP 联调工具)
  23. 1. 下载安装
  24. 2. 安装 Cherry 内置工具(基础准备)
  25. 七、关键步骤:Cherry Studio 添加自定义 MCP 服务
  26. 八、联调测试:验证自定义 MCP 服务是否生效
  27. 九、在 Trace 中配置 MCP stdio 模式使用
  28. 1. 配置 mcp:
  29. 2. 输入 使用 mcp-stdio-add 工具计算 1+3 的和,发送即可
  30. 十、运行 MCP SSE 模式
  31. 完整代码(可直接复制使用)
  32. Create an MCP server
  33. Add an addition tool
  34. 多加 1 测试是走了我们自己的 mcp
  35. Add a dynamic greeting resource
  36. Add a prompt
  37. sse stdio Streamable Http
  38. Run with streamable HTTP transport
  39. 运行程序:
  40. Trace 配置 MCP SSE:
  41. 输入 使用 mcp-stdio-add 工具计算 1+3 的和,发送即可,会输出结果 和 python 端输出接口请求

更多推荐文章

查看全部
  • 飞算 JavaAI 插件安装与 Spring Boot 项目生成实战
  • JavaScript 简介:跨平台脚本语言入门
  • 前端大数据导出优化:解决 Chrome 内存崩溃问题
  • OpenClaw 多会话管理与子代理功能详解
  • Stability.ai 发布 Stable Video,免费文生视频工具上线
  • AI 辅助多链钱包架构设计与安全实践
  • C++ 继承详解:派生类函数、虚继承原理与菱形继承案例
  • SpringBoot 省级旅游口号管理系统设计与实现
  • skills3/skills 开源技能生态系统全功能解析
  • 首个 Mamba+Transformer 混合架构多模态大模型 LongLLaVA
  • C++ 从入门到精通:完整实战指南
  • HarmonyOS6 RcButton 组件交互逻辑与事件处理机制
  • 基于 YOLOv8 的无人机红外可见光光伏缺陷检测数据集与训练指南
  • 面试题解析:消失的两个数字(位运算解法)
  • 算法实战:位运算解决两数之和、唯一数字与缺失数字
  • Linux/C++进阶:man 手册、GDB 调试与静态动态库详解
  • CentOS 7/8/9 安装 MySQL 8.0+ 完整指南
  • 麦橘超然 WebUI 新手指南:Flux 离线图像生成部署与实战
  • Rust 异步微服务架构最佳实践与反模式规避
  • 人工智能:自然语言处理(NLP)实战应用与优化

相关免费在线工具

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online