首页 › LLM大语言模型 › Codex专栏 › 吴恩达Codex教程 › 第五章:Codex MCP

第五章:Codex MCP

前言​

MCP 全称是:Model Context Protocol,模型上下文协议 。任何外部工具只要按这个标准做成一个 MCP Server(服务器),就能被所有支持 MCP 的 AI 客户端(如 Codex)直接识别和使用。​

一、手动创建MCP方式​

1、通过百度地图创建查询天气python。​

​

代码块​

Python

​

import httpx​

from fastmcp import FastMCP​

​

初始化 MCP 服务实例​

mcp = FastMCP("BaiduWeatherService")​

​

配置百度天气API地址和你的AK​

BAIDU_WEATHER_API_URL = "https://api.map.baidu.com/weather/v1/"​

BAIDU_MAP_AK = "xxxxxxxxxxxxxxxxxxxxxx" #输入百度地图的key​

​

​

@mcp.tool()​

def get_city_weather(district_id: str) -> str:​

"""​

输入指定的行政区划代码(例如广州市是 440100),返回该城市的实时及未来天气信息。​

注意:百度地图天气API推荐使用区县级行政代码进行查询。​

"""​

params = {​

"ak": BAIDU_MAP_AK,​

"district_id": district_id,​

"data_type": "all", # all表示返回实况+预报​

"coordtype": "bd09ll"​

}​

​

try:​

# 发起 GET 请求​

response = httpx.get(BAIDU_WEATHER_API_URL, params=params, timeout=10)​

data = response.json()​

​

# 百度API状态码为0表示成功​

if data.get("status") == 0 and data.get("result"):​

result = data["result"]​

​

•

导入库:首先执行 from fastmcp import FastMCP,把 MCP 框架加载进来。​

•

创建实例:接着执行 mcp = FastMCP("BaiduWeatherService"),在内存中创建一个名为 "BaiduWeatherService" 的服务对象。​

•

注册能力(核心):当 Python 读到带有 @mcp.tool() 装饰器的函数时,它会立刻把这些函数“登记”到 mcp 这个服务对象里。此时,这些函数还没有被真正执行,只是被贴上了标签,告诉 MCP:“我是工具/资源/提示词,随时待命”。​

•

启动监听:最后执行到 if name == "main": mcp.run(),服务正式在本地 8000 端口启动,开始静静等待外部客户端/codex的连接。​

2、运行MCP​

在终端,或者vscode的codex输入:调用baidu_weather_server,城市名称:广州市。​

​

​

二、通过codex创建MCP​

1.切换到某目录下、输入要实现的需求:​

生成一个MCP服务,这个MCP服务输入什么,就显示/输入您好+输入内容​

​

​

(1)我是通过idea某个java项目下创建MCP。第一次创建,需要经过几分钟的等待。如果是沙箱sandbox安全模式下,要注意屏幕,不时弹出需要确认操作。​

​

​

(2)项目下自动创建一个mcp文件夹,自动创建两个文件​

​

代码块​

Plain Text

hello_server.py和README.md​

​

​

​

README .md​

​

​

hello_server​

2.调用MCP:​

输入命令:调用hello_server 输入内容是:小明​

​

​

​