# mcpTestDemos **Repository Path**: minalin/mcpTestDemos ## Basic Information - **Project Name**: mcpTestDemos - **Description**: 本项目演示了多种基于 FastMCP 框架的 Python 服务端与客户端工具,包括天气查询、订单分析、诗歌生成等功能,支持 SSE、Stdio、FastAPI 等多种通信方式 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-13 - **Last Updated**: 2025-12-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MCP Demos 本项目演示了多种基于 FastMCP 框架的 Python 服务端与客户端工具,包括天气查询、订单分析、诗歌生成等功能,支持 SSE、Stdio、FastAPI 等多种通信方式。 ## 参考资料 **MCP协议官方网站** https://modelcontextprotocol.io/specification/2025-03-26/server/tools **FastMCP官方网站** https://gofastmcp.com/getting-started/welcome ## 安装依赖 建议使用虚拟环境。依赖已在 `requirements.txt` 中列出,安装命令如下: ```bash pip install -r requirements.txt ``` ## 主要脚本说明 ### 1. `weather_server.py` - **功能**:基于 FastMCP,提供中国各地天气查询工具(`get_current_weather`),通过 SSE 方式运行。 - **启动方式**:`python weather_server.py` - **典型用途**:作为服务端,供客户端远程调用天气查询工具。 ### 2. `weather_stdio.py` - **功能**:同样提供天气查询工具,但以 Stdio(标准输入输出)协议运行,适合子进程管道通信。 - **启动方式**:`python weather_stdio.py` - **典型用途**:被其他脚本(如 `sse_tools.py`、`test_stdio.py`)通过管道方式调用。 ### 3. `order_server.py` - **功能**:订单分析服务,提供如月销售总额、消费最高用户、最受欢迎产品、销售员排行榜等工具,基于本地 SQLite 数据库。 - **启动方式**:`python order_server.py` - **典型用途**:分析订单数据,供外部系统或客户端调用。 ### 4. `poem_server.py` - **功能**:诗歌生成服务,基于大模型 API,支持生成指定主题的诗歌。 - **启动方式**:`python poem_server.py` - **典型用途**:作为服务端,供客户端调用生成诗歌或文档摘要。 ### 5. `poem_client.py` - **功能**:演示如何作为客户端调用 `poem_server.py` 上的工具,包括生成诗歌和文档摘要。 - **启动方式**:`python poem_client.py` - **典型用途**:客户端示例,展示如何远程调用 MCP 工具。 ### 6. `test_sse.py` - **功能**:演示如何通过 SSE(Server-Sent Events)方式连接 MCP 服务器,包括初始化连接、获取工具列表等功能。 - **启动方式**:`python test_sse.py` - **典型用途**:SSE 协议通信测试,展示如何建立和维护 SSE 连接,处理服务器推送的消息。 ### 7. `test_client.py` - **功能**:演示如何通过 Python 客户端调用 MCP 服务,包括 SSE 和 Stdio 两种方式。 - **启动方式**:`python test_client.py` - **典型用途**:客户端测试脚本。 ### 8. `test_stdio.py` - **功能**:通过管道方式与 `weather_stdio.py` 通信,发送多条 JSON-RPC 消息并打印响应。 - **启动方式**:`python test_stdio.py` - **典型用途**:Stdio 协议通信测试。 ### 9. `fastapi_mcp_server.py` - **功能**:将 FastAPI 应用与 FastMCP 集成,支持 RESTful API 和 MCP 工具服务,适合 Web 场景。 - **启动方式**:`python fastapi_mcp_server.py` - **典型用途**:Web API 与 MCP 工具服务一体化示例。 ### 10. `es_mcp_server.py` - **功能**:基于 FastMCP 和 Elasticsearch,提供全文搜索工具(`elastic_search`),可在 my_index 索引中对 title 和 content 字段进行高亮搜索。 - **启动方式**:`python es_mcp_server.py` - **典型用途**:作为服务端,供客户端或其他服务进行 Elasticsearch 全文检索。 ### 11. `fastapi_apikey.py` - **功能**:基于 FastAPI,提供 Bearer Token API Key 认证接口,演示如何用 API Key 保护接口并返回用户信息。 - **启动方式**:`python fastapi_apikey.py` - **典型用途**:API Key 认证机制示例,适合需要安全认证的 Web API 场景。 --- 如需详细用法或扩展开发,请参考各脚本内注释和 FastMCP 官方文档。