MCP介绍及其创建使用
MCP是什么
MCP(Model Context Protocol,模型上下文协议)是由 Anthropic 于 2024 年 11 月推出的一种开放标准协议,旨在统一大型语言模型(LLM)与外部数据源和工具之间的通信方式。
Model Context Protocol (MCP)
MCP 是一个标准协议,就像给 AI 大模型装了一个 “万能接口”,让 AI 模型能够与不同的数据源和工具进行无缝交互。它就像 USB-C 接口一样,提供了一种标准化的方法,将 AI 模型连接到各种数据源和工具。
MCP 旨在替换碎片化的 Agent 代码集成,从而使 AI 系统更可靠,更有效。通过建立通用标准,服务商可以基于协议来推出它们自己服务的 AI 能力,从而支持开发者更快的构建更强大的 AI 应用。开发者也不需要重复造轮子,通过开源项目可以建立强大的 AI Agent 生态。
MCP 的核心概念包括:
- 上下文共享:应用程序可以通过 MCP 向模型提供所需的上下文信息,如文件内容、数据库记录等,增强模型的理解和生成能力。
- 工具暴露:MCP 允许应用程序将功能(如文件读写、API 调用)暴露给模型,模型可以调用这些工具完成复杂任务。
- 可组合的工作流:开发者可以利用 MCP 集成多个服务和组件,构建灵活、可扩展的 AI 工作流。
- 安全性:通过本地服务器运行,MCP 避免将敏感数据上传至第三方平台,确保数据隐私。
MCP 的架构主要由以下组件组成:
- MCP 主机(Host):如 Claude Desktop、IDE 或其他 AI 工具,即大模型的应用。
- MCP 客户端(Client):在主机应用内的连接器,负责与 MCP 服务器建立连接。
- MCP 服务器(Server):实现 MCP 协议的程序,提供特定功能或数据资源,供客户端访问。
- 远程服务:如 Slack、GitHub API 等,MCP 服务器可以连接的外部服务。
通过 MCP,AI 模型可以直接与数据源建立标准化的连接,避免了为每个新数据源定制对接方案的繁琐过程,从而实现真正的互联互通。
MCP(Model Context Protocol)允许你定义和暴露自定义的函数(工具),让大模型调用这些工具来完成特定任务。例如,你可以构建一个函数,让模型查询数据库、读取文件、调用 API,甚至执行本地计算。
MCP 让模型调用工具的方式
定义一个工具(函数)
在本地或远程服务器上编写一个 API 或函数,例如:
1 | def get_weather(city): |
通过 MCP 暴露该工具
通过 MCP 让大模型知道这个工具的存在,并允许它调用。例如,在 Claude 或其他支持 MCP 的环境中,模型可以动态调用你的 get_weather(city) 函数。
模型调用工具
当用户询问「北京的天气如何?」时,模型可以自动调用 get_weather(“北京”),并将结果返回给用户,而不是依赖自身训练的数据。
创建并使用的流程
以get_weather为例
我们首先创建一个.py文件叫weather
在文件中输入下述代码
1 | import requests |
记得安装必要的库
pip install mcp-server
这样,MCP工具就做好了
之后,我们要将这个工具告诉AI
打开一个支持MCP的AI软件或网站 这里我使用vs code中的cline插件
在插件设置中找到MCP Servers -> installed -> Configure MCP Server 点击
会进入到一个叫cline_mcp_settings.json的文档
里面应该是这样的
1 | { |
在mcpServers中插入你写的工具
1 | { |
记得安装必要的库
“weather”: { -> 这个是你的MCP工具的名字 可以自己随便取
“command”: “python” ->这个是告诉他使用 python 命令来运行 Python 解释器 启动服务器
“args”: [
“–directory”, ->这个选项通常用来告诉服务器在哪个路径下查找需要的资源 或者在该目录下运行服务器
“/Volumes/HIKSEMI/mcp_server”, ->这是指定你weather.py的路径
“run”, -> 这个是告诉程序去执行接下来的操作 即运行指定的Python脚本
“weather.py” -> 这是要执行的 Python 脚本的名称
保存好后会在下面看见你的MCP工具已经启用了 在向大模型询问天气时 他会优先查询是否有可用的MCP工具 并按照对应的格式给出答复
- Title: MCP介绍及其创建使用
- Author: 姜智浩
- Created at : 2025-03-30 11:45:14
- Updated at : 2025-03-30 14:49:41
- Link: https://super-213.github.io/zhihaojiang.github.io/2025/03/30/20250330MCP介绍及其创建使用/
- License: This work is licensed under CC BY-NC-SA 4.0.