Files

61 lines
2.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🧩 模块说明:MCP 基础篇 - 构建多模态协作协议服务器
> 📌 核心知识点:MCP协议原理|FastMCP框架使用|Stdio通信|Streamable HTTP服务|工具定义与注册
---
### 1. `s01_stdio_server.py` (标准输入输出MCP服务器)
实现基于标准输入输出的MCP服务器,支持本地进程间通信。
- ✅ 掌握点:
- 使用FastMCP创建MCP服务实例
- 定义和注册工具函数
- 异步工具函数的实现方式
- Stdio通信模式的配置与运行
- 功能:
- 创建名为"WeatherService"的MCP服务器
- 提供`get_weather`工具,模拟查询指定城市天气
- 支持异步调用,FastMCP自动处理协程
- 采用标准输入输出作为通信通道
> 💡 这种模式适合本地进程间通信,程序启动后会等待客户端指令,无默认输出。
---
### 2. `s02_streamable_http_server.py` HTTP协议MCP服务器)
实现基于HTTP协议的MCP服务器,支持远程网络调用。
- ✅ 掌握点:
- FastMCP服务器的网络配置
- HTTP通信模式的实现
- 监听地址和端口的设置
- Streamable HTTP运行模式的使用
- 功能:
- 创建名为"WeatherService"的网络MCP服务器
- 配置监听地址(0.0.0.0)和端口(8001)
- 提供与stdio_server相同的`get_weather`工具
- 自动启动uvicorn服务器,支持远程调用
> 💡 这种模式适合构建可远程访问的MCP服务,便于分布式系统集成。
---
### 🔔 全局注意事项
- **学习路径建议**
`1.`stdio_server`2.`streamable_http_server
- 两个文件均实现了相同的天气查询服务,仅通信方式不同
- Stdio模式下,服务器启动后无输出,需通过MCP客户端连接
- HTTP模式下,服务器启动后会监听指定端口,可通过网络访问
---
### 💡 **扩展建议**
- 尝试添加更多工具函数,扩展服务能力
- 集成真实的天气API,替代模拟数据
- 探索FastMCP的其他配置选项和功能
- 结合m11_mcp_advanced中的客户端实现,构建完整的MCP应用