MCP‑Server(Fast‑MCP)一共两种运行模式:**stdio(本地默认)、SSE‑HTTP(远程网络模式)**,分别对应不同启动方式。结合刚才 Mac 文件读取示例讲解。
2026/7/12 18:51:50 网站建设 项目流程

MCP‑Server(Fast‑MCP)一共两种运行模式:stdio(本地默认)、SSE‑HTTP(远程网络模式),分别对应不同启动方式。结合刚才 Mac 文件读取示例讲解。

一、Stdio 模式(90% 本地场景,Claude‑Desktop、Cursor、本地 Agent 专用)

原理

客户端(Claude‑Desktop)自动把你的 python 脚本启动成子进程,依靠操作系统管道 stdin/stdout 完成 JSON‑RPC 通信,你不能手动在终端里执行python file_mcp_server.py然后保持终端常驻

  1. 代码里默认配置:
if __name__ == "__main__": mcp.run(transport="stdio") # 默认值,可以省略不写
  1. 两种启动方式:
方式 1:由 MCP 客户端启动(正式生产方式,推荐)

Mac 配置claude_desktop_config.json,客户端按需拉起、关闭 MCP 服务,不需要你手动运行脚本:

{ "mcpServers": { "local‑file‑server": { "command": "python3", "args": ["/Users/xxx/code/file_mcp_server.py"] } } }

保存配置文件,重启 Claude‑Desktop 即可;Claude 打开时自动启动这个 python 进程,关闭软件自动杀掉进程。这就是社区 MCP‑Server 的运行方式:使用者只填配置,不用手动运行代码,对应你前面那段英文:社区写好 MCP‑Server,使用者直接配置调用即可。

方式 2:自己写 Python 客户端,手动启动 MCP‑Server(开发调试用)

自己编写 client.py,程序内部调用stdio_client,代码自动启动 server 子进程,不要单独开终端运行 server 脚本。

# client.py async with stdio_client(StdioServerParameters(command="python3",args=["file_mcp_server.py"])) as (read,write):

重点误区:不要新开终端手动执行python3 file_mcp_server.py,单独执行这个脚本之后终端看起来卡住,此时 stdin‑stdout 被终端占用,Claude 无法连接。stdio 模式的 server 进程只能由 MCP‑Client 创建。

开发调试技巧
  1. 日志只能输出到stderrprint()不能使用;print 会污染 stdout,破坏 JSON‑RPC 报文,造成 MCP 连接失败;
  2. Fast‑MCP 内置调试工具:
fastmcp run file_mcp_server.py

它会启动 Inspector 调试页面,查看注册的 tools、调用日志。

二、SSE(HTTP‑流式)模式:远程部署、多客户端访问

当你的 Agent 部署在服务器,需要远程机器调用 MCP 服务,切换成 SSE 模式。

1. 修改代码启动参数

if __name__ == "__main__": # 0.0.0.0允许公网访问 mcp.run(transport="sse",host="0.0.0.0",port=8000)

2. 启动命令(这时可以手动在服务器终端运行)

python3 file_mcp_server.py

服务监听http://服务器IP:8000/sse;远程 MCP‑Client 填入 SSE 地址连接,支持多个客户端同时连接这个 MCP‑Server。

  • stdio:一对一进程绑定,只能本机使用;
  • SSE:基于 HTTP 长连接,支持远程访问、多客户端共用服务实例。

三、后台常驻运行(服务器部署)

Mac/Linux 后台运行 SSE 版 MCP‑Server

# nohup后台运行,日志输出到mcp.log nohup python3 file_mcp_server.py > mcp.log 2>&1 &

四、对应你之前的核心架构思想总结

  1. 传统 API 方式:我们手动启动后端服务,编写/read_file路由,模型调用 API,返回结果全部塞进 LLM 上下文;
  2. MCP 范式:
    • stdio 模式:MCP‑Server 代码写完发布到社区;使用者仅在配置文件填写启动命令,客户端自动拉起进程;开发者写完代码只用写一次,使用者完全不用编写代码;
    • MCP 协议接管上下文,文件读取结果保存在服务端,不用全部喂到大模型,减少上下文窗口压力。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询