摘要:大模型,RAG,智能体,工作流这些名词和概念,现在天天在我们耳边被提起。大语言模型(LLM)的应用越来越广泛,各行各业都在使用。
大家好,我是程序员寒山。
大模型,RAG,智能体,工作流这些名词和概念,现在天天在我们耳边被提起。大语言模型(LLM)的应用越来越广泛,各行各业都在使用。
当然随之暴露的问题也越来越多,为了更好地与这些模型进行交互,Model Context Protocol(MCP)应运而生。今天,我们就来深入了解一下 MCP ,即使你是编程小白,也能轻松理解。
MCP 即模型上下文协议,它是专门为大语言模型交互设计的。就像网页有各种 API 来实现不同功能一样,MCP 为 LLM 提供了一种标准化的方式来提供上下文,将提供上下文的任务功能与实际的 LLM 交互分离开来。
资源类似于网页里的 GET 端点,获取JS,image,logo等资源的功能,MCP 服务器通过资源将数据暴露给 LLM 应用。例如,可以获取本地桌面的文件列表信息:
@mcp.resource("dir://desktop")def desktop -> list[str]: """List the files in the user's desktop""" desktop = Path.home / "Desktop" print(desktop); return [str(f) for f in desktop.iterdir]另外,还有 各类的图片,常用数据,文档等内容。
工具类似网页里的 POST 端点,上传一下参数,然后返回给我们需要的结构数据,中间涉及很多计算和处理功能,主要用于执行代码或者产生一些处理结果。以下是一个简单的工具示例:
@mcp.tooldef add(a: int, b: int) -> int: return a + b这个工具可以实现两个整数的相加。
提示是一些可重复使用的模板,用于定义和 LLM 的交互模式。例如,在处理特定任务时,可以定义一个提示模板,每次使用时直接调用,提高效率。
@mcp.promptdef echo_prompt(message: str) -> str: """Create an echo prompt""" return f"Please process this message: {message}"MCP Python SDK 实现了完整的 MCP 规范,让我们可以轻松地构建 MCP 客户端和服务器。
在这个样例中,我们定义了三种类型的功能,包括 工具,资源,和提示。
这样我们的SSE服务器就已经启动了。
MCP服务设置好后,可以看到可用的工具列表
可以看到可用的提示
可以看到可用的资源
MCP 为我们提供了一种标准化的方式来与大语言模型进行交互,而 MCP Python SDK 则让我们可以更加轻松地构建相关的客户端和服务器。
通过资源、工具和提示等核心功能,我们可以更好地管理和利用上下文信息,提高 LLM 的应用效率。
如果你对 MCP 感兴趣,不妨动手试试,开启你的开发之旅!
来源:半月叨