当前位置: 首页 > 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.xdnf.cn/news/1086031.html

相关文章:

  • 针对Exhcnage Server的攻击防范措施
  • Vidwall: 支持将 4K 视频设置为动态桌面壁纸,兼容 MP4 和 MOV 格式
  • 机器学习知识
  • Android kotlin中 Channel 和 Flow 的区别和选择
  • 【Linux操作系统】简学深悟启示录:Linux基本指令
  • 安卓10.0系统修改定制化____如何修改固件 去除开机向导 实现开机直接进入桌面
  • VmWare 安装 mac 虚拟机
  • LLM(大语言模型)能识别图像的核心原因:图像和文本记性特征识别且对其
  • jmm-内存屏障
  • 力扣 hot100 Day37
  • JVM基础01(从入门到八股-黑马篇)
  • vscode配置gitlab仓库详细步骤
  • Transformer模型架构深度讲解
  • web渗透之指纹识别1
  • 前端开发常见问题
  • Java开发面试核心知识点解析:从Redis缓存到内存模型全面解读
  • C++学习笔记01(自学草稿)
  • DeepSeek 帮助自己的工作
  • Spring的Bean原型模式下的使用
  • Java创建型模式---原型模式
  • 【C语言】指针与回调机制学习笔记
  • 【Java安全】反射基础
  • RoboRefer:面向机器人视觉-语言模型推理的空间参考
  • Web后端开发-分层解耦
  • Playfun即将开启大型Web3线上活动,打造沉浸式GameFi体验生态
  • 【ElasticSearch实用篇-01】需求分析和数据制造
  • turborepo 如何解决git管理包过大的问题
  • 病虫害数据集
  • 「Windows/Mac OS」AIGC图片生成视频 ,webui + stable-diffusion环境部署教程
  • AI编程才刚起步,对成熟的软件工程师并未带来质变