MCP介绍及其创建使用

姜智浩 Lv4

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 的核心概念包括:

  1. 上下文共享:​应用程序可以通过 MCP 向模型提供所需的上下文信息,如文件内容、数据库记录等,增强模型的理解和生成能力。
  2. 工具暴露:​MCP 允许应用程序将功能(如文件读写、API 调用)暴露给模型,模型可以调用这些工具完成复杂任务。​
  3. 可组合的工作流:​开发者可以利用 MCP 集成多个服务和组件,构建灵活、可扩展的 AI 工作流。​
  4. 安全性:​通过本地服务器运行,MCP 避免将敏感数据上传至第三方平台,确保数据隐私。 ​

MCP 的架构主要由以下组件组成:

  1. MCP 主机(Host):​如 Claude Desktop、IDE 或其他 AI 工具,即大模型的应用。​
  2. MCP 客户端(Client):​在主机应用内的连接器,负责与 MCP 服务器建立连接。​
  3. MCP 服务器(Server):​实现 MCP 协议的程序,提供特定功能或数据资源,供客户端访问。​
  4. 远程服务:​如 Slack、GitHub API 等,MCP 服务器可以连接的外部服务。 ​

通过 MCP,AI 模型可以直接与数据源建立标准化的连接,避免了为每个新数据源定制对接方案的繁琐过程,从而实现真正的互联互通。

MCP(Model Context Protocol)允许你定义和暴露自定义的函数(工具),让大模型调用这些工具来完成特定任务。例如,你可以构建一个函数,让模型查询数据库、读取文件、调用 API,甚至执行本地计算。

MCP 让模型调用工具的方式

定义一个工具(函数)
在本地或远程服务器上编写一个 API 或函数,例如:

1
2
3
def get_weather(city):
# 这里可以调用真实的天气 API
return f"{city} 当前气温 25°C,晴天"

通过 MCP 暴露该工具
通过 MCP 让大模型知道这个工具的存在,并允许它调用。例如,在 Claude 或其他支持 MCP 的环境中,模型可以动态调用你的 get_weather(city) 函数。
模型调用工具
当用户询问「北京的天气如何?」时,模型可以自动调用 get_weather(“北京”),并将结果返回给用户,而不是依赖自身训练的数据。

创建并使用的流程

以get_weather为例
我们首先创建一个.py文件叫weather
在文件中输入下述代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import requests
from mcp import MCPServer, tool

class WeatherServer(MCPServer):
@tool
def get_weather(self, city: str) -> str:
"""
获取指定城市的天气信息。
"""
# 调用天气 API 获取数据
api_key = '您的API密钥'
response = requests.get(f'http://api.weatherapi.com/v1/current.json?key={api_key}&q={city}&lang=zh')
data = response.json()
if 'error' in data:
return f"无法获取{city}的天气信息。"
weather = data['current']['condition']['text']
temp_c = data['current']['temp_c']
return f"{city}当前天气:{weather},气温:{temp_c}°C。"

if __name__ == "__main__":
server = WeatherServer()
server.run()

记得安装必要的库

pip install mcp-server

这样,MCP工具就做好了

之后,我们要将这个工具告诉AI
打开一个支持MCP的AI软件或网站 这里我使用vs code中的cline插件
在插件设置中找到MCP Servers -> installed -> Configure MCP Server 点击
会进入到一个叫cline_mcp_settings.json的文档
里面应该是这样的

1
2
3
4
5
{
"mcpServers": {

}
}

在mcpServers中插入你写的工具

1
2
3
4
5
6
7
8
9
10
11
12
13
{
"mcpServers": {
"weather": {
"command": "python",
"args": [
"--directory",
"/Volumes/HIKSEMI/mcp_server",
"run",
"weather.py"
]
}
}
}

记得安装必要的库

“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.