【深度学习】大模型MCP工作流原理介绍、编写MCP
https://www.dong-blog.fun/post/2127
有用的资料:
https://modelcontextprotocol.io/llms-full.txt
https://modelcontextprotocol.io/introduction
https://github.com/punkpeye/awesome-mcp-servers/blob/main/README-zh.md#what-is-mcp
https://mcp.so/
https://github.com/modelcontextprotocol/servers
理解 MCP 协议
MCP 是什么?
MCP(Model Context Protocol)是一个开放协议,用于在 AI 应用程序(如 LLMs)与外部数据源和工具之间建立标准化连接。你可以将它类比为 USB-C 接口:统一了不同设备之间的连接方式。
核心概念:
- MCP Server:提供对本地数据、工具、API 的访问。
- MCP Client:由 AI 应用使用,连接到 MCP Server。
- Transport:消息传输机制,如
stdio
或SSE
。 - Tools:定义可被调用的功能(如天气查询、文件操作)。
- Resources:表示可读取的数据资源(如文档、数据库记录)。
- Prompts:支持模板化的提示词管理。
启动 MCP Server
创建一个 MCP Server,暴露一些工具(Tools)。
from mcp.server.fastmcp import FastMCP
import asyncio# 创建 MCP Server 实例
mcp = FastMCP("my-tool-server")# 定义一个 Tool(工具)
@mcp.tool(annotations={"title": "Calculate Sum","description": "Add two numbers together.","readOnlyHint": True,"openWorldHint": False}
)
async def calculate_sum(a: float, b: float) -> str:return str(a + b)# 启动服务器
if __name__ == "__main__":asyncio.run(mcp.start())
AI 应用作为 MCP Client 发起请求
比如用户输入类似这样的指令:
我需要把 3 和 5 加起来,请帮我算一下。
- AI 模型识别到需要调用工具,于是向 MCP Client 发送调用指令。
- MCP Client(比如 Claude Desktop)将这个请求通过 JSON-RPC 协议发送给你的 Python 编写的 MCP Server。
- 你的 Python 服务收到请求后执行 calculate_sum(3, 5),返回结果 “8”。
- 结果再通过 MCP Client 返回给 AI 模型,最终展示给用户。
这个过程是这样的: