当前位置: 首页 > news >正文

Python实现MCP Server的完整Demo

mcp server

from fastmcp import FastMCP
import logging# 配置日志记录
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)mcp = FastMCP("DemoServer")@mcp.tool()
async def calculate(a: float, b: float, op: str) -> float:"""数学计算器(支持加减乘除)"""ops = {'+': a + b,'-': a - b,'*': a * b,'/': a / b if b != 0 else float('nan')}result = ops.get(op, float('nan'))logger.info(f"计算: {a}{op}{b}={result}")return result@mcp.resource("greet://{name}")
async def greeting(name: str) -> str:"""个性化问候服务"""return f"您好, {name}! 当前时间:2025-07-07"if __name__ == "__main__":# 启动服务(推荐HTTP模式便于远程调用)mcp.run(transport="streamable-http", port=8000)

mcp client

import asyncio
from mcp.client import HttpClientasync def main():async with HttpClient("http://localhost:8000") as client:# 调用计算工具calc_result = await client.call_tool("calculate", {"a": 5, "b": 3, "op": "*"})print(f"计算结果: {calc_result}")# 访问问候资源greet_result = await client.get_resource("greet://开发者")print(greet_result)asyncio.run(main())

关键配置说明:

  1. 需先安装fastmcp库:uv pip install fastmcp httpx15
  2. 支持三种传输模式:stdio(默认)、sse和streamable-http34
  3. 工具方法需用@mcp.tool()装饰器注册,资源用@mcp.resource()9
  4. 生产环境建议添加类型校验和错误处理
http://www.lryc.cn/news/581913.html

相关文章:

  • 北京-4年功能测试2年空窗-报培训班学测开-第四十四天
  • 《Effective Python》第十二章 数据结构与算法——当精度至关重要时使用 decimal
  • Node.js特训专栏-实战进阶:14.JWT令牌认证原理与实现
  • 《30天打牢数模基础-第一版》(已完结) 需要自取
  • macOS运行python程序遇libiomp5.dylib库冲突错误解决方案
  • 基于Rust红岩题材游戏、汽车控制系统、机器人运动学游戏实例
  • 在内网环境中,Java服务调用PHP接口时报错的排查方法
  • Mac 电脑无法读取硬盘的解决方案
  • AI智能体长期记忆系统架构设计与落地实践:从理论到生产部署
  • 文件操作(java)
  • window显示驱动开发—X 通道解释
  • [shad-PS4] GUI启动游戏 | Qt用户界面 | 三端兼容
  • 鸿蒙生态加持:国产ARM+FPGA工业开发平台——GM-3568JHF
  • SQL Server不同场景批量插入数据的方式详解
  • 深入解析迭代器模式:优雅地遍历聚合对象元素
  • 基于拉普拉斯变换与分离变量法的热传导方程求解
  • 【机器学习笔记 Ⅱ】9 模型评估
  • 标准128位AES/ECB/PKCS5Padding进行加解密
  • Spring Boot登录认证实现学习心得:从皮肤信息系统项目中学到的经验
  • IDEA 中使用 <jsp:useBean>动作指令时,class属性引用无效
  • 构建分布式高防架构实现业务零中断
  • 开源 C# .net mvc 开发(七)动态图片、动态表格和json数据生成
  • 银河麒麟高级服务器操作系统内核升级到最新
  • 今日行情明日机会——20250707
  • 《北京市加快推动“人工智能+医药健康“创新发展行动计划(2025-2027年)》深度解读
  • 使用CocoaPods集成第三方SDK - 从零开始完整指南
  • 算法学习笔记:9.Kruskal 算法——从原理到实战,涵盖 LeetCode 与考研 408 例题
  • docker所占硬盘内存指令
  • Unity 实现与 Ollama API 交互的实时流式响应处理
  • 图解函数调用过程(函数栈帧)