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

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

一、MCP使用介绍

1、mcp服务端开发:https://modelcontextprotocol.io/docs/develop/build-server

2、mcp客户端开发:https://modelcontextprotocol.io/docs/develop/build-client

3、mcp调试工具(配置):https://modelcontextprotocol.io/docs/2026-07-28/tools/inspector/configuration

4、mcp调试工具(版本):https://www.npmjs.com/package/@modelcontextprotocol/inspector

5、mcp调试工具(执行):npx -y @modelcontextprotocol/inspector


mcp最新协议:

1、传输协议:https://modelcontextprotocol.io/specification/2026-07-28/basic/transports

2、鉴权规范:https://modelcontextprotocol.io/specification/2026-07-28/basic/authorization

3、消息分类:https://modelcontextprotocol.io/specification/2026-07-28/basic#messages

4、消息模式:https://modelcontextprotocol.io/specification/2026-07-28/basic/patterns

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

6、消息模式:客户端可以发送请求和通知,服务端只能发送响应,以及发送请求关联的通知;


sse传输协议:

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

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

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

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


streamable-http传输协议:

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

2、streamable-http传输协议总结:使用一个端点endpoint,同时支持getpost请求;

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

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

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

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

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

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

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

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

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


二、MCP消息详解

mcp消息序列:

1、client -> "method":"server/discover"
2、client -> "method":"tools/call"
3、client -> "method":"tools/list"
4、client -> "method":"tools/call"


mcp客户端特性:

1、roots,服务端获取可操作的文件系统范围,2026-07-28版本过时;

2、sampling,服务端通过客户端访问大语言模型,2026-07-28版本过时;

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


mcp服务端特性:

1、discover,用于查询服务端支持的协议和能力;

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

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

4、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

mcp服务仓库(推荐使用):https://smithery.ai/servers

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

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

fastmcp安装依赖:pip install fastmcp

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

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

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