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

MCP入门实战(极简案例)

MCP简介

MCP(Model Context Protocol,模型上下文协议)2024年11月底由 Antbropic 推出的一种开放标准,旨在统一大型语言模型(LLM)与外部数据源和工具之间的通信协议。
在这里插入图片描述

Function Calling是AI模型调用函数的机制,MCP是一个标准协议,使AI模型与API无缝交互,而Al Agent是一个自主运行的智能系统,利用FunctionCallinq和MCP来分析和执行任务,实现特定目标。

Function Calling 现在基本上被淘汰了,现在几乎全部都用MCP了。

MCP通信机制

MCP 协议支持三种主要的通信机制:

  1. 基于标准输入输出的本地通信(stdio),这个通信协议企业中不会用。
  2. 基于SSE(Server-Sent Events)的远程通信。是一种基于HTTP协议的单向通信协议,允许服务器以事件流的形式实时向客户端推送数据,而无需客户端明确请求。MCP中的SSE Transport结合了SSE技术和HTTP POST
  3. Streamable HTTP是MCP协议推荐的下一代传输机制(2025年3月26日),基于标准HTTP协议实现动态流式升级的传输方式,它移除了专用SSE端点,所有消息通过端点传输,服务器可根据需要将普通HTTP请求升级为SSE流,支持流式响应。
HTTP+SSE的缺陷
  1. 不支持恢复连接
    如果客户端和服务器之间的 sSE 连接中断了,就无法“从端点继续”,只能重新开始新的连接,之前的上下文可能会丢失。

  2. 要求服务器保持高可用的长连接
    服务器必须一直保持一个稳定、不中断的sSE长连接,否则通信就中断。

  3. 服务器只能通过ss发送消息
    服务器无法在已有的请求之外,主动地发送消息给客户端,除了通过专门的/sse 通道,换句话说,它是“单向被动响应”而不是“任意时机推送”。

MCP架构

在这里插入图片描述

MCP工作流程

在这里插入图片描述

代码实战

mcp server
# 导入FastMCP库 - 用于快速构建MCP服务器的Python框架
from fastmcp import FastMCP# 创建MCP服务器实例
# name='test_mcp': 服务器名称(在客户端连接时显示)
# instructions="测试mcp": 服务器功能描述(帮助AI理解服务器用途)
mcp_server = FastMCP(name='test_mcp', instructions="测试mcp")# 使用装饰器注册工具函数
# @mcp_server.tool(): 声明下面的函数是MCP工具
# 工具:让AI模型能调用的外部功能(如计算器、数据库查询等)
@mcp_server.tool()
def 
http://www.xdnf.cn/news/9734.html

相关文章:

  • eNSP企业综合网络设计拓扑图
  • linux有效裁剪视频的方式(基于ffmpeg,不改变分辨率,帧率,视频质量,不需要三方软件)
  • 挖洞日记 | Js中的奇妙旅行
  • AXI 协议补充(二)
  • 从本地到云端:Code App+SSH协议在iPad开发中的性能优化实战
  • VLC-QT 网页播放RTSP
  • 6个月Python学习计划 Day 8 - Python 函数基础
  • 闲鱼到淘宝商品同步的技术实现原理与局限
  • Linux基础开发工具
  • SCL语言两台电机正反转控制程序从选型、安装到调试全过程的详细步骤指南(下)
  • unity编辑器扩展dll形式展示
  • 在supermap idesktop中两块影像设置背景透明后,拼接处会有一条明显的黑线,但是放大后又没有,这个怎么处理
  • Java 对接 Office 365 邮箱全攻略:OAuth2 认证 + JDK8 兼容 + Spring Boot 集成(2025 版)
  • 局域网内文件共享的实用软件推荐
  • 利用海外代理IP,做Twitter2026年全球趋势数据分析
  • Spring AI MCP的几个小问题
  • jar包同目录生成文件
  • Linux环境下多进程Socket通信实现
  • 前端面试核心考点全解析
  • Learning Discriminative Data Fitting Functions for Blind Image Deblurring论文阅读
  • C语言编程--20.合并K个升序列表
  • MFC坦克大战游戏制作
  • 禾纳ATE3156AP/ATE3156AS,P沟道增强型MOSFET,替代AO4805方案
  • 数据可视化的定义和类型
  • 基于多尺度卷积和扩张卷积-LSTM的多变量时间序列预测
  • 1、Pytorch介绍与安装
  • C++ RB_Tree
  • 数据仓库分层 4 层模型是什么?
  • 请问Java方法可以同时即是static又是synchronized的吗?
  • 国内高频混压PCB厂家有哪些?