MCP是一种开放协议,它标准化了应用程序如何向LLM提供上下文。把MCP想象成人工智能应用程序的USB-C端口。正如USB-C提供了一种将您的设备连接到各种外围设备和附件的标准化方式,MCP提供了一种将人工智能模型连接到不同数据源和工具的标准化方式。
MCP分服务器和客户端:
- 服务器提供MCP定义的功能,主要包括工具(tool)、资源(resource)、提示(prompt)和采样(sampling)。
- 客户端则充当服务器和LLM之前通信的桥梁,告知LLM有哪些MCP功能可用,调用MCP服务器提供的获取返回再提交给LLM。
概念
tool 工具
工具让LLM可以通过用户提供的服务器执行操作,通过工具LLM可以和外部系统交互。
比如需要获取实时新闻,天气等,LLM是不知道这些实时数据的,就可以通过工具来获取。
resource 资源
资源是指可以公开给LLM的数据和内容,可以是任意类型的数据。
比如:
- 文件内容
- 图像内容
- 日志文件
- 等等......
资源是用URI来标识的,比如:
- 本地文件:
file:///home/user/documents/report.pdf
- 数据库:
postgres://database/customers/schema
URI里面的协议和路径由MCP服务器自己实现定义。
客户端需要使用资源的时候用URI发起read
请求来读取资源的内容。
prompt 提示
提示则是预定义的一些提示词,可以是动态的,也可以是静态的。
simping 采样
采样则是服务器通过客户端请求LLM补全内容。
客户端可以对请求和结果进行审核和修改。
这里的服务器指的是通常的应用服务器,比如聊天机器人,数据分析系统。
客户端可以是自定义的或者是MCP客户端。
客户端相当于是一个代理,应用系统不能直接访问LLM而是需要通过客户端来访问,客户端可以对请求和响应内容做控制,从而达到保护数据安全和隐私的作用,主要是可控的交互。
mcp demo
MCP Demo代码库:https://github.com/ilaziness/mcp_demo
包含可执行的demo代码和说明注释。
本文链接:https://www.360us.net/article/106.html