MCP使用介绍 MCP消息详解 MCP编程详解

2025-12-19 20:22:00
admin
原创 411
摘要:MCP使用介绍 MCP消息详解 MCP编程详解

一、MCP使用介绍

1、Dify帮助文档:https://docs.dify.ai/zh-hans/introduction

2、mcp生命周期:https://modelcontextprotocol.io/specification/2025-11-25/basic/lifecycle

3、mcp传输协议:https://modelcontextprotocol.io/specification/2025-11-25/basic/transports

4、mcp鉴权规范:https://modelcontextprotocol.io/specification/2025-11-25/basic/authorization

5、mcp调试工具:https://www.npmjs.com/package/@modelcontextprotocol/inspector

6、mcp调试工具运行:npx @modelcontextprotocol/inspector


sse传输协议:

1、sse传输协议使用两个端点endpoint,/sse是get请求,/messages是post请求;

2、/sse接收服务端消息,使用eventstream,收到的第一个消息是客户端发送消息的端点

3、/messages发送消息给服务端,通常是提交请求给服务端,接受请求则返回状态码202;

4、发送消息端点:/messages/?session_id=506a1b89ac6547a582b2027d08fcc392


streamable-http传输协议:

1、streamable-http传输协议优势:使用一个端点,支持客户端同步请求,保持sse特性;

2、streamable-http传输协议总结:客户端同步请求,服务端异步请求,支持相互通知;

3、streamable-http传输协议使用一个端点endpoint,/mcp同时支持post和get请求;

4、客户端发送数据使用post同时接受accept: application/json, text/event-stream

5、客户端发送请求,接受时返回状态码200,可以返回json,可以返回eventstream

6、客户端发送响应和通知接受时返回状态码202,必须返回空数据

7、客户端监听数据使用get,只能接受accept: text/event-stream

8、客户端监听数据,服务端只能发送请求和通知,会话恢复时才能发送上一次客户端请求的响应;

09、会话使用两个请求头:mcp-session-id,mcp-protocol-version,客户端发送报文使用;

10、会话使用两个请求头:"method":"initialize"请求返回,一个位于头部,一个位于内容

11、会话恢复:必须使用get,需要发送Last-Event-ID,ID在会话内唯一

12、接口鉴权:Authorization: Bearer <access-token>


二、MCP消息详解

1、消息分类:https://modelcontextprotocol.io/specification/2024-11-05/basic/messages

2、消息分类:请求、响应、通知,请求响应必须使用唯一ID,通知不能使用ID;


mcp消息序列:

1、client -> "method":"initialize"
2、client -> "method":"notifications/initialized"
3、client -> "method":"tools/list"
4、client -> "method":"tools/call"


mcp实用工具

1、ether -> "method": "ping",检活请求,检测对端是否存活;

2、ether -> "method": "some_method",进度请求,progressToken参数表示一个唯一的活跃操作;

3、ether -> "method": "notifications/cancelled",取消请求,参数包含唯一ID,可以包含取消原因;

4、ether -> "method": "tasks/*",任务相关操作,用于耗时计算任务,用于批量处理任务;


mcp客户端特性:针对本客户端

1、roots,服务端获取可操作的文件系统范围;

2、sampling,服务端通过客户端访问大语言模型;

3、elicitation,服务端通过客户端要求用户输入数据;


mcp服务端特性:

1、tools,model-controlled,执行指定工具,模型驱动选择使用;

2、prompts,user-controlled,获取指定提示词,用户主动选择使用;

3、resources,application-driven,获取指定资源内容,应用驱动选择使用;


mcp服务端小工具:

1、completion/complete,prompts和resources参数自动完成;

2、notifications/message,服务端发送日志到客户端,需要设置日志级别;

3、pagination/cursor,支持分页查询各种资源列表,服务端决定pagesize


三、MCP编程详解

mcp官方sdk:https://github.com/modelcontextprotocol/python-sdk

mcp服务列表:https://github.com/modelcontextprotocol/servers

mcp服务仓库:https://registry.modelcontextprotocol.io

fastmcp代码仓库:https://github.com/jlowin/fastmcp

fastmcp帮助文档:https://gofastmcp.com/getting-started/welcome

mcp-sse代码示例:mcpdemo-sse.py

mcp-stream代码示例:mcpdemo-stream.py

发表评论
评论通过审核之后才会显示。