MCP使用介绍 MCP消息详解 MCP编程详解
- 2025-12-19 20:22:00
- admin
- 原创 1189
一、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,同时支持get和post请求;
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