實際影片長度:42:44.000。原文、繁中、雙語可點擊句子跳轉影片。
0:00.000–0:04.160
zh这个我们可以去看一下规则。
0:05.220–0:10.420
zh接下来我们来讲一下Codex MCP核心协议配置与业务系统无缝集成。
0:11.000–0:14.020
zh那么MCP的话叫做模型上下文协议。
0:14.400–0:18.300
zh它主要的话是用于把模型连接到工具和上下文。
0:18.900–0:20.240
zh比如说用的什么场景呢?
0:20.680–0:23.420
zh那之前比如说大家公司里面有一些业务系统。
0:24.060–0:27.900
zh那这种系统的话它其实是不对外提供服务的。
0:27.900–0:30.080
zh仅仅是给内部去用的
0:30.080–0:30.660
zh但是的话
0:30.660–0:32.400
zh我们大模型的话
0:32.400–0:36.720
zh是无法很方便的去访问到这些工具或者服务的
0:36.720–0:37.980
zh那于是乎
0:37.980–0:40.480
zhAnthropic这个公司的话
0:40.480–0:42.700
zh他就提出了一种规范叫做MCP
0:42.700–0:45.300
zh那么为了更方便的
0:45.300–0:49.340
zh把我们的这个大模型和工具上下文连接起来
0:49.340–0:51.620
zh那于是乎就有了这么一个协议
0:51.620–0:53.720
zh他主要解决的一个场景的话
0:53.720–0:57.880
zh就是我们这个模型怎么样跟工具连接的一个问题
0:57.900–0:59.640
zh那这个协议的话
0:59.640–1:01.540
zh主要是通过啊
1:01.540–1:02.880
zh有一下这种方式
1:02.880–1:04.240
zh一个的话是
1:04.240–1:05.840
zhstdio啊
1:05.840–1:06.960
zh这是它的一个协议
1:06.960–1:08.640
zh就是比如说有些服务
1:08.640–1:11.560
zh它是以本地进程的方式去运行的啊
1:11.560–1:13.720
zh我们想以这种方式去访问它啊
1:13.720–1:15.280
zh通过进程间的这种访问
1:15.280–1:18.580
zh就这个只是在我们这个服务器上面运行
1:18.580–1:20.540
zh也不需要做一个网络通信
1:20.540–1:24.080
zh那这个就是它的一个stdio的这种方式啊
1:24.080–1:26.580
zh然后还有一种方式叫做
1:26.580–1:27.520
enHTTP Server
1:27.520–1:29.300
zh那么这种方式的话
1:29.300–1:31.780
zh就是我们常说的这个SSE
1:31.780–1:34.660
zh那么比如说我们的有一些服务
1:34.660–1:36.160
zh它是对外提供的
1:36.160–1:39.040
zh像一些这个查询天气
1:39.040–1:40.040
zh调用一些API
1:40.040–1:41.920
zh这都是公共的一些服务
1:41.920–1:44.920
zh那外部想要访问到我们这个MCP Server的话
1:44.920–1:47.460
zh它得通过一个域名或者IP
1:47.460–1:50.680
zh通过HTTP的这种协议的方式
1:50.680–1:52.100
zh去连接上来
1:52.100–1:53.580
zh所以目前
1:53.580–1:56.180
zh用的比较多的两个场景的话
1:56.180–1:57.840
zh一个就是本地的这种
1:57.840–1:59.500
zhMCP服务器的一个访问
1:59.500–2:00.700
zh还有的话就是一个
2:00.700–2:02.240
zh外部的这种访问啊
2:02.240–2:03.120
zh主要就是这几种
2:03.120–2:06.160
zh那么Codex在这个里面的话啊
2:06.160–2:07.260
zh它也是支持了
2:07.260–2:09.600
zhMCP server的这么一个连接
2:09.600–2:11.320
zh那我们等一下就
2:11.320–2:13.120
zh以实战的方式给大家讲一下
2:13.120–2:14.500
zh首先这个MCP server
2:14.500–2:15.500
zh应该怎么来搭建
2:15.500–2:16.720
zh然后其次的话
2:16.720–2:18.680
zh我们在Codex里面
2:18.680–2:20.860
zh怎么样去调用MCP服务啊
2:20.860–2:23.620
zh包括查看当前有哪些MCP服务
2:23.620–2:27.500
zh那么Codex的话
2:27.500–2:29.640
zh它的一个MCP配置的话
2:29.640–2:31.540
zh其实是存放在一个叫
2:31.540–2:33.340
zhconfig.toml文件里面
2:33.340–2:34.640
zh这个文件的话
2:34.640–2:35.560
zh一般是在
2:35.560–2:36.760
zh大家啊
2:36.760–2:38.500
zh如果你没有设置过Codex
2:38.500–2:40.100
zh它的一个home环境变量的话
2:40.100–2:41.060
zh默认的话
2:41.060–2:43.580
zh它就是在当前的登录用户下面啊
2:43.580–2:44.840
zh当前的登录用户下面
2:44.840–2:46.720
zh有一个叫.codex的一个目录
2:46.720–2:48.300
zh然后这个目录下面有一个叫
2:48.300–2:49.900
zhconfig.toml文件
2:49.900–2:52.220
zh那这个文件的话
2:52.220–2:52.700
zh主要
2:52.700–2:55.080
zh他可以存储一些配置
2:55.080–2:58.640
zh就是Codex这个整个一个应用
2:58.640–3:00.700
zh他的一些核心的一些配置的话
3:00.700–3:01.340
zh都在这个里面
3:01.340–3:02.540
zh那我们的mcp
3:02.540–3:04.420
zh他其实也可以在这个里面去配置
3:04.420–3:06.020
zh那这里面我们就给大家看一下
3:06.020–3:09.420
zh那这个配置文件的话
3:09.420–3:12.540
zh大家就打开你当前登录用户的那个home
3:12.540–3:14.000
zh那个主目录
3:14.000–3:16.580
zh然后找到一个叫.codex的一个目录
3:16.580–3:20.580
zh然后我们就可以看到一个叫config.toml文件
3:20.580–3:22.380
zh那我们这里面去搜一下
3:22.380–3:23.500
zh这里面你看
3:23.500–3:25.580
zh就有我之前配置好的一些
3:25.580–3:27.520
zhMCP服务
3:27.520–3:28.860
zh这是我之前写的一些
3:28.860–3:30.160
zh测试的一些case
3:30.160–3:32.540
zh那在这个里面我们可以看到
3:32.540–3:34.580
zh它首先有一个
3:34.580–3:36.120
zh这个叫做MCP Server的
3:36.120–3:36.860
zh这么一个前缀
3:36.860–3:37.220
zh是吧
3:37.220–3:39.760
zh用这种中括号的这种方式
3:39.760–3:41.700
zh把它去约定好
3:41.700–3:44.240
zh这个就是MCP Server的一个名称
3:44.240–3:46.740
zh然后MCP Server
3:46.740–3:49.280
zh这个是一个STDIO协议的
3:49.280–3:52.200
zh就是本地进程运行的这种MCP服务
3:52.200–3:54.560
zh那么它的一个运行的命令的话
3:54.560–3:55.880
zh就执行一个python命令
3:55.880–3:57.540
zh所以我们这个mcp server
3:57.540–3:59.720
zh它主要就是通过这么一段
3:59.720–4:01.820
enhello mcp server.python
4:01.820–4:03.860
zh这个脚本的方式去运行
4:03.860–4:07.020
zh所以我们等下给它演示的话
4:07.020–4:08.520
zh主要就是基于这个
4:08.520–4:12.080
zh我们的一个本地进程
4:12.080–4:14.740
zh当然我们也可以去写HTTP的这种协议
4:14.740–4:15.560
zh那这样的话
4:15.560–4:18.500
zh你就要用SSE的这么一个通讯协议
4:18.500–4:20.220
zh这个一般是做
4:20.220–4:22.440
zh对外提供API的这种场景
4:22.440–4:23.360
zh就是你的这个
4:23.360–4:26.120
zhMCP服务要对外提供服务
4:26.120–4:26.920
zh要有域名
4:26.920–4:28.160
zh要有公网的一个IP
4:28.160–4:30.740
zh把它发布到这个服务器上面去
4:30.740–4:32.880
zh这个就用的比较多一点
4:32.880–4:34.560
zh如果大家只是本地去
4:34.560–4:37.840
zh做一些MCP服务的一些工具的话
4:37.840–4:39.200
zh那你直接用
4:39.200–4:41.920
zh这个STDIO的这种方式就可以了
4:41.920–4:43.820
zh比如说就是跑一个命令什么样的
4:43.820–4:45.620
zh比如说我们现在起来一个
4:45.620–4:48.060
zhPython的这个服务是吧
4:48.060–4:49.760
zh那我想在本地去运行
4:49.760–4:51.600
zh那你会把它封装成一个
4:51.600–4:52.600
zhMCP的一个server
4:52.600–4:54.560
zh这样的话它就
4:54.560–4:56.440
zh也能跑起来
4:56.440–4:58.620
zh那这个MCP server的话
4:58.620–5:00.480
zh应该是怎么样一个搭建方式呢
5:00.480–5:01.900
zh首先的话
5:01.900–5:05.260
zh这个里面我们要去做一些
5:05.260–5:06.600
zh这个配置
5:06.600–5:08.560
zh那么
5:08.560–5:10.900
zh这个的话大家可以在
5:10.900–5:12.160
zh插件里面啊
5:12.160–5:14.760
zh就是你可以在Cursor或者VSCode里面
5:14.760–5:16.580
zh装一个Codex插件啊
5:16.580–5:18.340
zh我这已经装好了这么一个插件了
5:18.340–5:19.660
zh这个插件的话
5:19.660–5:22.080
zh装好之后大家打开这个codex
5:22.080–5:23.700
zh就在这个里面
5:23.700–5:24.660
zh一般在这个里面
5:24.660–5:25.880
zh我们会找到一个codex
5:25.880–5:27.920
zh找到之后的话
5:27.920–5:28.980
zh接下来就是
5:28.980–5:31.940
zh你看在这里面有一个齿轮的一个图标设置
5:31.940–5:34.340
zh然后设置里面有一个codex search
5:34.340–5:35.460
zh然后我们点开page
5:35.460–5:38.360
zh这样就大家可以找到这个config.toml
5:38.360–5:39.940
zh然后在这个地方你看
5:39.940–5:43.040
zh他还有一个菜单叫做mcp服务器
5:43.040–5:43.920
zh让我们点开
5:43.920–5:45.320
zh你看现在就是我配好的
5:45.320–5:48.700
zh那你可以针对这些个mcp server的话
5:48.700–5:49.920
zh给它启用啊
5:49.920–5:51.320
zh你看启用完了之后
5:51.320–5:54.240
zh其实就是在这个里面改一个配置啊
5:54.240–5:56.280
zh它这个enable true false
5:56.280–5:56.840
zh是吧
5:56.840–5:58.260
zh就相当于在这里改
5:58.260–5:59.920
zh你看我现在都把它启用了
5:59.920–6:01.360
zh然后就是
6:01.360–6:03.700
zh我再重启一下拓展功能
6:03.700–6:05.660
zh
6:05.660–6:07.320
zh这个是重新加载插件啊
6:07.320–6:08.340
zh有时候不生效的话
6:08.340–6:09.660
zh大家就可以去点一下
6:09.660–6:12.180
zh然后呃
6:12.180–6:13.400
zh加载完之后的话
6:13.400–6:15.360
zh这里面啊
6:15.360–6:17.220
zh它这个插件的话会重新激活
6:17.220–6:18.580
zh这里我们要稍微等待一下
6:18.580–6:20.940
zh正常我们是不需要重启的
6:20.940–6:23.120
zh如果大家遇到这个MCP服务
6:23.120–6:24.080
zh加载有问题是吧
6:24.080–6:24.960
zh你可以去点一下
6:24.960–6:27.460
zh重新加载这个拓展插件啊
6:27.460–6:28.980
zh然后在这个里面
6:28.980–6:30.060
zh我们配好之后的话
6:30.060–6:31.680
zh我们继续打开刚刚那个page
6:31.680–6:32.980
zh然后大家看
6:32.980–6:34.580
zh这个是不是都变成false了是吧
6:34.580–6:35.980
zh然后你现在给他
6:35.980–6:39.480
zh我们可以把它全部给他启用掉啊
6:39.480–6:43.420
zh启用掉之后
6:43.420–6:45.500
zh你看我们现在是都变成true
6:45.500–6:45.880
zh是吧
6:45.880–6:48.400
zh这个就是MCP server的一个
6:48.400–6:49.800
zh开启
6:49.800–6:51.860
zh然后还有这个关闭
6:51.860–6:54.560
zh但这个是有图形化界面的
6:54.560–6:56.280
zh大家其实你也可以通过
6:56.280–6:58.040
zh这个终端命令来操作
6:58.040–6:59.920
zh比如说我们现在打开一个
6:59.920–7:00.860
zh终端
7:00.860–7:02.800
zh然后切换到
7:02.800–7:06.100
zh我们切换到第一盘上面去
7:06.100–7:07.140
zh然后
7:07.140–7:09.580
zh之前有一个Codex目录
7:09.580–7:12.240
zh然后在这个里面
7:12.240–7:14.220
zh我们可以输入Codex
7:14.220–7:16.700
zh进去之后
7:16.700–7:18.800
zh我们输入反斜杠啊
7:18.800–7:19.700
zh然后mcp
7:19.700–7:21.580
zh然后大家看啊
7:21.580–7:22.780
zh你说mcp之后
7:22.780–7:26.280
zh你就可以看到我们当前的一些mcp的一些工具是吧
7:26.280–7:28.700
zh但是我现在不都把它关闭了吗
7:28.700–7:31.120
zh所以它是available的啊
7:31.120–7:33.040
zh就是没有没有啊
7:33.040–7:33.920
enno available
7:33.920–7:35.620
zh就是没有可用的啊
7:35.620–7:41.080
zh好那接下来我们就来从零到一给他写一个非常简单的一个mcp server
7:41.080–7:44.420
zh那写mcp server的话啊
7:44.420–7:46.360
zh大家如果是第一次写的话
7:46.360–7:47.400
zh其实也很简单
7:47.400–7:49.120
zh你可以直接让这个
7:49.120–7:52.920
zh这个Codex帮你去写一个mcp server
7:52.920–7:56.100
zh比如说我们现在就建一个文件夹
7:56.100–7:59.440
zh叫做mcp server
8:03.896–8:06.896
zh然后我们在这个目录里面。
8:06.896–8:10.396
zh这里面啊
8:10.396–8:13.196
zh我们就直接在这个Codex里面
8:13.196–8:14.596
zh直接就这样去对话了
8:14.596–8:18.096
zh或者大家你直接在这个里面啊
8:18.096–8:20.976
zh我们之前这个桌面板
8:20.976–8:22.036
zh其实也已经启用了
8:22.036–8:22.436
zh是吧
8:22.436–8:25.756
zh或者大家你在这个终端里面也可以啊
8:25.756–8:27.856
zh那我们就切换到那个目录里面去写吧
8:27.856–8:31.376
zh切换到mcp server这个目录里面
8:31.376–8:32.356
zh我们启动Codex
8:32.356–8:35.396
zh让他把mcp的这个服务啊
8:35.396–8:37.276
zh开发到这个module里面去
8:37.276–8:39.496
zh然后你就这么跟他说
8:39.496–8:42.216
zh我们先写一个简单的小case
8:42.216–8:46.396
zh帮我实现一个mcp
8:46.396–8:47.476
enserver
8:47.476–8:54.096
zh名称叫做file manage
8:54.096–8:58.036
enmanage mcp
8:58.036–9:00.476
zh或者就叫serv
9:00.476–9:03.416
zh这个我就是主要是用来去管理当前文件的
9:03.416–9:07.516
zh那么就是叫 server
9:09.576–9:10.956
zh主要用于
9:11.716–9:13.216
zh我就不加这个 server
9:13.216–9:14.956
zh就叫 file manager 吧
9:14.956–9:16.176
zh主要用于这个
9:19.116–9:19.756
zh本地
9:21.216–9:22.876
zh文件管理
9:23.916–9:27.076
zh就是我可以搭建一个 mcp server
9:27.076–9:28.876
zh然后外面是吧
9:28.876–9:29.676
zh连接进来的话
9:29.676–9:31.456
zh主要可以去操作一些文件
9:31.456–9:32.676
zh那我们就
9:33.416–9:34.616
zh让它实现一下
9:34.616–9:38.356
zh这个就是我们基于这个Codex
9:38.356–9:40.436
zh让它帮我们去开发一个MCP server
9:40.436–9:43.956
zh你看它这个里面的话
9:43.956–9:46.556
zh就会去把这个风格给写清楚
9:46.556–9:50.916
zh就是它会按照MCP server的一个接入方式
9:50.916–9:52.036
zh然后去做一个patch
9:52.036–10:02.316
zh你看它会建一个node.js的一个MCP server
10:02.316–10:04.496
zh所以它是基于node.js
10:04.496–10:05.176
zh这个就实现
10:05.176–10:08.256
zh因为我这里没有指定实现的方式
10:08.256–10:10.076
zh所以大家比如说
10:10.076–10:11.576
zh你如果想用python去实现的话
10:11.576–10:12.296
zh也是可以的
10:12.296–10:15.676
zh因为我之前在这个项目里面
10:15.676–10:18.376
zh立的规范是用node.js的一些技术站
10:18.376–10:19.876
zh所以的话
10:19.876–10:21.776
zh所以它默认帮我们会优先
10:21.776–10:23.536
zh用node.js的一些技术去做
10:23.536–10:26.196
zh所以大家有具体的一个要求的话
10:26.196–10:27.976
zh你也可以去提
10:27.976–10:30.096
zh就是让它按照某个方式
10:30.096–10:32.036
zh你看它默认就是用了
10:32.036–10:34.376
zh这个JRPC
10:34.376–10:36.136
zhSTDIO的这种方式
10:36.136–10:39.036
zh所以这个就是他默认的一个实现方式
10:39.036–10:42.416
zh然后他会写到
10:42.416–10:43.776
zh这个有一个MCP
10:43.776–10:45.436
zhServer的这个目入里面去
10:45.436–10:47.336
zh现在还正在开发
10:47.336–10:52.276
zh所以这个其实是一个
10:52.276–10:55.776
zh你可以看到他整个的一个实现过程
10:55.776–10:57.116
zh其实没有那么麻烦
10:57.116–10:59.816
zh然后其实我们等一下
10:59.816–11:01.076
zh开发完之后的话
11:01.076–11:03.216
zh我们就可以做一个配置了
11:03.216–11:04.316
zh做一个配置了
11:04.316–11:06.836
zh当然大家也其实可以用
11:06.836–11:09.056
zh这个外网的一些MCP server
11:09.056–11:09.456
zh是吧
11:09.456–11:11.996
zh就是别人给我写好的一些这个server
11:11.996–11:12.776
zh行不行呢
11:12.776–11:14.416
zh你看就是我可以把
11:14.416–11:16.456
zh这个免费的这个MCP server
11:16.456–11:17.136
zh给它加进来
11:17.136–11:17.416
zh是吧
11:17.416–11:19.816
zh这个是其他开发者提供的一个
11:19.816–11:21.356
zhcontext7的一个MCP
11:21.356–11:23.936
zh那我们可以通过这个命令横啊
11:23.936–11:26.356
zh给它加入进来
11:26.356–11:32.016
zh这里面我们让他去开发
11:32.016–11:34.596
zh然后我们这里再开一个窗口
11:34.596–11:36.516
zh给大家演示两种
11:36.516–11:38.656
zh一种是我们自己开发
11:38.656–11:42.296
zh还有一种是我们这个自己去用别人的是吧
11:42.296–11:46.516
zh然后切换到这个Codex
11:46.516–11:49.116
zh
11:49.116–11:50.736
zh这个然后我们就给他加一下
11:50.736–11:53.216
zh你看现在已经加成功了
11:53.216–11:55.016
zh然后我们进入到这个Codex
11:55.016–11:57.256
zh输入这个mcp
11:57.256–12:03.556
zh那现在正在加载
12:03.556–12:08.436
zh你看这个刚刚还没有是吧
12:08.436–12:10.336
zh这个是我们刚刚加进来的
12:10.336–12:11.036
zh是不是就有了
12:11.036–12:13.316
zh但是它是未授权的
12:13.316–12:16.056
zh因为这个是一个第三方的一个服务是吧
12:16.056–12:18.576
zh所以这个是没有支持的啊
12:18.576–12:20.916
zh就是你要去用的话
12:20.916–12:22.616
zh它可能要做一些授权处理
12:22.616–12:23.856
zh
12:23.856–12:26.376
zh那你就比如说我们刚刚加进来
12:26.376–12:27.616
zh这个context7的话
12:27.616–12:28.736
zh你要去使用它
12:28.736–12:31.976
zh就比如说调用context
12:31.976–12:35.516
zh你或者你就直接问他
12:35.516–12:37.756
encontext7
12:37.756–12:42.056
zh这个mcp5
12:42.056–12:48.896
zh主要的用途是什么
12:48.896–12:50.496
zh你就直接问他
12:50.496–12:52.696
zh因为你也不知道他的一个用法
12:52.696–12:53.196
zh是吧
12:53.196–12:57.516
zh你看这个是就是给编码助手提供
12:57.516–12:59.816
zh最新的第三方库框架文档
12:59.816–13:00.436
zh示例代码
13:00.436–13:04.696
zh他主要就是比如说去查询一些库文档的一些用法
13:04.696–13:06.636
zh比如说你去问
13:06.636–13:08.816
zh应该怎么样去写
13:08.816–13:09.696
zh是吧
13:09.696–13:13.816
zh那我们就比如说你就我们就随便问他
13:13.816–13:18.756
zh你就把这个问题丢给他
13:20.496–13:28.496
zh调用context7mcp服务
13:28.496–13:31.296
zh然后去把这个问题丢给他就完了
13:31.296–13:34.536
zh那么他就开始可以去调用这个服务了
13:34.536–13:37.836
zh这个就是我们在整个的一个
13:37.836–13:39.896
zhCodex 里面去怎么调用这个服务
13:39.896–13:41.536
zh调用其实很简单
13:41.536–13:44.896
zh就把它正常当工具去使用就可以了
13:44.896–13:46.236
zh你看这个里面
13:46.236–13:49.836
zh我们他查询到的一些内容是不是就出来了
13:49.836–13:52.176
zh这个就是一个MCP服务的一个使用
13:52.176–13:54.236
zh然后我们回头再到这个里面去看一下
13:54.236–13:56.676
zh你看这个服务是不是就进来了是吧
13:56.676–13:58.836
zh方便是启用的一个状态
13:58.836–14:01.236
zh这个就是MCP server 的一个使用啊
14:01.236–14:03.936
zh我们再回头看一下刚刚那个写完的一个
14:03.936–14:07.296
zh我们自己搭的一个MCP server
14:07.296–14:10.796
zh这个该怎么样去配置是吧
14:10.796–14:12.196
zh怎么去使用啊
14:12.196–14:13.996
zh其实也很简单
14:13.996–14:16.676
zh我们看一下这个目录
14:16.676–14:19.676
zh首先在这个你看这个mcp server里面
14:20.736–14:23.916
zh我们这里再给他建个文件夹吧
14:23.916–14:26.616
zh因为他都把它放到里面去了
14:26.616–14:27.976
enmcp server
14:27.976–14:29.716
zh那我专门建一个文件夹
14:29.716–14:32.916
zh叫做file manager
14:32.916–14:34.276
zh是吧
14:34.276–14:36.636
zh然后把它移进去啊
14:39.936–14:41.376
zh然后接下来一个问题就是
14:41.376–14:44.076
zh哎我现在这个mcp写完了是吧
14:44.076–14:46.616
zh那我接下来应该怎么来去用呢
14:46.616–14:47.176
zh对吧
14:47.176–14:50.616
zh这个是基于node.js写的一个mcp服务
14:50.616–14:53.156
zh你看这些个内容
14:53.156–14:54.276
zh他也帮我都实现了
14:54.276–14:56.036
zh接下来这个怎么来用呢
14:56.036–14:57.716
zh那就是配置的问题
14:57.716–14:59.616
zh配置这一块的话
14:59.616–15:03.516
zh大家就是有其实有几种方式
15:03.516–15:04.416
zh第一种
15:04.416–15:06.356
zh如果你对这个配置文件比较熟的话
15:06.356–15:09.216
zh你直接在这个里面去配就可以了
15:09.216–15:10.976
zh就是他这里面就是配置文件
15:10.976–15:12.176
zh你把它复制粘贴一下
15:12.176–15:13.416
zh这个mcp server
15:13.416–15:15.316
zh这里面就相当于就已经生效了
15:15.316–15:15.636
zh是吧
15:15.636–15:16.836
zh但是啊
15:16.836–15:17.936
zh这里这种方式的话
15:17.936–15:19.476
zh大家第一次你如果不熟的话
15:19.476–15:20.636
zh你可能会配置出错
15:20.636–15:22.076
zh那怎么办呢
15:22.076–15:23.216
zh其实也很简单啊
15:23.216–15:25.856
zh你就直接Codex去提问就可以了
15:25.856–15:28.316
zh就是你直接让Codex帮你去配置就完了
15:28.316–15:28.636
zh是吧
15:28.636–15:29.836
zh那我们在
15:29.836–15:31.036
zh因为我刚刚建了一个目录
15:31.036–15:33.336
zh所以我要切换到这个
15:33.336–15:35.156
zh这个里面去啊
15:35.156–15:35.936
enmcp server
15:35.936–15:38.316
zh然后再切换到file manager
15:38.316–15:40.536
zh然后放到外面吧
15:40.536–15:42.056
zh在这个里面啊
15:42.056–15:46.056
zh然后我在这个里面去切换Codex
15:46.056–15:47.216
zh
15:47.216–15:50.456
zh然后接下来你就很简单了啊
15:50.456–15:52.216
zh你就直接这么说
15:52.216–15:54.816
zh请帮我交
15:54.816–15:57.296
enfile
15:57.296–15:59.496
enmanager
15:59.496–16:01.296
zh配置到
16:07.320–16:13.320
zh配置成mc codex的mcp服务就可以了。
16:13.320–16:14.040
zh就这么跟他说
16:14.040–16:15.480
zh他会自动的去分析的啊
16:15.480–16:16.540
zh应该怎么来配
16:16.540–16:18.380
zh加到配置文件里面
16:18.380–16:20.260
zh你看他会去分析啊
16:20.260–16:22.360
zh他不是一下来就直接给你配了啊
16:22.360–16:23.280
zh他得分析一下
16:23.280–16:26.440
zh你当前这个是不是一个标准的MCP server
16:26.440–16:26.960
zh是吧
16:26.960–16:28.480
zh能不能啊
16:28.480–16:29.320
zh能不能用
16:29.320–16:32.200
zh他得分析一下这个基本的逻辑有没有问题吧
16:32.200–16:33.800
zh不是一上来就给你配了啊
16:33.800–16:34.580
zh配完不能用
16:34.580–16:35.940
zh他是不行的
16:35.940–16:38.460
zh所以Codex的一个智能之处就是在于
16:38.460–16:40.460
zh他会帮你去验证啊
16:40.460–16:43.060
zh验证这个MCP server里面到底能不能用
16:43.060–16:43.440
zh是吧
16:43.440–16:44.300
zh如果不能用的话
16:44.300–16:46.480
zh他可能会报一些错误
16:46.480–16:47.660
zh所以这个里面你看
16:47.660–16:49.500
zh他就发现了一些问题啊
16:49.500–16:51.820
zh比如说这个readme少了一层fire manager
16:51.820–16:54.440
zh他会按实际的这个路口来配置
16:54.440–16:55.280
zh是吧
16:55.280–16:59.720
zh然后包括一些执行时候啊
16:59.720–17:00.460
zh可能一些进程
17:00.460–17:02.080
zh可能会有一些权限的一些问题
17:02.080–17:04.020
zh那他都会帮你去处理啊
17:04.020–17:06.180
zh按照他的一个指引去操作就可以了
17:06.180–17:08.720
zh所以整个啊
17:08.720–17:10.740
zh我们其实都可以让AI来帮我们完成
17:10.740–17:11.640
zh但是的话
17:11.640–17:12.700
zh大家需要知道
17:12.700–17:14.180
zh他整个一个逻辑啊
17:14.180–17:16.480
zh比如说这个mcp配置文件在哪里
17:16.480–17:17.400
zh怎么来配
17:17.400–17:18.460
zh应该是怎么一个规范
17:18.460–17:19.960
zh遇到问题之后啊
17:19.960–17:21.980
zh因为AI他其实也不能保证说
17:21.980–17:23.600
zh就都没问题了是吧
17:23.600–17:25.000
zh有些情况下
17:25.000–17:26.260
zh他解决不了的问题
17:26.260–17:28.000
zh还是需要我们人为去排查
17:28.000–17:29.780
zh纠正再给他一些建议的
17:29.780–17:31.760
zh如果大家不理解这个整个的一个
17:31.760–17:32.520
zh配置逻辑的话
17:32.520–17:36.380
zh你后面其实也不太好去解决这些问题啊
17:36.380–17:38.180
zh所以AI确实能帮我们干活
17:38.180–17:40.540
zh但是我们还是需要人为去做一个审查
17:40.540–17:42.520
zh做一些这个指导
17:42.520–17:42.900
zh是吧
17:42.900–17:43.920
zh这样的话
17:43.920–17:46.600
zh我们的这个效率的话才会高
17:46.600–17:49.620
zh你看现在他们是不是就把我们配好了
17:49.620–17:53.140
zh他在这个POM里面145行
17:53.140–17:54.100
zh我们找一下
17:54.100–17:55.740
zh145行
17:55.740–17:57.800
zh你看是不是现在把我们配好了
17:57.800–17:58.840
enFile Manager
17:58.840–18:02.140
zh然后是基于Node.js的方式去运行的
18:02.140–18:04.680
zh然后核心的话就是去执行这个js
18:04.680–18:05.300
zh是吧
18:05.300–18:06.900
zh然后已经启用了
18:06.900–18:09.100
zh并且的话
18:09.100–18:10.640
zh你看他还帮我们验证了
18:10.640–18:12.080
zh这个是最关键的
18:12.080–18:14.020
zh就这个MCP服务到底能不能用
18:14.020–18:16.300
zh后再次帮我们考虑的非常完善
18:16.300–18:18.720
zh保证它是可以正常启动的
18:18.720–18:19.500
zh并且的话
18:19.500–18:20.940
zh这个状态是enabled
18:20.940–18:24.340
zh然后PowerShell拦截了NPM.PS1
18:24.340–18:26.880
zh所以他把它优化一下
18:26.880–18:28.960
zh因为PowerShell会有一个权限
18:28.960–18:31.460
zh就是不能随便去运行
18:31.460–18:34.600
zh所以他会用NPM.CMD
18:34.600–18:36.260
zh因为这个权限的话会更高
18:36.260–18:38.520
zh但是因为咱们这个是管理员模式
18:38.520–18:40.180
zh所以应该也没什么问题
18:40.180–18:43.520
zh然后就是我们再看一下
18:43.520–18:45.160
zh把这些mcp服务
18:45.160–18:47.240
zh看一下刚刚那个已经有没有配置成功
18:47.240–18:49.520
zh你看file manager
18:49.520–18:50.920
zh是不是就OK了
18:50.920–18:53.720
zh然后这个file manager到底能干嘛呢
18:53.720–18:54.780
zh比如说我们自己搭建的
18:54.780–18:56.300
zh大家可能也不知道怎么用是吧
18:56.300–18:58.200
zh因为他这点看全是英文的
18:58.200–18:59.760
zh这些个工具是吧
18:59.760–19:01.160
zh开发人员可能会比较清楚
19:01.160–19:03.520
zh但是技术小白的话可能不知道
19:03.520–19:04.920
zh那你也很简单
19:04.920–19:05.820
zh你就直接问他
19:05.820–19:14.620
zh就是你直接问他
19:14.620–19:17.880
zhmcp服务怎么使用
19:17.880–19:22.760
zh你就直接这么去问他
19:22.760–19:24.980
zh他会教你那些个服务
19:24.980–19:26.020
zh他的作用是什么
19:26.020–19:29.100
zh就是他提供的一些工具
19:29.100–19:30.520
zh应该怎么来调用
19:30.520–19:32.780
zh那这样的话就是
19:32.780–19:34.240
zh我们可以去
19:34.240–19:37.480
zh就是一个说明
19:37.480–19:38.100
zh是吧
19:38.100–19:40.620
zh或者是你直接去用
19:40.620–19:42.400
zh自然语言去对话也是可以的
19:42.400–19:45.120
zh你看它的能力是什么呢
19:45.120–19:46.380
zh查询目录
19:46.380–19:48.960
zh然后读取文本文件
19:48.960–19:49.840
zh写文件
19:49.840–19:51.500
zh创建目录是吧
19:51.500–19:53.300
zh那我们就随便来验证一下
19:53.300–19:54.160
zh来测试一下呗
19:54.160–19:56.480
zh你就直接这么跟他说
19:56.480–19:59.840
zh调用 file manager
19:59.840–20:00.620
zh是吧
20:00.620–20:01.180
zh然后
20:01.180–20:05.020
zh你就直接什么呢
20:05.020–20:06.720
zh查询一下
20:06.720–20:12.540
zh比如说我们现在有这个目录结构
20:12.540–20:12.940
zh是吧
20:12.940–20:14.880
zh这个目录结构这里面
20:14.880–20:16.740
zh然后就随便查询一下
20:16.740–20:17.420
zh洛伊的这个
20:17.420–20:19.820
zh这个Codex目录下面有一个洛伊项目
20:19.820–20:22.240
zh我想把这个项目的这个结构查询出来
20:22.240–20:23.540
zh那你就把这个复制一下
20:23.540–20:24.520
zh是吧
20:24.520–20:27.800
zh目录结构
20:27.800–20:29.480
zh就提到这么一个需求
20:29.480–20:31.340
zh那他就调用这个MCP server
20:31.340–20:32.540
zh帮我们去干这个事情
20:32.540–20:35.220
zh然后我看一下他能不能执行成功啊
20:35.220–20:38.880
zh这个就是我们自己写的一个MCP服务
20:38.880–20:40.620
zh他应该怎么样去用
20:40.620–20:41.300
zh是吧
20:41.300–20:46.560
zh你看现在是基于MCP的一个STDIO协议去调用的
20:46.560–20:47.840
zh所以的话就是
20:47.840–20:51.560
zh他这里会帮你做一些这个调整啊
20:51.560–20:56.600
zh你看首先大家去读取层级的一个目录结构啊
20:56.600–20:58.840
zh你看是不是就出来了
20:58.840–20:59.440
zh是吧
20:59.440–21:01.580
zh但是这里我们看啊
21:01.580–21:04.340
zh它是基于MCP server的方式调用的
21:04.340–21:06.800
zh它不是说用Codex本身的能力啊
21:06.800–21:08.240
zh这个是不一样的
21:08.240–21:10.120
zh我们从这个调用细节里面可以看到
21:10.120–21:10.380
zh你看
21:10.380–21:13.180
zh这是它是用了一个JS的这么一个
21:13.180–21:15.180
zh走了一个
21:15.180–21:17.980
zhJSON RPC的一个server是吧
21:17.980–21:19.740
zh就是一个STDIO的一个服务
21:19.740–21:22.260
zh然后就给它调用成功了
21:22.260–21:22.800
zh是吧
21:22.800–21:24.580
zh这个是列出目录啊
21:24.580–21:26.100
zh然后它其实还有一些能力就是
21:26.100–21:27.820
zh读取文件嘛是吧
21:27.820–21:29.680
zh读取文件写文件啊
21:29.680–21:31.840
zh这个大家可以自己去试一下
21:31.840–21:35.780
zh那比如说我们现在就读一个文件吧
21:35.780–21:37.860
zh查询一个文件
21:37.860–21:40.460
zh读取
21:40.460–21:43.920
zh读取这个目录下面的一个
21:43.920–21:46.200
zh这个我们看一下啊
21:46.200–21:46.840
zhVidami吧
21:46.840–21:49.420
zh读取一个或者是
21:49.420–21:51.260
zh啊需求
21:51.260–21:55.220
zh就就读取这个README看一下
21:57.820–22:03.680
zh现在我们要去读取内容是吧
22:03.680–22:05.480
zh看一下能不能读取啊
22:05.480–22:11.380
zh你看他现在就是帮我们定位到了readfile这个工具是吧
22:11.380–22:14.820
zh那现在他会去启动这么一个啊
22:14.820–22:16.260
zh连接到这么一个服务上去
22:16.260–22:18.220
zh然后去做一个处理啊
22:18.220–22:21.940
zh你看这个是我们一个开源项目
22:21.940–22:23.900
zh在这个项目里面我们就可以看得到
22:23.900–22:26.180
zh他已经读取到了一个文档啊
22:26.180–22:28.820
zh这个是前后段分离的一个项目啊
22:28.820–22:29.760
zh什么什么的是吧
22:29.760–22:32.180
zh这个就是他读到的
22:32.180–22:36.860
zh这个就是我们自己你要去搭建一个MCP server
22:36.860–22:38.340
zh然后去给它配置
22:38.340–22:39.320
zh包括使用
22:39.320–22:41.780
zh包括我们要用第三方的MCP server
22:41.780–22:44.280
zh这个大家都可以去用啊
22:44.280–22:47.720
zh那MCP这个你还可以在外面啊
22:47.720–22:50.980
zh就是你不需要进入到这个Codex里面去啊
22:50.980–22:52.000
zh你可以在外面
22:52.000–22:54.880
zh然后看一下它的一个使用啊
22:54.880–22:56.440
zh那主要的一个
22:56.440–22:59.300
zh就是管理方式的话
22:59.300–23:00.560
zh就是查询是吧
23:00.560–23:01.760
zh然后查询每一个
23:01.760–23:04.120
zh然后去添加啊
23:04.120–23:06.500
zh或者是做一些其他的这个处理的
23:06.500–23:09.000
zh这个就是他的一个使用
23:09.000–23:10.200
zh包括你看这个里面
23:10.200–23:12.020
zhconfig指定配置文件
23:12.020–23:13.380
zh他也跟你说了
23:13.380–23:15.160
zh他默认会加在这个里面的啊
23:15.160–23:16.120
zh但是你也可以指定
23:16.120–23:17.700
zh其他的配置文件去重载他
23:17.700–23:21.520
zh这个就是mcp的一些子命令啊
23:21.520–23:22.560
zh这个大家有需要的话
23:22.560–23:24.680
zh你可以去找到一些命令去用啊
23:24.680–23:29.100
zh所以它的一个使用入口有很多啊
23:29.100–23:33.140
zh我们可以在整个的一个终端里面去用
23:33.140–23:35.320
zh也可以在VSCode啊
23:35.320–23:37.120
zh就是Cursor这种插件里面去用
23:37.120–23:38.040
zh然后的话
23:38.040–23:40.320
zh大家你也可以在这个里面去用啊
23:40.320–23:41.200
zh这个都是OK的
23:41.200–23:44.820
zh因为MCP Server它是这个全局的啊
23:44.820–23:47.600
zh就是它是整个应用级别的
23:47.600–23:48.460
zh就用户级别的
23:48.460–23:49.440
zh所以你在哪里用
23:49.440–23:50.320
zh它都是一样的
23:50.320–23:52.140
zh比如说我们就随便在这个对话里面
23:52.140–23:56.860
zh帮我查询下
23:56.860–23:59.680
enfile manager
24:01.747–24:15.247
zhmanage mcp服务有哪些工具
24:15.247–24:30.807
zh你看他会去搜啊
24:30.807–24:33.747
zh你看配置里面确实有这个
24:33.747–24:37.367
zh就是他是放在这个全局的一个
24:37.367–24:40.207
zh这个配置文件里面的啊
24:40.207–24:41.767
zh所以他肯定是能找到的
24:45.247–24:48.467
zh你看这个是吧
24:48.467–24:50.027
zh我们在任何一个对话里面
24:50.027–24:51.947
zh你都能找到这个mcp工具
24:51.947–24:53.307
zh因为它是全局的
24:53.307–24:55.047
zh它不是某个项目的
24:55.047–24:56.487
zh这个是需要注意的
24:56.487–25:01.727
zh然后大家自己要去写这个stdio的一个所有的话
25:01.727–25:03.667
zh也有一些这个参数
25:03.667–25:04.467
zh是吧
25:04.467–25:05.707
zh就我们前面给他说了
25:05.707–25:07.827
zh首先最关键的就是一个启动的命令
25:07.827–25:09.387
zh比如说你是用node启动的
25:09.387–25:10.487
zh还是用python启动的
25:10.487–25:11.807
zh你有哪些参数
25:11.807–25:13.607
zh包括一些环境变量啊
25:13.607–25:14.347
zh等等的
25:14.347–25:16.327
zh包括一个这个工作目录
25:16.327–25:18.207
zh大家都可以去做一个切换
25:18.207–25:18.687
zh是吧
25:18.687–25:22.447
zh然后如果说你是开发一个
25:22.447–25:24.147
zh这个streaming的播
25:24.147–25:28.987
zh就整个一个流式的这种方式的话
25:28.987–25:32.107
zh那你其实就可以什么呢
25:32.107–25:33.587
zh在这个里面啊
25:33.587–25:38.267
zh你可以去做一些这个细节的一些调整
25:38.267–25:39.627
zh比如说一些这个
25:39.627–25:43.667
zh整个的一个UI是吧
25:43.667–25:46.267
zh它的一个参数应该是怎么样的
25:46.267–25:50.727
zh包括它的一个整个的一个细节啊
25:50.727–25:52.967
zh一些http的一些参数啊
25:52.967–25:54.967
zh包括环境的一些这个参数
25:54.967–25:59.067
zh这个大家都可以去做一些这个设定啊
25:59.067–26:02.227
zh这个是基于这个streamable的啊
26:02.227–26:06.067
zh那其实我们可以给大家开发一个简单的一个mcp
26:06.067–26:06.867
zhserver啊
26:06.867–26:09.327
zh基于这个http的这种协议啊
26:09.327–26:12.267
zh我们可以来实现一下
26:12.267–26:14.627
zh比如说我们现在在这个下面
26:14.627–26:16.667
zh这下面已经有一个fire manager 是吧
26:16.667–26:17.827
zh那我现在再开发一个
26:23.307–26:24.027
encodex
26:26.467–26:29.907
zh比如说帮我开发一个
26:31.827–26:32.547
zhstream的
26:32.547–26:33.907
zhhttp的一个server
26:35.227–26:37.587
zh或者叫mcp server
26:39.667–26:41.107
zh主要实现
26:42.267–26:49.707
zh加减乘除运算
26:49.707–26:52.447
zh就是我这个做一个非常简单的一个事例
26:52.447–26:53.847
zh就你传这个
26:53.847–26:55.307
zh比如说你要计算一个加法
26:55.307–26:56.327
zh你传两个参数是吧
26:56.327–26:56.767
zh一加一
26:56.767–26:59.147
zh然后他最后结果给你返回二
26:59.147–27:02.207
zh就是实现一个非常简单的一个运算的这么一个功能
27:02.207–27:05.527
zh然后这个里面就是我们可以去
27:05.527–27:07.847
zh让他实现一下
27:07.847–27:10.087
zh其实很简单
27:10.087–27:12.147
zh跟那个stdio没有太大区别
27:12.147–27:14.167
zh就是传输协议上的一个区别
27:14.167–27:16.607
zh其他上面的话没有太大区别
27:16.607–27:21.247
zh所以这时候他的一个参数的话
27:21.247–27:25.067
zh就会带上这个HTTP的一个IP地址端口
27:25.067–27:27.367
zh这个大家做一个区分就可以了
27:37.467–27:41.127
zh你看他其实也是还是基于这个整个的一个
27:42.147–27:44.247
zhNode.js去实现的啊
27:44.247–27:46.587
zh你看他会去查询规范啊
27:46.587–27:47.487
zh他不是随便写的
27:47.487–27:50.547
zh他去查询当前MCP官方的一些规范
27:50.547–27:54.267
zh因为我们这个需求是做四则运算嘛
27:54.267–27:54.587
zh是吧
27:54.587–27:57.047
zh所以他要看一下
27:57.047–28:00.447
zh整个MCP的一个规范应该怎么来实现
28:00.447–28:03.587
zh然后的话包括一些网络请求啊
28:03.587–28:04.047
zh是吧
28:04.047–28:06.367
zh这个就啊
28:06.367–28:07.947
zh他一样
28:07.947–28:12.787
zh然后它是我看一下
28:12.787–28:15.347
zh它是还是写到那个file manager里面去了
28:15.347–28:18.127
zh他应该会帮我们建一个新的项目
28:18.127–28:20.027
zh我看一下
28:20.027–28:27.047
zh你看他会建一个单独的建一个calculate
28:27.047–28:28.967
zh就是一个计算的一个mcp server
28:28.967–28:34.587
zh那等他这个跑完之后
28:34.587–28:36.107
zh我们再来验证一下这个服务
28:36.107–28:37.787
zh其实他已经帮我们验好了
28:37.787–28:40.967
zh就现在我们用Codex去跑的话
28:40.967–28:43.547
zh基本上这个一次就过了
28:43.547–28:45.107
zh没有什么太大问题的
28:45.107–28:47.647
zh因为它已经帮你把验证全部做完了
28:47.647–28:49.847
zh这就是Codex它的一个智能之处
28:49.847–28:52.167
zh它这个里面有一个Iteration Loop
28:52.167–28:54.627
zh就它会不断的去循环验证
28:54.627–28:56.907
zh直到帮你把这个问题验证完
28:56.907–28:59.667
zh你看它已经验证通过了
28:59.667–29:01.787
zh所以它写完之后直接就帮你验证了
29:01.787–29:03.687
zh包括它这个细节
29:03.687–29:05.907
zh你看四则运算的这个工具
29:05.907–29:08.587
zh然后包括这个规范
29:08.587–29:09.047
zh是吧
29:09.047–29:10.147
zh你看这个规范
29:10.147–29:11.427
zh它都是参考了
29:11.427–29:15.287
zhAnthropic官方的这个MCP的服务规范去做的
29:15.287–29:17.187
zh你们可以看一下这个规范
29:17.187–29:21.967
zh当然这个页面
29:21.967–29:23.767
zh它这个地址错了
29:23.767–29:26.487
zh你看就是它可以参考官方的这个文档去做的
29:26.487–29:28.207
zh所以这一块是非常智能的
29:28.207–29:30.187
zh然后包括一些主要文件
29:30.187–29:31.247
zh已经验证通过了
29:31.247–29:31.607
zh是吧
29:31.607–29:34.087
zh然后包括这个地址
29:34.087–29:35.887
zh它其实也是可以访问的
29:35.907–29:37.067
zh看一下
29:37.067–29:44.007
zh那我们直接访问这个是报错的
29:44.007–29:45.207
zh我们可以让它配置一下
29:45.207–29:49.347
zh现在我们看一下它有没有配置上去啊
29:49.347–29:49.967
enby manager
29:49.967–29:51.527
zh现在是没有配置的
29:51.527–29:52.667
zh我们让它配置一下
29:52.667–29:55.407
zh帮我把这个
29:55.407–29:59.727
zh配置到
29:59.727–30:01.467
zh就是把这个
30:01.467–30:02.647
zh这个名字
30:02.647–30:03.467
encalculate
30:03.467–30:13.187
zh配置到codex mcp服务中
30:13.187–30:16.447
zh我配置一下
30:16.447–30:17.687
zh然后我们来调用一下
30:17.687–30:19.287
zh看能不能跑得通啊
30:19.287–30:36.847
zh然后这个里面他就开始去搜索了
30:36.847–30:38.487
zh就是他也不知道这个mcp
30:38.487–30:42.947
zh这个streamable的一个HTTP的应该怎么配置
30:42.947–30:44.727
zh所以他这里也是参考官方文档
30:44.727–30:46.327
zh参考文档之后的话
30:46.327–30:48.247
zh然后再去做一个配置的
30:49.287–30:54.967
zh然后他分析了一些版本问题
30:54.967–30:56.107
zh可能会有一些报错
30:56.107–30:56.787
zh对不对
30:56.787–30:58.447
zh然后他会分析一下
30:58.447–30:59.907
zh你看现在
30:59.907–31:03.407
zh你看这个http的这个mcp server
31:03.407–31:04.427
zh加入的方式的话
31:04.427–31:05.467
zh就是用一个地址
31:05.467–31:08.807
zh前面我们那个加入的话
31:08.807–31:09.687
zh是吧
31:09.687–31:10.807
zh他是一个名称
31:10.807–31:12.247
zh或者是一个 path
31:12.247–31:13.787
zh然后现在的话
31:13.787–31:16.047
zh我们现在就是一个地址
31:16.047–31:16.407
zh是吧
31:16.407–31:17.767
zh
31:17.767–31:18.707
zh我们现在给他配置一下
31:18.707–31:20.627
zh看一下能不能运行
31:20.627–31:29.147
zh你看如果我们自己去配的话
31:29.147–31:30.347
zh你就会遇到各种各种的问题
31:30.347–31:32.807
zh那你让Codex帮你去配置的话
31:32.807–31:34.547
zh其实你可以省很多事情
31:34.547–31:38.587
zh在这个里面我们就会让它去做各种优化
31:38.587–31:39.067
zh是吧
31:39.067–31:42.207
zh最终它会保证你这个服务它是可用啊
31:42.207–31:44.247
zh然后因为它配置的时候
31:44.247–31:45.527
zh可能还会出现一些问题
31:45.527–31:48.127
zh你看它这里面还帮你备份了一个配置文件
31:48.127–31:48.427
zh是吧
31:48.427–31:51.307
zh万一把它帮你改坏了
31:51.307–31:52.687
zh然后倒是有问题他能回馈
31:52.687–31:54.807
zh这个就是他比较智能的一点
31:54.807–31:57.667
zh他会自动化帮你去做一个处理的
31:57.667–32:00.907
zh所以他会先备份一下
32:03.600–32:05.505
zh已经写入了。
32:05.505–32:08.680
zh然后你看他会去验证。
32:08.680–32:13.442
zh就是基本上都不需要我们去验证
32:13.442–32:16.300
zh他会自己去测试的。
32:16.300–32:18.740
zh所以等我们去用的时候
32:18.740–32:20.480
zh这个服务基本上没有问题了
32:20.480–32:21.960
zh要是他验证有问题的话
32:21.960–32:25.160
zh他会不断的循环去保证
32:25.160–32:27.200
zh我们最终是没有问题的
32:27.200–32:29.740
zh你看现在已经能解析到了是吧
32:29.740–32:32.760
zh然后他再去检查这个端口
32:32.760–32:35.700
zh端口还没被监听
32:35.700–32:38.020
zh所以他会你看会启动这个node进程
32:38.020–32:40.300
zh就这个服务他会都帮你启动了
32:40.300–32:42.800
zh然后你只需要用就可以了
32:42.800–32:46.020
zh所以整个过程其实就是一个自动化
32:46.020–32:51.860
zh那我们其实就是要去等待一下
32:51.860–32:53.940
zh看一下它的一个实现
32:53.940–32:58.360
zh但是如果大家自己去配的话
32:58.360–32:59.980
zh你光是node这个环境
32:59.980–33:01.800
zh你可能就会报各种各样的权限
33:01.800–33:03.480
zh七八个的问题是吧
33:03.480–33:04.160
zh就很麻烦
33:04.160–33:08.340
zh但是我们有了Codex这个工具之后的话
33:08.340–33:10.880
zh其实整个过程的话会很简单
33:10.880–33:12.200
zh它会帮你自己去排查问题
33:12.200–33:12.880
zh去解决问题
33:12.880–33:17.100
zh所以它其实也是非常智能的
33:17.100–33:19.080
zh然后包括这个过程中
33:19.080–33:19.920
zh报的一些错误
33:19.920–33:20.780
zh我们可以看一下
33:20.780–33:22.880
zh一些日志是吧
33:22.880–33:24.660
zh如果有报错的话
33:24.660–33:26.100
zh它也会帮你输出出来
33:26.100–33:28.420
zh方便大家去做一个排查
33:28.420–33:37.440
zh这个就时间比较久
33:37.440–33:38.620
zh我们先让它跑着
33:38.620–33:42.340
zh就是这个streamed up HTTP的
33:42.340–33:43.020
zh这个server的话
33:43.020–33:45.380
zh大家就需要单独去加一些配置
33:45.380–33:46.760
zh然后的话
33:46.760–33:48.540
zh我们其实还可以在启动的时候
33:48.540–33:50.180
zh配置一些什么超时时间
33:50.180–33:51.920
zh工具调用超时时间
33:51.920–33:52.660
zh是吧
33:52.660–33:53.960
zh然后启用禁用
33:53.960–33:56.400
zh包括你现在
33:56.400–33:57.520
zh比如说这个mcp server
33:57.520–33:58.500
zh提供了很多工具
33:58.500–33:59.600
zh那我现在想
33:59.600–34:00.920
zh有些工具
34:00.920–34:02.440
zh我不能对外使用
34:02.440–34:03.600
zh我现在把它关掉
34:03.600–34:06.480
zh你可以单独去停掉一些工具
34:06.480–34:10.380
zh还有包括一些工具的一个默认审核行为
34:10.380–34:11.360
zh就调用工具
34:11.360–34:12.680
zh有时候是需要确认的
34:12.680–34:13.940
zh如果没有审核的话
34:13.940–34:15.180
zh它是不允许调用的
34:15.180–34:19.120
zh包括一些这个 auth 的一个认证
34:19.120–34:19.480
zh是吧
34:19.480–34:21.080
zh做一些授权啊等等
34:21.080–34:24.060
zh因为有些mcp的server的一个
34:24.060–34:27.420
zh它是带有这个 auth 的一个认证的
34:27.420–34:28.460
zh它要做回调的
34:28.460–34:30.140
zh所以这个里面的话
34:30.140–34:32.700
zh它会默认的要去配一些这个
34:32.700–34:35.560
zh一些端口监听之类的
34:35.560–34:36.540
zh它要做回调啊
34:36.540–34:38.040
zh所以的话
34:38.040–34:40.080
zh因为它要做登录之类的授权嘛
34:40.080–34:41.840
zh所以我们要去配啊
34:41.840–34:44.080
zh这个大家在用一些第三方的
34:44.080–34:45.280
zh一些mcp server的时候
34:45.280–34:47.260
zh经常会有一个跳转啊
34:47.260–34:48.500
zh他最开始要做一个授权
34:48.500–34:50.340
zh所以大家遇到授权的话
34:50.340–34:52.120
zh其实这些东西
34:52.120–34:53.100
zh你都交给codex
34:53.100–34:54.220
zh帮你处理就可以了
34:54.220–34:56.800
zh你看了这个写的好像挺复杂的
34:56.800–34:59.780
zh但其实你就让他自动化了去操作就可以了
34:59.780–35:00.860
zh只是大家需要知道
35:00.860–35:03.700
zh有一个这么 auth 的一个授权认证
35:03.700–35:04.860
zh他要跳转一个地址
35:04.860–35:05.780
zh然后再监听
35:05.780–35:08.180
zh再然后再做一个授权确认
35:08.180–35:11.100
zh无非就是有这么一个流程
35:11.100–35:13.100
zh大家只需要知道有这么个流程就行了
35:13.100–35:15.100
zh然后我们在这个里面
35:15.100–35:17.360
zh可能要去配一个这个回调是吧
35:17.360–35:19.860
zh你要告诉MCP
35:19.860–35:21.380
zh就是这个里面
35:21.380–35:23.780
zh你应该去回调这个服务是吧
35:23.780–35:25.680
zh就它有个第三方有个回调的
35:25.680–35:27.720
zh确认一下它是验证通过的
35:27.720–35:30.820
zh包括我们其实还可以用MCP server
35:30.820–35:31.740
zh去做很多事情
35:31.740–35:34.520
zh就连接到Figma的一些MCP server
35:34.520–35:34.880
zh是吧
35:34.880–35:37.540
zh连接到Chroma的这么一些这个工具
35:37.540–35:41.420
zh然后包括各种各样的工具
35:41.420–35:43.520
zh它都可以通过MCP服务给它集成进来
35:43.520–35:46.660
zh然后其实这个
35:46.660–35:51.080
zh我们也可以去在一些插件里面
35:51.080–35:52.540
zh找到一些MCP server
35:52.540–35:55.720
zh就是官方内置的一些插件里面
35:55.720–35:57.840
zh它其实就给你集成了一些MCP server
35:57.840–36:00.780
zh那大家也可以去用
36:00.780–36:02.940
zh比如说我们在这个里面
36:02.940–36:04.700
zh就可以去找一下
36:04.700–36:08.820
zh这里面这个Codex
36:08.820–36:10.480
zh这里面有设置
36:10.480–36:12.440
zh设置里面有一个插件
36:12.440–36:15.480
zh这个插件里面有些它就是MCP server
36:15.480–36:18.620
zh有些是纯粹的工具调用
36:18.620–36:20.340
zh有些是就是MCP server
36:20.340–36:23.080
zh你像这个Figma做设计的是吧
36:23.080–36:25.960
zh但是有些的话
36:25.960–36:27.460
zh它是需要登录才能使用的
36:27.460–36:29.800
zh所以这个具体大家去
36:29.800–36:30.940
zh你要去登录账号才行
36:30.940–36:32.940
zh但你也可以把那个
36:32.940–36:35.060
zhmcp的一个配置拿到
36:35.060–36:36.520
zh你自己去配也是可以的
36:36.520–36:38.180
zh就是你可以用插件的方式去用
36:38.180–36:39.780
zh也可以自己去配啊
36:39.780–36:40.840
zh这个都是没有问题的
36:40.840–36:43.960
zh我看一下刚刚那个ok没有
36:43.960–36:47.540
zh还在写
36:47.540–36:50.680
zh这个是不是卡住了
36:50.680–36:51.600
zh卡的有点久了
36:55.440–36:57.260
zh他这个服务是不是已经启动了
36:57.260–36:59.520
zh但是没有给他生效啊
36:59.520–36:59.980
zh看一下
36:59.980–37:07.860
zh打开这个mcp server
37:07.860–37:09.980
zh看一下这个有没有连接成功啊
37:09.980–37:12.440
zhmcp服务器
37:12.440–37:14.480
zh你看是已经成功的
37:14.480–37:15.640
zh已经成功
37:15.640–37:17.820
zh它这个端口可能是已经启动了
37:17.820–37:19.680
zh那我就直接看调用一下
37:19.680–37:24.420
zh它这个服务是已经启动了
37:24.420–37:27.260
zh那我们应该就直接可以用了
37:27.260–37:28.740
zh调用
37:28.740–37:32.980
zh要用这个Current
37:32.980–37:37.900
zh帮我计算下
37:37.900–37:40.060
zh1加1
37:40.060–37:41.560
zh1加2
37:49.500–37:51.100
zh这个应该是起一个服务
37:51.100–37:52.700
zh它在这里等着
37:52.700–37:54.540
zh那我们单独在另外里面
37:54.540–37:55.340
zh也会去写吧
37:58.740–38:01.640
zh我把这个消息
38:01.640–38:03.960
zh在这个里面
38:03.960–38:05.340
zh这里因为阻塞了
38:05.340–38:08.640
zh我们换一个窗口再来调用
38:08.640–38:09.960
zh这里他起来
38:09.960–38:11.660
zh把那个mcp server给他启动了
38:11.660–38:13.160
zh所以的话就是
38:13.160–38:16.400
zh在这个里面
38:16.400–38:19.100
zh我们看到的是一个服务已经启动了
38:19.100–38:22.980
zh这个是已经调用成功了吗
38:22.980–38:25.900
zhmcp服务
38:28.740–38:33.900
enscript
38:33.900–38:35.780
zh这个计算结果应该是成功的吧
38:35.780–38:37.580
zh然后我来查询一下
38:37.580–38:38.580
zh查询一下
38:38.580–38:50.180
zhcalculate mcp服务可用的工具有哪
38:50.180–38:52.980
zh哪些
38:58.740–39:11.280
zh当前对话是没有这个服务的
39:11.280–39:12.960
zh但是全局里面是有这个的
39:12.960–39:15.040
zh我们让他可以去搜一下
39:21.040–39:22.080
zh大家看看
39:22.080–39:23.740
zh你看这个里面是不是就有了
39:23.740–39:24.360
zh是吧
39:24.360–39:26.480
zh本地配置
39:26.480–39:28.220
zh应该是应该是这个名词
39:28.220–39:30.820
zh我们看一下这个配置里面有没有生效
39:31.414–39:34.414
zh你看,这是不是就已经生效了。
39:34.414–39:36.414
zh你看这里就是URL。
39:36.414–39:38.414
zh其实可以对比一下。
39:38.414–39:42.414
zh刚刚那个stdio的这个连接方式它是传输行的。
39:42.414–39:45.354
zh然后到了这个concurrent
39:45.354–39:47.874
zh它是streamable HTTP的
39:47.874–39:50.274
zh流式的这种SSE的这种方式
39:50.274–39:50.914
zh那么在这个里面
39:50.914–39:54.174
zh它就变成了一个URL的一种方式了
39:54.174–39:55.254
zh这里大家需要注意一下
39:55.254–39:57.974
zh这是两种协议的一个区别
39:57.974–39:59.874
zh然后我们可以啊
39:59.874–40:00.514
zh调用
40:04.614–40:06.774
zh计算
40:06.774–40:07.154
en5
40:10.174–40:10.914
zh和5
40:12.414–40:16.354
zh加减乘除
40:16.354–40:22.094
zh分别是
40:22.094–40:27.234
zh多少
40:27.234–40:28.694
zh就是我现在想
40:28.694–40:31.174
zh调用这个四个工具是吧
40:31.174–40:33.154
zh我想调用这四个工具
40:33.154–40:35.174
zh然后都帮我去
40:35.174–40:36.014
zh这个
40:36.014–40:38.174
zh校验一下是吧
40:38.174–40:39.474
zh校验一下
40:42.414–40:47.874
zh你看他现在就开始去调用了是吧
40:47.874–40:49.994
zh加减乘除都给他调用一下
40:49.994–40:52.054
zh刚刚那个其实没调用成功了
40:52.054–40:54.954
zh刚刚那个是他走的网络的这种方式
40:54.954–40:57.774
zh就是去检索的这种方式
40:57.774–41:00.814
zh然后现在我们要真正的去调用这个mcp服务
41:00.814–41:04.114
zh你看分别跑加减乘除是吧
41:04.114–41:05.574
zh这样就看得更加明确一些
41:05.574–41:08.134
zh你看成功了啊
41:08.134–41:10.194
zh加减乘除没有问题
41:10.194–41:12.654
zh这个服务它现在是中断的
41:12.654–41:14.174
zh那我给它中断一下
41:14.174–41:15.194
zh我再来调用
41:15.194–41:18.034
zh刚刚那个服务它是挂在这里
41:18.034–41:20.854
zh不是卡死了
41:20.854–41:22.194
zh它是有一个进程
41:22.194–41:24.194
zh相当于写了一个服务在这里等着
41:24.194–41:27.574
zh但这个服务它是后端运行的
41:27.574–41:28.814
zh我们可以把它这个
41:28.814–41:30.994
zh等待的地方给它去掉
41:30.994–41:32.734
zh然后在这个里面
41:32.734–41:34.494
zh我们其实也可以
41:34.494–41:36.714
zh特地可以调用了
41:36.714–41:38.834
zh这个服务它会一直停在这里
41:40.194–42:05.654
zh你让他是访问这个地址是吧
42:05.654–42:07.594
zh然后包括一些接口请求啊
42:07.594–42:10.294
zh然后你看这个是event stream
42:10.294–42:13.094
zh就是sse的这个流式的传输
42:13.094–42:15.734
zh然后给结果
42:15.734–42:16.414
zh没有问题
42:16.414–42:17.034
zh
42:17.034–42:20.854
zh这个就是stream的http的这种协议
42:20.854–42:22.654
zh它的一个调用逻辑
42:22.654–42:25.134
zh就大家回头你可以去验证一下
42:25.134–42:26.674
zh这两种方式它的一个区别
42:26.674–42:27.874
zh我们可以对比一下
42:27.874–42:31.774
zh然后大家自己也可以去装一些mcp的server
42:31.774–42:33.834
zh我刚刚其实已经带大家去装了一个
42:33.834–42:36.734
zh大家自己也可以去网上找到一些mcp server
42:36.734–42:38.494
zh给它安装一下就可以了
42:38.494–42:41.414
zh其实这个也比较好理解
0:00.000–0:04.160
这个我们可以去看一下规则。
0:05.220–0:10.420
接下来我们来讲一下Codex MCP核心协议配置与业务系统无缝集成。
0:11.000–0:14.020
那么MCP的话叫做模型上下文协议。
0:14.400–0:18.300
它主要的话是用于把模型连接到工具和上下文。
0:18.900–0:20.240
比如说用的什么场景呢?
0:20.680–0:23.420
那之前比如说大家公司里面有一些业务系统。
0:24.060–0:27.900
那这种系统的话它其实是不对外提供服务的。
0:27.900–0:30.080
仅仅是给内部去用的
0:30.080–0:30.660
但是的话
0:30.660–0:32.400
我们大模型的话
0:32.400–0:36.720
是无法很方便的去访问到这些工具或者服务的
0:36.720–0:37.980
那于是乎
0:37.980–0:40.480
Anthropic这个公司的话
0:40.480–0:42.700
他就提出了一种规范叫做MCP
0:42.700–0:45.300
那么为了更方便的
0:45.300–0:49.340
把我们的这个大模型和工具上下文连接起来
0:49.340–0:51.620
那于是乎就有了这么一个协议
0:51.620–0:53.720
他主要解决的一个场景的话
0:53.720–0:57.880
就是我们这个模型怎么样跟工具连接的一个问题
0:57.900–0:59.640
那这个协议的话
0:59.640–1:01.540
主要是通过啊
1:01.540–1:02.880
有一下这种方式
1:02.880–1:04.240
一个的话是
1:04.240–1:05.840
stdio啊
1:05.840–1:06.960
这是它的一个协议
1:06.960–1:08.640
就是比如说有些服务
1:08.640–1:11.560
它是以本地进程的方式去运行的啊
1:11.560–1:13.720
我们想以这种方式去访问它啊
1:13.720–1:15.280
通过进程间的这种访问
1:15.280–1:18.580
就这个只是在我们这个服务器上面运行
1:18.580–1:20.540
也不需要做一个网络通信
1:20.540–1:24.080
那这个就是它的一个stdio的这种方式啊
1:24.080–1:26.580
然后还有一种方式叫做
1:26.580–1:27.520
HTTP Server
1:27.520–1:29.300
那么这种方式的话
1:29.300–1:31.780
就是我们常说的这个SSE
1:31.780–1:34.660
那么比如说我们的有一些服务
1:34.660–1:36.160
它是对外提供的
1:36.160–1:39.040
像一些这个查询天气
1:39.040–1:40.040
调用一些API
1:40.040–1:41.920
这都是公共的一些服务
1:41.920–1:44.920
那外部想要访问到我们这个MCP Server的话
1:44.920–1:47.460
它得通过一个域名或者IP
1:47.460–1:50.680
通过HTTP的这种协议的方式
1:50.680–1:52.100
去连接上来
1:52.100–1:53.580
所以目前
1:53.580–1:56.180
用的比较多的两个场景的话
1:56.180–1:57.840
一个就是本地的这种
1:57.840–1:59.500
MCP服务器的一个访问
1:59.500–2:00.700
还有的话就是一个
2:00.700–2:02.240
外部的这种访问啊
2:02.240–2:03.120
主要就是这几种
2:03.120–2:06.160
那么Codex在这个里面的话啊
2:06.160–2:07.260
它也是支持了
2:07.260–2:09.600
MCP server的这么一个连接
2:09.600–2:11.320
那我们等一下就
2:11.320–2:13.120
以实战的方式给大家讲一下
2:13.120–2:14.500
首先这个MCP server
2:14.500–2:15.500
应该怎么来搭建
2:15.500–2:16.720
然后其次的话
2:16.720–2:18.680
我们在Codex里面
2:18.680–2:20.860
怎么样去调用MCP服务啊
2:20.860–2:23.620
包括查看当前有哪些MCP服务
2:23.620–2:27.500
那么Codex的话
2:27.500–2:29.640
它的一个MCP配置的话
2:29.640–2:31.540
其实是存放在一个叫
2:31.540–2:33.340
config.toml文件里面
2:33.340–2:34.640
这个文件的话
2:34.640–2:35.560
一般是在
2:35.560–2:36.760
大家啊
2:36.760–2:38.500
如果你没有设置过Codex
2:38.500–2:40.100
它的一个home环境变量的话
2:40.100–2:41.060
默认的话
2:41.060–2:43.580
它就是在当前的登录用户下面啊
2:43.580–2:44.840
当前的登录用户下面
2:44.840–2:46.720
有一个叫.codex的一个目录
2:46.720–2:48.300
然后这个目录下面有一个叫
2:48.300–2:49.900
config.toml文件
2:49.900–2:52.220
那这个文件的话
2:52.220–2:52.700
主要
2:52.700–2:55.080
他可以存储一些配置
2:55.080–2:58.640
就是Codex这个整个一个应用
2:58.640–3:00.700
他的一些核心的一些配置的话
3:00.700–3:01.340
都在这个里面
3:01.340–3:02.540
那我们的mcp
3:02.540–3:04.420
他其实也可以在这个里面去配置
3:04.420–3:06.020
那这里面我们就给大家看一下
3:06.020–3:09.420
那这个配置文件的话
3:09.420–3:12.540
大家就打开你当前登录用户的那个home
3:12.540–3:14.000
那个主目录
3:14.000–3:16.580
然后找到一个叫.codex的一个目录
3:16.580–3:20.580
然后我们就可以看到一个叫config.toml文件
3:20.580–3:22.380
那我们这里面去搜一下
3:22.380–3:23.500
这里面你看
3:23.500–3:25.580
就有我之前配置好的一些
3:25.580–3:27.520
MCP服务
3:27.520–3:28.860
这是我之前写的一些
3:28.860–3:30.160
测试的一些case
3:30.160–3:32.540
那在这个里面我们可以看到
3:32.540–3:34.580
它首先有一个
3:34.580–3:36.120
这个叫做MCP Server的
3:36.120–3:36.860
这么一个前缀
3:36.860–3:37.220
是吧
3:37.220–3:39.760
用这种中括号的这种方式
3:39.760–3:41.700
把它去约定好
3:41.700–3:44.240
这个就是MCP Server的一个名称
3:44.240–3:46.740
然后MCP Server
3:46.740–3:49.280
这个是一个STDIO协议的
3:49.280–3:52.200
就是本地进程运行的这种MCP服务
3:52.200–3:54.560
那么它的一个运行的命令的话
3:54.560–3:55.880
就执行一个python命令
3:55.880–3:57.540
所以我们这个mcp server
3:57.540–3:59.720
它主要就是通过这么一段
3:59.720–4:01.820
hello mcp server.python
4:01.820–4:03.860
这个脚本的方式去运行
4:03.860–4:07.020
所以我们等下给它演示的话
4:07.020–4:08.520
主要就是基于这个
4:08.520–4:12.080
我们的一个本地进程
4:12.080–4:14.740
当然我们也可以去写HTTP的这种协议
4:14.740–4:15.560
那这样的话
4:15.560–4:18.500
你就要用SSE的这么一个通讯协议
4:18.500–4:20.220
这个一般是做
4:20.220–4:22.440
对外提供API的这种场景
4:22.440–4:23.360
就是你的这个
4:23.360–4:26.120
MCP服务要对外提供服务
4:26.120–4:26.920
要有域名
4:26.920–4:28.160
要有公网的一个IP
4:28.160–4:30.740
把它发布到这个服务器上面去
4:30.740–4:32.880
这个就用的比较多一点
4:32.880–4:34.560
如果大家只是本地去
4:34.560–4:37.840
做一些MCP服务的一些工具的话
4:37.840–4:39.200
那你直接用
4:39.200–4:41.920
这个STDIO的这种方式就可以了
4:41.920–4:43.820
比如说就是跑一个命令什么样的
4:43.820–4:45.620
比如说我们现在起来一个
4:45.620–4:48.060
Python的这个服务是吧
4:48.060–4:49.760
那我想在本地去运行
4:49.760–4:51.600
那你会把它封装成一个
4:51.600–4:52.600
MCP的一个server
4:52.600–4:54.560
这样的话它就
4:54.560–4:56.440
也能跑起来
4:56.440–4:58.620
那这个MCP server的话
4:58.620–5:00.480
应该是怎么样一个搭建方式呢
5:00.480–5:01.900
首先的话
5:01.900–5:05.260
这个里面我们要去做一些
5:05.260–5:06.600
这个配置
5:06.600–5:08.560
那么
5:08.560–5:10.900
这个的话大家可以在
5:10.900–5:12.160
插件里面啊
5:12.160–5:14.760
就是你可以在Cursor或者VSCode里面
5:14.760–5:16.580
装一个Codex插件啊
5:16.580–5:18.340
我这已经装好了这么一个插件了
5:18.340–5:19.660
这个插件的话
5:19.660–5:22.080
装好之后大家打开这个codex
5:22.080–5:23.700
就在这个里面
5:23.700–5:24.660
一般在这个里面
5:24.660–5:25.880
我们会找到一个codex
5:25.880–5:27.920
找到之后的话
5:27.920–5:28.980
接下来就是
5:28.980–5:31.940
你看在这里面有一个齿轮的一个图标设置
5:31.940–5:34.340
然后设置里面有一个codex search
5:34.340–5:35.460
然后我们点开page
5:35.460–5:38.360
这样就大家可以找到这个config.toml
5:38.360–5:39.940
然后在这个地方你看
5:39.940–5:43.040
他还有一个菜单叫做mcp服务器
5:43.040–5:43.920
让我们点开
5:43.920–5:45.320
你看现在就是我配好的
5:45.320–5:48.700
那你可以针对这些个mcp server的话
5:48.700–5:49.920
给它启用啊
5:49.920–5:51.320
你看启用完了之后
5:51.320–5:54.240
其实就是在这个里面改一个配置啊
5:54.240–5:56.280
它这个enable true false
5:56.280–5:56.840
是吧
5:56.840–5:58.260
就相当于在这里改
5:58.260–5:59.920
你看我现在都把它启用了
5:59.920–6:01.360
然后就是
6:01.360–6:03.700
我再重启一下拓展功能
6:03.700–6:05.660
6:05.660–6:07.320
这个是重新加载插件啊
6:07.320–6:08.340
有时候不生效的话
6:08.340–6:09.660
大家就可以去点一下
6:09.660–6:12.180
然后呃
6:12.180–6:13.400
加载完之后的话
6:13.400–6:15.360
这里面啊
6:15.360–6:17.220
它这个插件的话会重新激活
6:17.220–6:18.580
这里我们要稍微等待一下
6:18.580–6:20.940
正常我们是不需要重启的
6:20.940–6:23.120
如果大家遇到这个MCP服务
6:23.120–6:24.080
加载有问题是吧
6:24.080–6:24.960
你可以去点一下
6:24.960–6:27.460
重新加载这个拓展插件啊
6:27.460–6:28.980
然后在这个里面
6:28.980–6:30.060
我们配好之后的话
6:30.060–6:31.680
我们继续打开刚刚那个page
6:31.680–6:32.980
然后大家看
6:32.980–6:34.580
这个是不是都变成false了是吧
6:34.580–6:35.980
然后你现在给他
6:35.980–6:39.480
我们可以把它全部给他启用掉啊
6:39.480–6:43.420
启用掉之后
6:43.420–6:45.500
你看我们现在是都变成true
6:45.500–6:45.880
是吧
6:45.880–6:48.400
这个就是MCP server的一个
6:48.400–6:49.800
开启
6:49.800–6:51.860
然后还有这个关闭
6:51.860–6:54.560
但这个是有图形化界面的
6:54.560–6:56.280
大家其实你也可以通过
6:56.280–6:58.040
这个终端命令来操作
6:58.040–6:59.920
比如说我们现在打开一个
6:59.920–7:00.860
终端
7:00.860–7:02.800
然后切换到
7:02.800–7:06.100
我们切换到第一盘上面去
7:06.100–7:07.140
然后
7:07.140–7:09.580
之前有一个Codex目录
7:09.580–7:12.240
然后在这个里面
7:12.240–7:14.220
我们可以输入Codex
7:14.220–7:16.700
进去之后
7:16.700–7:18.800
我们输入反斜杠啊
7:18.800–7:19.700
然后mcp
7:19.700–7:21.580
然后大家看啊
7:21.580–7:22.780
你说mcp之后
7:22.780–7:26.280
你就可以看到我们当前的一些mcp的一些工具是吧
7:26.280–7:28.700
但是我现在不都把它关闭了吗
7:28.700–7:31.120
所以它是available的啊
7:31.120–7:33.040
就是没有没有啊
7:33.040–7:33.920
no available
7:33.920–7:35.620
就是没有可用的啊
7:35.620–7:41.080
好那接下来我们就来从零到一给他写一个非常简单的一个mcp server
7:41.080–7:44.420
那写mcp server的话啊
7:44.420–7:46.360
大家如果是第一次写的话
7:46.360–7:47.400
其实也很简单
7:47.400–7:49.120
你可以直接让这个
7:49.120–7:52.920
这个Codex帮你去写一个mcp server
7:52.920–7:56.100
比如说我们现在就建一个文件夹
7:56.100–7:59.440
叫做mcp server
8:03.896–8:06.896
然后我们在这个目录里面。
8:06.896–8:10.396
这里面啊
8:10.396–8:13.196
我们就直接在这个Codex里面
8:13.196–8:14.596
直接就这样去对话了
8:14.596–8:18.096
或者大家你直接在这个里面啊
8:18.096–8:20.976
我们之前这个桌面板
8:20.976–8:22.036
其实也已经启用了
8:22.036–8:22.436
是吧
8:22.436–8:25.756
或者大家你在这个终端里面也可以啊
8:25.756–8:27.856
那我们就切换到那个目录里面去写吧
8:27.856–8:31.376
切换到mcp server这个目录里面
8:31.376–8:32.356
我们启动Codex
8:32.356–8:35.396
让他把mcp的这个服务啊
8:35.396–8:37.276
开发到这个module里面去
8:37.276–8:39.496
然后你就这么跟他说
8:39.496–8:42.216
我们先写一个简单的小case
8:42.216–8:46.396
帮我实现一个mcp
8:46.396–8:47.476
server
8:47.476–8:54.096
名称叫做file manage
8:54.096–8:58.036
manage mcp
8:58.036–9:00.476
或者就叫serv
9:00.476–9:03.416
这个我就是主要是用来去管理当前文件的
9:03.416–9:07.516
那么就是叫 server
9:09.576–9:10.956
主要用于
9:11.716–9:13.216
我就不加这个 server
9:13.216–9:14.956
就叫 file manager 吧
9:14.956–9:16.176
主要用于这个
9:19.116–9:19.756
本地
9:21.216–9:22.876
文件管理
9:23.916–9:27.076
就是我可以搭建一个 mcp server
9:27.076–9:28.876
然后外面是吧
9:28.876–9:29.676
连接进来的话
9:29.676–9:31.456
主要可以去操作一些文件
9:31.456–9:32.676
那我们就
9:33.416–9:34.616
让它实现一下
9:34.616–9:38.356
这个就是我们基于这个Codex
9:38.356–9:40.436
让它帮我们去开发一个MCP server
9:40.436–9:43.956
你看它这个里面的话
9:43.956–9:46.556
就会去把这个风格给写清楚
9:46.556–9:50.916
就是它会按照MCP server的一个接入方式
9:50.916–9:52.036
然后去做一个patch
9:52.036–10:02.316
你看它会建一个node.js的一个MCP server
10:02.316–10:04.496
所以它是基于node.js
10:04.496–10:05.176
这个就实现
10:05.176–10:08.256
因为我这里没有指定实现的方式
10:08.256–10:10.076
所以大家比如说
10:10.076–10:11.576
你如果想用python去实现的话
10:11.576–10:12.296
也是可以的
10:12.296–10:15.676
因为我之前在这个项目里面
10:15.676–10:18.376
立的规范是用node.js的一些技术站
10:18.376–10:19.876
所以的话
10:19.876–10:21.776
所以它默认帮我们会优先
10:21.776–10:23.536
用node.js的一些技术去做
10:23.536–10:26.196
所以大家有具体的一个要求的话
10:26.196–10:27.976
你也可以去提
10:27.976–10:30.096
就是让它按照某个方式
10:30.096–10:32.036
你看它默认就是用了
10:32.036–10:34.376
这个JRPC
10:34.376–10:36.136
STDIO的这种方式
10:36.136–10:39.036
所以这个就是他默认的一个实现方式
10:39.036–10:42.416
然后他会写到
10:42.416–10:43.776
这个有一个MCP
10:43.776–10:45.436
Server的这个目入里面去
10:45.436–10:47.336
现在还正在开发
10:47.336–10:52.276
所以这个其实是一个
10:52.276–10:55.776
你可以看到他整个的一个实现过程
10:55.776–10:57.116
其实没有那么麻烦
10:57.116–10:59.816
然后其实我们等一下
10:59.816–11:01.076
开发完之后的话
11:01.076–11:03.216
我们就可以做一个配置了
11:03.216–11:04.316
做一个配置了
11:04.316–11:06.836
当然大家也其实可以用
11:06.836–11:09.056
这个外网的一些MCP server
11:09.056–11:09.456
是吧
11:09.456–11:11.996
就是别人给我写好的一些这个server
11:11.996–11:12.776
行不行呢
11:12.776–11:14.416
你看就是我可以把
11:14.416–11:16.456
这个免费的这个MCP server
11:16.456–11:17.136
给它加进来
11:17.136–11:17.416
是吧
11:17.416–11:19.816
这个是其他开发者提供的一个
11:19.816–11:21.356
context7的一个MCP
11:21.356–11:23.936
那我们可以通过这个命令横啊
11:23.936–11:26.356
给它加入进来
11:26.356–11:32.016
这里面我们让他去开发
11:32.016–11:34.596
然后我们这里再开一个窗口
11:34.596–11:36.516
给大家演示两种
11:36.516–11:38.656
一种是我们自己开发
11:38.656–11:42.296
还有一种是我们这个自己去用别人的是吧
11:42.296–11:46.516
然后切换到这个Codex
11:46.516–11:49.116
11:49.116–11:50.736
这个然后我们就给他加一下
11:50.736–11:53.216
你看现在已经加成功了
11:53.216–11:55.016
然后我们进入到这个Codex
11:55.016–11:57.256
输入这个mcp
11:57.256–12:03.556
那现在正在加载
12:03.556–12:08.436
你看这个刚刚还没有是吧
12:08.436–12:10.336
这个是我们刚刚加进来的
12:10.336–12:11.036
是不是就有了
12:11.036–12:13.316
但是它是未授权的
12:13.316–12:16.056
因为这个是一个第三方的一个服务是吧
12:16.056–12:18.576
所以这个是没有支持的啊
12:18.576–12:20.916
就是你要去用的话
12:20.916–12:22.616
它可能要做一些授权处理
12:22.616–12:23.856
12:23.856–12:26.376
那你就比如说我们刚刚加进来
12:26.376–12:27.616
这个context7的话
12:27.616–12:28.736
你要去使用它
12:28.736–12:31.976
就比如说调用context
12:31.976–12:35.516
你或者你就直接问他
12:35.516–12:37.756
context7
12:37.756–12:42.056
这个mcp5
12:42.056–12:48.896
主要的用途是什么
12:48.896–12:50.496
你就直接问他
12:50.496–12:52.696
因为你也不知道他的一个用法
12:52.696–12:53.196
是吧
12:53.196–12:57.516
你看这个是就是给编码助手提供
12:57.516–12:59.816
最新的第三方库框架文档
12:59.816–13:00.436
示例代码
13:00.436–13:04.696
他主要就是比如说去查询一些库文档的一些用法
13:04.696–13:06.636
比如说你去问
13:06.636–13:08.816
应该怎么样去写
13:08.816–13:09.696
是吧
13:09.696–13:13.816
那我们就比如说你就我们就随便问他
13:13.816–13:18.756
你就把这个问题丢给他
13:20.496–13:28.496
调用context7mcp服务
13:28.496–13:31.296
然后去把这个问题丢给他就完了
13:31.296–13:34.536
那么他就开始可以去调用这个服务了
13:34.536–13:37.836
这个就是我们在整个的一个
13:37.836–13:39.896
Codex 里面去怎么调用这个服务
13:39.896–13:41.536
调用其实很简单
13:41.536–13:44.896
就把它正常当工具去使用就可以了
13:44.896–13:46.236
你看这个里面
13:46.236–13:49.836
我们他查询到的一些内容是不是就出来了
13:49.836–13:52.176
这个就是一个MCP服务的一个使用
13:52.176–13:54.236
然后我们回头再到这个里面去看一下
13:54.236–13:56.676
你看这个服务是不是就进来了是吧
13:56.676–13:58.836
方便是启用的一个状态
13:58.836–14:01.236
这个就是MCP server 的一个使用啊
14:01.236–14:03.936
我们再回头看一下刚刚那个写完的一个
14:03.936–14:07.296
我们自己搭的一个MCP server
14:07.296–14:10.796
这个该怎么样去配置是吧
14:10.796–14:12.196
怎么去使用啊
14:12.196–14:13.996
其实也很简单
14:13.996–14:16.676
我们看一下这个目录
14:16.676–14:19.676
首先在这个你看这个mcp server里面
14:20.736–14:23.916
我们这里再给他建个文件夹吧
14:23.916–14:26.616
因为他都把它放到里面去了
14:26.616–14:27.976
mcp server
14:27.976–14:29.716
那我专门建一个文件夹
14:29.716–14:32.916
叫做file manager
14:32.916–14:34.276
是吧
14:34.276–14:36.636
然后把它移进去啊
14:39.936–14:41.376
然后接下来一个问题就是
14:41.376–14:44.076
哎我现在这个mcp写完了是吧
14:44.076–14:46.616
那我接下来应该怎么来去用呢
14:46.616–14:47.176
对吧
14:47.176–14:50.616
这个是基于node.js写的一个mcp服务
14:50.616–14:53.156
你看这些个内容
14:53.156–14:54.276
他也帮我都实现了
14:54.276–14:56.036
接下来这个怎么来用呢
14:56.036–14:57.716
那就是配置的问题
14:57.716–14:59.616
配置这一块的话
14:59.616–15:03.516
大家就是有其实有几种方式
15:03.516–15:04.416
第一种
15:04.416–15:06.356
如果你对这个配置文件比较熟的话
15:06.356–15:09.216
你直接在这个里面去配就可以了
15:09.216–15:10.976
就是他这里面就是配置文件
15:10.976–15:12.176
你把它复制粘贴一下
15:12.176–15:13.416
这个mcp server
15:13.416–15:15.316
这里面就相当于就已经生效了
15:15.316–15:15.636
是吧
15:15.636–15:16.836
但是啊
15:16.836–15:17.936
这里这种方式的话
15:17.936–15:19.476
大家第一次你如果不熟的话
15:19.476–15:20.636
你可能会配置出错
15:20.636–15:22.076
那怎么办呢
15:22.076–15:23.216
其实也很简单啊
15:23.216–15:25.856
你就直接Codex去提问就可以了
15:25.856–15:28.316
就是你直接让Codex帮你去配置就完了
15:28.316–15:28.636
是吧
15:28.636–15:29.836
那我们在
15:29.836–15:31.036
因为我刚刚建了一个目录
15:31.036–15:33.336
所以我要切换到这个
15:33.336–15:35.156
这个里面去啊
15:35.156–15:35.936
mcp server
15:35.936–15:38.316
然后再切换到file manager
15:38.316–15:40.536
然后放到外面吧
15:40.536–15:42.056
在这个里面啊
15:42.056–15:46.056
然后我在这个里面去切换Codex
15:46.056–15:47.216
15:47.216–15:50.456
然后接下来你就很简单了啊
15:50.456–15:52.216
你就直接这么说
15:52.216–15:54.816
请帮我交
15:54.816–15:57.296
file
15:57.296–15:59.496
manager
15:59.496–16:01.296
配置到
16:07.320–16:13.320
配置成mc codex的mcp服务就可以了。
16:13.320–16:14.040
就这么跟他说
16:14.040–16:15.480
他会自动的去分析的啊
16:15.480–16:16.540
应该怎么来配
16:16.540–16:18.380
加到配置文件里面
16:18.380–16:20.260
你看他会去分析啊
16:20.260–16:22.360
他不是一下来就直接给你配了啊
16:22.360–16:23.280
他得分析一下
16:23.280–16:26.440
你当前这个是不是一个标准的MCP server
16:26.440–16:26.960
是吧
16:26.960–16:28.480
能不能啊
16:28.480–16:29.320
能不能用
16:29.320–16:32.200
他得分析一下这个基本的逻辑有没有问题吧
16:32.200–16:33.800
不是一上来就给你配了啊
16:33.800–16:34.580
配完不能用
16:34.580–16:35.940
他是不行的
16:35.940–16:38.460
所以Codex的一个智能之处就是在于
16:38.460–16:40.460
他会帮你去验证啊
16:40.460–16:43.060
验证这个MCP server里面到底能不能用
16:43.060–16:43.440
是吧
16:43.440–16:44.300
如果不能用的话
16:44.300–16:46.480
他可能会报一些错误
16:46.480–16:47.660
所以这个里面你看
16:47.660–16:49.500
他就发现了一些问题啊
16:49.500–16:51.820
比如说这个readme少了一层fire manager
16:51.820–16:54.440
他会按实际的这个路口来配置
16:54.440–16:55.280
是吧
16:55.280–16:59.720
然后包括一些执行时候啊
16:59.720–17:00.460
可能一些进程
17:00.460–17:02.080
可能会有一些权限的一些问题
17:02.080–17:04.020
那他都会帮你去处理啊
17:04.020–17:06.180
按照他的一个指引去操作就可以了
17:06.180–17:08.720
所以整个啊
17:08.720–17:10.740
我们其实都可以让AI来帮我们完成
17:10.740–17:11.640
但是的话
17:11.640–17:12.700
大家需要知道
17:12.700–17:14.180
他整个一个逻辑啊
17:14.180–17:16.480
比如说这个mcp配置文件在哪里
17:16.480–17:17.400
怎么来配
17:17.400–17:18.460
应该是怎么一个规范
17:18.460–17:19.960
遇到问题之后啊
17:19.960–17:21.980
因为AI他其实也不能保证说
17:21.980–17:23.600
就都没问题了是吧
17:23.600–17:25.000
有些情况下
17:25.000–17:26.260
他解决不了的问题
17:26.260–17:28.000
还是需要我们人为去排查
17:28.000–17:29.780
纠正再给他一些建议的
17:29.780–17:31.760
如果大家不理解这个整个的一个
17:31.760–17:32.520
配置逻辑的话
17:32.520–17:36.380
你后面其实也不太好去解决这些问题啊
17:36.380–17:38.180
所以AI确实能帮我们干活
17:38.180–17:40.540
但是我们还是需要人为去做一个审查
17:40.540–17:42.520
做一些这个指导
17:42.520–17:42.900
是吧
17:42.900–17:43.920
这样的话
17:43.920–17:46.600
我们的这个效率的话才会高
17:46.600–17:49.620
你看现在他们是不是就把我们配好了
17:49.620–17:53.140
他在这个POM里面145行
17:53.140–17:54.100
我们找一下
17:54.100–17:55.740
145行
17:55.740–17:57.800
你看是不是现在把我们配好了
17:57.800–17:58.840
File Manager
17:58.840–18:02.140
然后是基于Node.js的方式去运行的
18:02.140–18:04.680
然后核心的话就是去执行这个js
18:04.680–18:05.300
是吧
18:05.300–18:06.900
然后已经启用了
18:06.900–18:09.100
并且的话
18:09.100–18:10.640
你看他还帮我们验证了
18:10.640–18:12.080
这个是最关键的
18:12.080–18:14.020
就这个MCP服务到底能不能用
18:14.020–18:16.300
后再次帮我们考虑的非常完善
18:16.300–18:18.720
保证它是可以正常启动的
18:18.720–18:19.500
并且的话
18:19.500–18:20.940
这个状态是enabled
18:20.940–18:24.340
然后PowerShell拦截了NPM.PS1
18:24.340–18:26.880
所以他把它优化一下
18:26.880–18:28.960
因为PowerShell会有一个权限
18:28.960–18:31.460
就是不能随便去运行
18:31.460–18:34.600
所以他会用NPM.CMD
18:34.600–18:36.260
因为这个权限的话会更高
18:36.260–18:38.520
但是因为咱们这个是管理员模式
18:38.520–18:40.180
所以应该也没什么问题
18:40.180–18:43.520
然后就是我们再看一下
18:43.520–18:45.160
把这些mcp服务
18:45.160–18:47.240
看一下刚刚那个已经有没有配置成功
18:47.240–18:49.520
你看file manager
18:49.520–18:50.920
是不是就OK了
18:50.920–18:53.720
然后这个file manager到底能干嘛呢
18:53.720–18:54.780
比如说我们自己搭建的
18:54.780–18:56.300
大家可能也不知道怎么用是吧
18:56.300–18:58.200
因为他这点看全是英文的
18:58.200–18:59.760
这些个工具是吧
18:59.760–19:01.160
开发人员可能会比较清楚
19:01.160–19:03.520
但是技术小白的话可能不知道
19:03.520–19:04.920
那你也很简单
19:04.920–19:05.820
你就直接问他
19:05.820–19:14.620
就是你直接问他
19:14.620–19:17.880
mcp服务怎么使用
19:17.880–19:22.760
你就直接这么去问他
19:22.760–19:24.980
他会教你那些个服务
19:24.980–19:26.020
他的作用是什么
19:26.020–19:29.100
就是他提供的一些工具
19:29.100–19:30.520
应该怎么来调用
19:30.520–19:32.780
那这样的话就是
19:32.780–19:34.240
我们可以去
19:34.240–19:37.480
就是一个说明
19:37.480–19:38.100
是吧
19:38.100–19:40.620
或者是你直接去用
19:40.620–19:42.400
自然语言去对话也是可以的
19:42.400–19:45.120
你看它的能力是什么呢
19:45.120–19:46.380
查询目录
19:46.380–19:48.960
然后读取文本文件
19:48.960–19:49.840
写文件
19:49.840–19:51.500
创建目录是吧
19:51.500–19:53.300
那我们就随便来验证一下
19:53.300–19:54.160
来测试一下呗
19:54.160–19:56.480
你就直接这么跟他说
19:56.480–19:59.840
调用 file manager
19:59.840–20:00.620
是吧
20:00.620–20:01.180
然后
20:01.180–20:05.020
你就直接什么呢
20:05.020–20:06.720
查询一下
20:06.720–20:12.540
比如说我们现在有这个目录结构
20:12.540–20:12.940
是吧
20:12.940–20:14.880
这个目录结构这里面
20:14.880–20:16.740
然后就随便查询一下
20:16.740–20:17.420
洛伊的这个
20:17.420–20:19.820
这个Codex目录下面有一个洛伊项目
20:19.820–20:22.240
我想把这个项目的这个结构查询出来
20:22.240–20:23.540
那你就把这个复制一下
20:23.540–20:24.520
是吧
20:24.520–20:27.800
目录结构
20:27.800–20:29.480
就提到这么一个需求
20:29.480–20:31.340
那他就调用这个MCP server
20:31.340–20:32.540
帮我们去干这个事情
20:32.540–20:35.220
然后我看一下他能不能执行成功啊
20:35.220–20:38.880
这个就是我们自己写的一个MCP服务
20:38.880–20:40.620
他应该怎么样去用
20:40.620–20:41.300
是吧
20:41.300–20:46.560
你看现在是基于MCP的一个STDIO协议去调用的
20:46.560–20:47.840
所以的话就是
20:47.840–20:51.560
他这里会帮你做一些这个调整啊
20:51.560–20:56.600
你看首先大家去读取层级的一个目录结构啊
20:56.600–20:58.840
你看是不是就出来了
20:58.840–20:59.440
是吧
20:59.440–21:01.580
但是这里我们看啊
21:01.580–21:04.340
它是基于MCP server的方式调用的
21:04.340–21:06.800
它不是说用Codex本身的能力啊
21:06.800–21:08.240
这个是不一样的
21:08.240–21:10.120
我们从这个调用细节里面可以看到
21:10.120–21:10.380
你看
21:10.380–21:13.180
这是它是用了一个JS的这么一个
21:13.180–21:15.180
走了一个
21:15.180–21:17.980
JSON RPC的一个server是吧
21:17.980–21:19.740
就是一个STDIO的一个服务
21:19.740–21:22.260
然后就给它调用成功了
21:22.260–21:22.800
是吧
21:22.800–21:24.580
这个是列出目录啊
21:24.580–21:26.100
然后它其实还有一些能力就是
21:26.100–21:27.820
读取文件嘛是吧
21:27.820–21:29.680
读取文件写文件啊
21:29.680–21:31.840
这个大家可以自己去试一下
21:31.840–21:35.780
那比如说我们现在就读一个文件吧
21:35.780–21:37.860
查询一个文件
21:37.860–21:40.460
读取
21:40.460–21:43.920
读取这个目录下面的一个
21:43.920–21:46.200
这个我们看一下啊
21:46.200–21:46.840
Vidami吧
21:46.840–21:49.420
读取一个或者是
21:49.420–21:51.260
啊需求
21:51.260–21:55.220
就就读取这个README看一下
21:57.820–22:03.680
现在我们要去读取内容是吧
22:03.680–22:05.480
看一下能不能读取啊
22:05.480–22:11.380
你看他现在就是帮我们定位到了readfile这个工具是吧
22:11.380–22:14.820
那现在他会去启动这么一个啊
22:14.820–22:16.260
连接到这么一个服务上去
22:16.260–22:18.220
然后去做一个处理啊
22:18.220–22:21.940
你看这个是我们一个开源项目
22:21.940–22:23.900
在这个项目里面我们就可以看得到
22:23.900–22:26.180
他已经读取到了一个文档啊
22:26.180–22:28.820
这个是前后段分离的一个项目啊
22:28.820–22:29.760
什么什么的是吧
22:29.760–22:32.180
这个就是他读到的
22:32.180–22:36.860
这个就是我们自己你要去搭建一个MCP server
22:36.860–22:38.340
然后去给它配置
22:38.340–22:39.320
包括使用
22:39.320–22:41.780
包括我们要用第三方的MCP server
22:41.780–22:44.280
这个大家都可以去用啊
22:44.280–22:47.720
那MCP这个你还可以在外面啊
22:47.720–22:50.980
就是你不需要进入到这个Codex里面去啊
22:50.980–22:52.000
你可以在外面
22:52.000–22:54.880
然后看一下它的一个使用啊
22:54.880–22:56.440
那主要的一个
22:56.440–22:59.300
就是管理方式的话
22:59.300–23:00.560
就是查询是吧
23:00.560–23:01.760
然后查询每一个
23:01.760–23:04.120
然后去添加啊
23:04.120–23:06.500
或者是做一些其他的这个处理的
23:06.500–23:09.000
这个就是他的一个使用
23:09.000–23:10.200
包括你看这个里面
23:10.200–23:12.020
config指定配置文件
23:12.020–23:13.380
他也跟你说了
23:13.380–23:15.160
他默认会加在这个里面的啊
23:15.160–23:16.120
但是你也可以指定
23:16.120–23:17.700
其他的配置文件去重载他
23:17.700–23:21.520
这个就是mcp的一些子命令啊
23:21.520–23:22.560
这个大家有需要的话
23:22.560–23:24.680
你可以去找到一些命令去用啊
23:24.680–23:29.100
所以它的一个使用入口有很多啊
23:29.100–23:33.140
我们可以在整个的一个终端里面去用
23:33.140–23:35.320
也可以在VSCode啊
23:35.320–23:37.120
就是Cursor这种插件里面去用
23:37.120–23:38.040
然后的话
23:38.040–23:40.320
大家你也可以在这个里面去用啊
23:40.320–23:41.200
这个都是OK的
23:41.200–23:44.820
因为MCP Server它是这个全局的啊
23:44.820–23:47.600
就是它是整个应用级别的
23:47.600–23:48.460
就用户级别的
23:48.460–23:49.440
所以你在哪里用
23:49.440–23:50.320
它都是一样的
23:50.320–23:52.140
比如说我们就随便在这个对话里面
23:52.140–23:56.860
帮我查询下
23:56.860–23:59.680
file manager
24:01.747–24:15.247
manage mcp服务有哪些工具
24:15.247–24:30.807
你看他会去搜啊
24:30.807–24:33.747
你看配置里面确实有这个
24:33.747–24:37.367
就是他是放在这个全局的一个
24:37.367–24:40.207
这个配置文件里面的啊
24:40.207–24:41.767
所以他肯定是能找到的
24:45.247–24:48.467
你看这个是吧
24:48.467–24:50.027
我们在任何一个对话里面
24:50.027–24:51.947
你都能找到这个mcp工具
24:51.947–24:53.307
因为它是全局的
24:53.307–24:55.047
它不是某个项目的
24:55.047–24:56.487
这个是需要注意的
24:56.487–25:01.727
然后大家自己要去写这个stdio的一个所有的话
25:01.727–25:03.667
也有一些这个参数
25:03.667–25:04.467
是吧
25:04.467–25:05.707
就我们前面给他说了
25:05.707–25:07.827
首先最关键的就是一个启动的命令
25:07.827–25:09.387
比如说你是用node启动的
25:09.387–25:10.487
还是用python启动的
25:10.487–25:11.807
你有哪些参数
25:11.807–25:13.607
包括一些环境变量啊
25:13.607–25:14.347
等等的
25:14.347–25:16.327
包括一个这个工作目录
25:16.327–25:18.207
大家都可以去做一个切换
25:18.207–25:18.687
是吧
25:18.687–25:22.447
然后如果说你是开发一个
25:22.447–25:24.147
这个streaming的播
25:24.147–25:28.987
就整个一个流式的这种方式的话
25:28.987–25:32.107
那你其实就可以什么呢
25:32.107–25:33.587
在这个里面啊
25:33.587–25:38.267
你可以去做一些这个细节的一些调整
25:38.267–25:39.627
比如说一些这个
25:39.627–25:43.667
整个的一个UI是吧
25:43.667–25:46.267
它的一个参数应该是怎么样的
25:46.267–25:50.727
包括它的一个整个的一个细节啊
25:50.727–25:52.967
一些http的一些参数啊
25:52.967–25:54.967
包括环境的一些这个参数
25:54.967–25:59.067
这个大家都可以去做一些这个设定啊
25:59.067–26:02.227
这个是基于这个streamable的啊
26:02.227–26:06.067
那其实我们可以给大家开发一个简单的一个mcp
26:06.067–26:06.867
server啊
26:06.867–26:09.327
基于这个http的这种协议啊
26:09.327–26:12.267
我们可以来实现一下
26:12.267–26:14.627
比如说我们现在在这个下面
26:14.627–26:16.667
这下面已经有一个fire manager 是吧
26:16.667–26:17.827
那我现在再开发一个
26:23.307–26:24.027
codex
26:26.467–26:29.907
比如说帮我开发一个
26:31.827–26:32.547
stream的
26:32.547–26:33.907
http的一个server
26:35.227–26:37.587
或者叫mcp server
26:39.667–26:41.107
主要实现
26:42.267–26:49.707
加减乘除运算
26:49.707–26:52.447
就是我这个做一个非常简单的一个事例
26:52.447–26:53.847
就你传这个
26:53.847–26:55.307
比如说你要计算一个加法
26:55.307–26:56.327
你传两个参数是吧
26:56.327–26:56.767
一加一
26:56.767–26:59.147
然后他最后结果给你返回二
26:59.147–27:02.207
就是实现一个非常简单的一个运算的这么一个功能
27:02.207–27:05.527
然后这个里面就是我们可以去
27:05.527–27:07.847
让他实现一下
27:07.847–27:10.087
其实很简单
27:10.087–27:12.147
跟那个stdio没有太大区别
27:12.147–27:14.167
就是传输协议上的一个区别
27:14.167–27:16.607
其他上面的话没有太大区别
27:16.607–27:21.247
所以这时候他的一个参数的话
27:21.247–27:25.067
就会带上这个HTTP的一个IP地址端口
27:25.067–27:27.367
这个大家做一个区分就可以了
27:37.467–27:41.127
你看他其实也是还是基于这个整个的一个
27:42.147–27:44.247
Node.js去实现的啊
27:44.247–27:46.587
你看他会去查询规范啊
27:46.587–27:47.487
他不是随便写的
27:47.487–27:50.547
他去查询当前MCP官方的一些规范
27:50.547–27:54.267
因为我们这个需求是做四则运算嘛
27:54.267–27:54.587
是吧
27:54.587–27:57.047
所以他要看一下
27:57.047–28:00.447
整个MCP的一个规范应该怎么来实现
28:00.447–28:03.587
然后的话包括一些网络请求啊
28:03.587–28:04.047
是吧
28:04.047–28:06.367
这个就啊
28:06.367–28:07.947
他一样
28:07.947–28:12.787
然后它是我看一下
28:12.787–28:15.347
它是还是写到那个file manager里面去了
28:15.347–28:18.127
他应该会帮我们建一个新的项目
28:18.127–28:20.027
我看一下
28:20.027–28:27.047
你看他会建一个单独的建一个calculate
28:27.047–28:28.967
就是一个计算的一个mcp server
28:28.967–28:34.587
那等他这个跑完之后
28:34.587–28:36.107
我们再来验证一下这个服务
28:36.107–28:37.787
其实他已经帮我们验好了
28:37.787–28:40.967
就现在我们用Codex去跑的话
28:40.967–28:43.547
基本上这个一次就过了
28:43.547–28:45.107
没有什么太大问题的
28:45.107–28:47.647
因为它已经帮你把验证全部做完了
28:47.647–28:49.847
这就是Codex它的一个智能之处
28:49.847–28:52.167
它这个里面有一个Iteration Loop
28:52.167–28:54.627
就它会不断的去循环验证
28:54.627–28:56.907
直到帮你把这个问题验证完
28:56.907–28:59.667
你看它已经验证通过了
28:59.667–29:01.787
所以它写完之后直接就帮你验证了
29:01.787–29:03.687
包括它这个细节
29:03.687–29:05.907
你看四则运算的这个工具
29:05.907–29:08.587
然后包括这个规范
29:08.587–29:09.047
是吧
29:09.047–29:10.147
你看这个规范
29:10.147–29:11.427
它都是参考了
29:11.427–29:15.287
Anthropic官方的这个MCP的服务规范去做的
29:15.287–29:17.187
你们可以看一下这个规范
29:17.187–29:21.967
当然这个页面
29:21.967–29:23.767
它这个地址错了
29:23.767–29:26.487
你看就是它可以参考官方的这个文档去做的
29:26.487–29:28.207
所以这一块是非常智能的
29:28.207–29:30.187
然后包括一些主要文件
29:30.187–29:31.247
已经验证通过了
29:31.247–29:31.607
是吧
29:31.607–29:34.087
然后包括这个地址
29:34.087–29:35.887
它其实也是可以访问的
29:35.907–29:37.067
看一下
29:37.067–29:44.007
那我们直接访问这个是报错的
29:44.007–29:45.207
我们可以让它配置一下
29:45.207–29:49.347
现在我们看一下它有没有配置上去啊
29:49.347–29:49.967
by manager
29:49.967–29:51.527
现在是没有配置的
29:51.527–29:52.667
我们让它配置一下
29:52.667–29:55.407
帮我把这个
29:55.407–29:59.727
配置到
29:59.727–30:01.467
就是把这个
30:01.467–30:02.647
这个名字
30:02.647–30:03.467
calculate
30:03.467–30:13.187
配置到codex mcp服务中
30:13.187–30:16.447
我配置一下
30:16.447–30:17.687
然后我们来调用一下
30:17.687–30:19.287
看能不能跑得通啊
30:19.287–30:36.847
然后这个里面他就开始去搜索了
30:36.847–30:38.487
就是他也不知道这个mcp
30:38.487–30:42.947
这个streamable的一个HTTP的应该怎么配置
30:42.947–30:44.727
所以他这里也是参考官方文档
30:44.727–30:46.327
参考文档之后的话
30:46.327–30:48.247
然后再去做一个配置的
30:49.287–30:54.967
然后他分析了一些版本问题
30:54.967–30:56.107
可能会有一些报错
30:56.107–30:56.787
对不对
30:56.787–30:58.447
然后他会分析一下
30:58.447–30:59.907
你看现在
30:59.907–31:03.407
你看这个http的这个mcp server
31:03.407–31:04.427
加入的方式的话
31:04.427–31:05.467
就是用一个地址
31:05.467–31:08.807
前面我们那个加入的话
31:08.807–31:09.687
是吧
31:09.687–31:10.807
他是一个名称
31:10.807–31:12.247
或者是一个 path
31:12.247–31:13.787
然后现在的话
31:13.787–31:16.047
我们现在就是一个地址
31:16.047–31:16.407
是吧
31:16.407–31:17.767
31:17.767–31:18.707
我们现在给他配置一下
31:18.707–31:20.627
看一下能不能运行
31:20.627–31:29.147
你看如果我们自己去配的话
31:29.147–31:30.347
你就会遇到各种各种的问题
31:30.347–31:32.807
那你让Codex帮你去配置的话
31:32.807–31:34.547
其实你可以省很多事情
31:34.547–31:38.587
在这个里面我们就会让它去做各种优化
31:38.587–31:39.067
是吧
31:39.067–31:42.207
最终它会保证你这个服务它是可用啊
31:42.207–31:44.247
然后因为它配置的时候
31:44.247–31:45.527
可能还会出现一些问题
31:45.527–31:48.127
你看它这里面还帮你备份了一个配置文件
31:48.127–31:48.427
是吧
31:48.427–31:51.307
万一把它帮你改坏了
31:51.307–31:52.687
然后倒是有问题他能回馈
31:52.687–31:54.807
这个就是他比较智能的一点
31:54.807–31:57.667
他会自动化帮你去做一个处理的
31:57.667–32:00.907
所以他会先备份一下
32:03.600–32:05.505
已经写入了。
32:05.505–32:08.680
然后你看他会去验证。
32:08.680–32:13.442
就是基本上都不需要我们去验证
32:13.442–32:16.300
他会自己去测试的。
32:16.300–32:18.740
所以等我们去用的时候
32:18.740–32:20.480
这个服务基本上没有问题了
32:20.480–32:21.960
要是他验证有问题的话
32:21.960–32:25.160
他会不断的循环去保证
32:25.160–32:27.200
我们最终是没有问题的
32:27.200–32:29.740
你看现在已经能解析到了是吧
32:29.740–32:32.760
然后他再去检查这个端口
32:32.760–32:35.700
端口还没被监听
32:35.700–32:38.020
所以他会你看会启动这个node进程
32:38.020–32:40.300
就这个服务他会都帮你启动了
32:40.300–32:42.800
然后你只需要用就可以了
32:42.800–32:46.020
所以整个过程其实就是一个自动化
32:46.020–32:51.860
那我们其实就是要去等待一下
32:51.860–32:53.940
看一下它的一个实现
32:53.940–32:58.360
但是如果大家自己去配的话
32:58.360–32:59.980
你光是node这个环境
32:59.980–33:01.800
你可能就会报各种各样的权限
33:01.800–33:03.480
七八个的问题是吧
33:03.480–33:04.160
就很麻烦
33:04.160–33:08.340
但是我们有了Codex这个工具之后的话
33:08.340–33:10.880
其实整个过程的话会很简单
33:10.880–33:12.200
它会帮你自己去排查问题
33:12.200–33:12.880
去解决问题
33:12.880–33:17.100
所以它其实也是非常智能的
33:17.100–33:19.080
然后包括这个过程中
33:19.080–33:19.920
报的一些错误
33:19.920–33:20.780
我们可以看一下
33:20.780–33:22.880
一些日志是吧
33:22.880–33:24.660
如果有报错的话
33:24.660–33:26.100
它也会帮你输出出来
33:26.100–33:28.420
方便大家去做一个排查
33:28.420–33:37.440
这个就时间比较久
33:37.440–33:38.620
我们先让它跑着
33:38.620–33:42.340
就是这个streamed up HTTP的
33:42.340–33:43.020
这个server的话
33:43.020–33:45.380
大家就需要单独去加一些配置
33:45.380–33:46.760
然后的话
33:46.760–33:48.540
我们其实还可以在启动的时候
33:48.540–33:50.180
配置一些什么超时时间
33:50.180–33:51.920
工具调用超时时间
33:51.920–33:52.660
是吧
33:52.660–33:53.960
然后启用禁用
33:53.960–33:56.400
包括你现在
33:56.400–33:57.520
比如说这个mcp server
33:57.520–33:58.500
提供了很多工具
33:58.500–33:59.600
那我现在想
33:59.600–34:00.920
有些工具
34:00.920–34:02.440
我不能对外使用
34:02.440–34:03.600
我现在把它关掉
34:03.600–34:06.480
你可以单独去停掉一些工具
34:06.480–34:10.380
还有包括一些工具的一个默认审核行为
34:10.380–34:11.360
就调用工具
34:11.360–34:12.680
有时候是需要确认的
34:12.680–34:13.940
如果没有审核的话
34:13.940–34:15.180
它是不允许调用的
34:15.180–34:19.120
包括一些这个 auth 的一个认证
34:19.120–34:19.480
是吧
34:19.480–34:21.080
做一些授权啊等等
34:21.080–34:24.060
因为有些mcp的server的一个
34:24.060–34:27.420
它是带有这个 auth 的一个认证的
34:27.420–34:28.460
它要做回调的
34:28.460–34:30.140
所以这个里面的话
34:30.140–34:32.700
它会默认的要去配一些这个
34:32.700–34:35.560
一些端口监听之类的
34:35.560–34:36.540
它要做回调啊
34:36.540–34:38.040
所以的话
34:38.040–34:40.080
因为它要做登录之类的授权嘛
34:40.080–34:41.840
所以我们要去配啊
34:41.840–34:44.080
这个大家在用一些第三方的
34:44.080–34:45.280
一些mcp server的时候
34:45.280–34:47.260
经常会有一个跳转啊
34:47.260–34:48.500
他最开始要做一个授权
34:48.500–34:50.340
所以大家遇到授权的话
34:50.340–34:52.120
其实这些东西
34:52.120–34:53.100
你都交给codex
34:53.100–34:54.220
帮你处理就可以了
34:54.220–34:56.800
你看了这个写的好像挺复杂的
34:56.800–34:59.780
但其实你就让他自动化了去操作就可以了
34:59.780–35:00.860
只是大家需要知道
35:00.860–35:03.700
有一个这么 auth 的一个授权认证
35:03.700–35:04.860
他要跳转一个地址
35:04.860–35:05.780
然后再监听
35:05.780–35:08.180
再然后再做一个授权确认
35:08.180–35:11.100
无非就是有这么一个流程
35:11.100–35:13.100
大家只需要知道有这么个流程就行了
35:13.100–35:15.100
然后我们在这个里面
35:15.100–35:17.360
可能要去配一个这个回调是吧
35:17.360–35:19.860
你要告诉MCP
35:19.860–35:21.380
就是这个里面
35:21.380–35:23.780
你应该去回调这个服务是吧
35:23.780–35:25.680
就它有个第三方有个回调的
35:25.680–35:27.720
确认一下它是验证通过的
35:27.720–35:30.820
包括我们其实还可以用MCP server
35:30.820–35:31.740
去做很多事情
35:31.740–35:34.520
就连接到Figma的一些MCP server
35:34.520–35:34.880
是吧
35:34.880–35:37.540
连接到Chroma的这么一些这个工具
35:37.540–35:41.420
然后包括各种各样的工具
35:41.420–35:43.520
它都可以通过MCP服务给它集成进来
35:43.520–35:46.660
然后其实这个
35:46.660–35:51.080
我们也可以去在一些插件里面
35:51.080–35:52.540
找到一些MCP server
35:52.540–35:55.720
就是官方内置的一些插件里面
35:55.720–35:57.840
它其实就给你集成了一些MCP server
35:57.840–36:00.780
那大家也可以去用
36:00.780–36:02.940
比如说我们在这个里面
36:02.940–36:04.700
就可以去找一下
36:04.700–36:08.820
这里面这个Codex
36:08.820–36:10.480
这里面有设置
36:10.480–36:12.440
设置里面有一个插件
36:12.440–36:15.480
这个插件里面有些它就是MCP server
36:15.480–36:18.620
有些是纯粹的工具调用
36:18.620–36:20.340
有些是就是MCP server
36:20.340–36:23.080
你像这个Figma做设计的是吧
36:23.080–36:25.960
但是有些的话
36:25.960–36:27.460
它是需要登录才能使用的
36:27.460–36:29.800
所以这个具体大家去
36:29.800–36:30.940
你要去登录账号才行
36:30.940–36:32.940
但你也可以把那个
36:32.940–36:35.060
mcp的一个配置拿到
36:35.060–36:36.520
你自己去配也是可以的
36:36.520–36:38.180
就是你可以用插件的方式去用
36:38.180–36:39.780
也可以自己去配啊
36:39.780–36:40.840
这个都是没有问题的
36:40.840–36:43.960
我看一下刚刚那个ok没有
36:43.960–36:47.540
还在写
36:47.540–36:50.680
这个是不是卡住了
36:50.680–36:51.600
卡的有点久了
36:55.440–36:57.260
他这个服务是不是已经启动了
36:57.260–36:59.520
但是没有给他生效啊
36:59.520–36:59.980
看一下
36:59.980–37:07.860
打开这个mcp server
37:07.860–37:09.980
看一下这个有没有连接成功啊
37:09.980–37:12.440
mcp服务器
37:12.440–37:14.480
你看是已经成功的
37:14.480–37:15.640
已经成功
37:15.640–37:17.820
它这个端口可能是已经启动了
37:17.820–37:19.680
那我就直接看调用一下
37:19.680–37:24.420
它这个服务是已经启动了
37:24.420–37:27.260
那我们应该就直接可以用了
37:27.260–37:28.740
调用
37:28.740–37:32.980
要用这个Current
37:32.980–37:37.900
帮我计算下
37:37.900–37:40.060
1加1
37:40.060–37:41.560
1加2
37:49.500–37:51.100
这个应该是起一个服务
37:51.100–37:52.700
它在这里等着
37:52.700–37:54.540
那我们单独在另外里面
37:54.540–37:55.340
也会去写吧
37:58.740–38:01.640
我把这个消息
38:01.640–38:03.960
在这个里面
38:03.960–38:05.340
这里因为阻塞了
38:05.340–38:08.640
我们换一个窗口再来调用
38:08.640–38:09.960
这里他起来
38:09.960–38:11.660
把那个mcp server给他启动了
38:11.660–38:13.160
所以的话就是
38:13.160–38:16.400
在这个里面
38:16.400–38:19.100
我们看到的是一个服务已经启动了
38:19.100–38:22.980
这个是已经调用成功了吗
38:22.980–38:25.900
mcp服务
38:28.740–38:33.900
script
38:33.900–38:35.780
这个计算结果应该是成功的吧
38:35.780–38:37.580
然后我来查询一下
38:37.580–38:38.580
查询一下
38:38.580–38:50.180
calculate mcp服务可用的工具有哪
38:50.180–38:52.980
哪些
38:58.740–39:11.280
当前对话是没有这个服务的
39:11.280–39:12.960
但是全局里面是有这个的
39:12.960–39:15.040
我们让他可以去搜一下
39:21.040–39:22.080
大家看看
39:22.080–39:23.740
你看这个里面是不是就有了
39:23.740–39:24.360
是吧
39:24.360–39:26.480
本地配置
39:26.480–39:28.220
应该是应该是这个名词
39:28.220–39:30.820
我们看一下这个配置里面有没有生效
39:31.414–39:34.414
你看,这是不是就已经生效了。
39:34.414–39:36.414
你看这里就是URL。
39:36.414–39:38.414
其实可以对比一下。
39:38.414–39:42.414
刚刚那个stdio的这个连接方式它是传输行的。
39:42.414–39:45.354
然后到了这个concurrent
39:45.354–39:47.874
它是streamable HTTP的
39:47.874–39:50.274
流式的这种SSE的这种方式
39:50.274–39:50.914
那么在这个里面
39:50.914–39:54.174
它就变成了一个URL的一种方式了
39:54.174–39:55.254
这里大家需要注意一下
39:55.254–39:57.974
这是两种协议的一个区别
39:57.974–39:59.874
然后我们可以啊
39:59.874–40:00.514
调用
40:04.614–40:06.774
计算
40:06.774–40:07.154
5
40:10.174–40:10.914
和5
40:12.414–40:16.354
加减乘除
40:16.354–40:22.094
分别是
40:22.094–40:27.234
多少
40:27.234–40:28.694
就是我现在想
40:28.694–40:31.174
调用这个四个工具是吧
40:31.174–40:33.154
我想调用这四个工具
40:33.154–40:35.174
然后都帮我去
40:35.174–40:36.014
这个
40:36.014–40:38.174
校验一下是吧
40:38.174–40:39.474
校验一下
40:42.414–40:47.874
你看他现在就开始去调用了是吧
40:47.874–40:49.994
加减乘除都给他调用一下
40:49.994–40:52.054
刚刚那个其实没调用成功了
40:52.054–40:54.954
刚刚那个是他走的网络的这种方式
40:54.954–40:57.774
就是去检索的这种方式
40:57.774–41:00.814
然后现在我们要真正的去调用这个mcp服务
41:00.814–41:04.114
你看分别跑加减乘除是吧
41:04.114–41:05.574
这样就看得更加明确一些
41:05.574–41:08.134
你看成功了啊
41:08.134–41:10.194
加减乘除没有问题
41:10.194–41:12.654
这个服务它现在是中断的
41:12.654–41:14.174
那我给它中断一下
41:14.174–41:15.194
我再来调用
41:15.194–41:18.034
刚刚那个服务它是挂在这里
41:18.034–41:20.854
不是卡死了
41:20.854–41:22.194
它是有一个进程
41:22.194–41:24.194
相当于写了一个服务在这里等着
41:24.194–41:27.574
但这个服务它是后端运行的
41:27.574–41:28.814
我们可以把它这个
41:28.814–41:30.994
等待的地方给它去掉
41:30.994–41:32.734
然后在这个里面
41:32.734–41:34.494
我们其实也可以
41:34.494–41:36.714
特地可以调用了
41:36.714–41:38.834
这个服务它会一直停在这里
41:40.194–42:05.654
你让他是访问这个地址是吧
42:05.654–42:07.594
然后包括一些接口请求啊
42:07.594–42:10.294
然后你看这个是event stream
42:10.294–42:13.094
就是sse的这个流式的传输
42:13.094–42:15.734
然后给结果
42:15.734–42:16.414
没有问题
42:16.414–42:17.034
42:17.034–42:20.854
这个就是stream的http的这种协议
42:20.854–42:22.654
它的一个调用逻辑
42:22.654–42:25.134
就大家回头你可以去验证一下
42:25.134–42:26.674
这两种方式它的一个区别
42:26.674–42:27.874
我们可以对比一下
42:27.874–42:31.774
然后大家自己也可以去装一些mcp的server
42:31.774–42:33.834
我刚刚其实已经带大家去装了一个
42:33.834–42:36.734
大家自己也可以去网上找到一些mcp server
42:36.734–42:38.494
给它安装一下就可以了
42:38.494–42:41.414
其实这个也比较好理解
0:00.000–0:04.160
zh这个我们可以去看一下规则。
这个我们可以去看一下规则。
0:05.220–0:10.420
zh接下来我们来讲一下Codex MCP核心协议配置与业务系统无缝集成。
接下来我们来讲一下Codex MCP核心协议配置与业务系统无缝集成。
0:11.000–0:14.020
zh那么MCP的话叫做模型上下文协议。
那么MCP的话叫做模型上下文协议。
0:14.400–0:18.300
zh它主要的话是用于把模型连接到工具和上下文。
它主要的话是用于把模型连接到工具和上下文。
0:18.900–0:20.240
zh比如说用的什么场景呢?
比如说用的什么场景呢?
0:20.680–0:23.420
zh那之前比如说大家公司里面有一些业务系统。
那之前比如说大家公司里面有一些业务系统。
0:24.060–0:27.900
zh那这种系统的话它其实是不对外提供服务的。
那这种系统的话它其实是不对外提供服务的。
0:27.900–0:30.080
zh仅仅是给内部去用的
仅仅是给内部去用的
0:30.080–0:30.660
zh但是的话
但是的话
0:30.660–0:32.400
zh我们大模型的话
我们大模型的话
0:32.400–0:36.720
zh是无法很方便的去访问到这些工具或者服务的
是无法很方便的去访问到这些工具或者服务的
0:36.720–0:37.980
zh那于是乎
那于是乎
0:37.980–0:40.480
zhAnthropic这个公司的话
Anthropic这个公司的话
0:40.480–0:42.700
zh他就提出了一种规范叫做MCP
他就提出了一种规范叫做MCP
0:42.700–0:45.300
zh那么为了更方便的
那么为了更方便的
0:45.300–0:49.340
zh把我们的这个大模型和工具上下文连接起来
把我们的这个大模型和工具上下文连接起来
0:49.340–0:51.620
zh那于是乎就有了这么一个协议
那于是乎就有了这么一个协议
0:51.620–0:53.720
zh他主要解决的一个场景的话
他主要解决的一个场景的话
0:53.720–0:57.880
zh就是我们这个模型怎么样跟工具连接的一个问题
就是我们这个模型怎么样跟工具连接的一个问题
0:57.900–0:59.640
zh那这个协议的话
那这个协议的话
0:59.640–1:01.540
zh主要是通过啊
主要是通过啊
1:01.540–1:02.880
zh有一下这种方式
有一下这种方式
1:02.880–1:04.240
zh一个的话是
一个的话是
1:04.240–1:05.840
zhstdio啊
stdio啊
1:05.840–1:06.960
zh这是它的一个协议
这是它的一个协议
1:06.960–1:08.640
zh就是比如说有些服务
就是比如说有些服务
1:08.640–1:11.560
zh它是以本地进程的方式去运行的啊
它是以本地进程的方式去运行的啊
1:11.560–1:13.720
zh我们想以这种方式去访问它啊
我们想以这种方式去访问它啊
1:13.720–1:15.280
zh通过进程间的这种访问
通过进程间的这种访问
1:15.280–1:18.580
zh就这个只是在我们这个服务器上面运行
就这个只是在我们这个服务器上面运行
1:18.580–1:20.540
zh也不需要做一个网络通信
也不需要做一个网络通信
1:20.540–1:24.080
zh那这个就是它的一个stdio的这种方式啊
那这个就是它的一个stdio的这种方式啊
1:24.080–1:26.580
zh然后还有一种方式叫做
然后还有一种方式叫做
1:26.580–1:27.520
enHTTP Server
HTTP Server
1:27.520–1:29.300
zh那么这种方式的话
那么这种方式的话
1:29.300–1:31.780
zh就是我们常说的这个SSE
就是我们常说的这个SSE
1:31.780–1:34.660
zh那么比如说我们的有一些服务
那么比如说我们的有一些服务
1:34.660–1:36.160
zh它是对外提供的
它是对外提供的
1:36.160–1:39.040
zh像一些这个查询天气
像一些这个查询天气
1:39.040–1:40.040
zh调用一些API
调用一些API
1:40.040–1:41.920
zh这都是公共的一些服务
这都是公共的一些服务
1:41.920–1:44.920
zh那外部想要访问到我们这个MCP Server的话
那外部想要访问到我们这个MCP Server的话
1:44.920–1:47.460
zh它得通过一个域名或者IP
它得通过一个域名或者IP
1:47.460–1:50.680
zh通过HTTP的这种协议的方式
通过HTTP的这种协议的方式
1:50.680–1:52.100
zh去连接上来
去连接上来
1:52.100–1:53.580
zh所以目前
所以目前
1:53.580–1:56.180
zh用的比较多的两个场景的话
用的比较多的两个场景的话
1:56.180–1:57.840
zh一个就是本地的这种
一个就是本地的这种
1:57.840–1:59.500
zhMCP服务器的一个访问
MCP服务器的一个访问
1:59.500–2:00.700
zh还有的话就是一个
还有的话就是一个
2:00.700–2:02.240
zh外部的这种访问啊
外部的这种访问啊
2:02.240–2:03.120
zh主要就是这几种
主要就是这几种
2:03.120–2:06.160
zh那么Codex在这个里面的话啊
那么Codex在这个里面的话啊
2:06.160–2:07.260
zh它也是支持了
它也是支持了
2:07.260–2:09.600
zhMCP server的这么一个连接
MCP server的这么一个连接
2:09.600–2:11.320
zh那我们等一下就
那我们等一下就
2:11.320–2:13.120
zh以实战的方式给大家讲一下
以实战的方式给大家讲一下
2:13.120–2:14.500
zh首先这个MCP server
首先这个MCP server
2:14.500–2:15.500
zh应该怎么来搭建
应该怎么来搭建
2:15.500–2:16.720
zh然后其次的话
然后其次的话
2:16.720–2:18.680
zh我们在Codex里面
我们在Codex里面
2:18.680–2:20.860
zh怎么样去调用MCP服务啊
怎么样去调用MCP服务啊
2:20.860–2:23.620
zh包括查看当前有哪些MCP服务
包括查看当前有哪些MCP服务
2:23.620–2:27.500
zh那么Codex的话
那么Codex的话
2:27.500–2:29.640
zh它的一个MCP配置的话
它的一个MCP配置的话
2:29.640–2:31.540
zh其实是存放在一个叫
其实是存放在一个叫
2:31.540–2:33.340
zhconfig.toml文件里面
config.toml文件里面
2:33.340–2:34.640
zh这个文件的话
这个文件的话
2:34.640–2:35.560
zh一般是在
一般是在
2:35.560–2:36.760
zh大家啊
大家啊
2:36.760–2:38.500
zh如果你没有设置过Codex
如果你没有设置过Codex
2:38.500–2:40.100
zh它的一个home环境变量的话
它的一个home环境变量的话
2:40.100–2:41.060
zh默认的话
默认的话
2:41.060–2:43.580
zh它就是在当前的登录用户下面啊
它就是在当前的登录用户下面啊
2:43.580–2:44.840
zh当前的登录用户下面
当前的登录用户下面
2:44.840–2:46.720
zh有一个叫.codex的一个目录
有一个叫.codex的一个目录
2:46.720–2:48.300
zh然后这个目录下面有一个叫
然后这个目录下面有一个叫
2:48.300–2:49.900
zhconfig.toml文件
config.toml文件
2:49.900–2:52.220
zh那这个文件的话
那这个文件的话
2:52.220–2:52.700
zh主要
主要
2:52.700–2:55.080
zh他可以存储一些配置
他可以存储一些配置
2:55.080–2:58.640
zh就是Codex这个整个一个应用
就是Codex这个整个一个应用
2:58.640–3:00.700
zh他的一些核心的一些配置的话
他的一些核心的一些配置的话
3:00.700–3:01.340
zh都在这个里面
都在这个里面
3:01.340–3:02.540
zh那我们的mcp
那我们的mcp
3:02.540–3:04.420
zh他其实也可以在这个里面去配置
他其实也可以在这个里面去配置
3:04.420–3:06.020
zh那这里面我们就给大家看一下
那这里面我们就给大家看一下
3:06.020–3:09.420
zh那这个配置文件的话
那这个配置文件的话
3:09.420–3:12.540
zh大家就打开你当前登录用户的那个home
大家就打开你当前登录用户的那个home
3:12.540–3:14.000
zh那个主目录
那个主目录
3:14.000–3:16.580
zh然后找到一个叫.codex的一个目录
然后找到一个叫.codex的一个目录
3:16.580–3:20.580
zh然后我们就可以看到一个叫config.toml文件
然后我们就可以看到一个叫config.toml文件
3:20.580–3:22.380
zh那我们这里面去搜一下
那我们这里面去搜一下
3:22.380–3:23.500
zh这里面你看
这里面你看
3:23.500–3:25.580
zh就有我之前配置好的一些
就有我之前配置好的一些
3:25.580–3:27.520
zhMCP服务
MCP服务
3:27.520–3:28.860
zh这是我之前写的一些
这是我之前写的一些
3:28.860–3:30.160
zh测试的一些case
测试的一些case
3:30.160–3:32.540
zh那在这个里面我们可以看到
那在这个里面我们可以看到
3:32.540–3:34.580
zh它首先有一个
它首先有一个
3:34.580–3:36.120
zh这个叫做MCP Server的
这个叫做MCP Server的
3:36.120–3:36.860
zh这么一个前缀
这么一个前缀
3:36.860–3:37.220
zh是吧
是吧
3:37.220–3:39.760
zh用这种中括号的这种方式
用这种中括号的这种方式
3:39.760–3:41.700
zh把它去约定好
把它去约定好
3:41.700–3:44.240
zh这个就是MCP Server的一个名称
这个就是MCP Server的一个名称
3:44.240–3:46.740
zh然后MCP Server
然后MCP Server
3:46.740–3:49.280
zh这个是一个STDIO协议的
这个是一个STDIO协议的
3:49.280–3:52.200
zh就是本地进程运行的这种MCP服务
就是本地进程运行的这种MCP服务
3:52.200–3:54.560
zh那么它的一个运行的命令的话
那么它的一个运行的命令的话
3:54.560–3:55.880
zh就执行一个python命令
就执行一个python命令
3:55.880–3:57.540
zh所以我们这个mcp server
所以我们这个mcp server
3:57.540–3:59.720
zh它主要就是通过这么一段
它主要就是通过这么一段
3:59.720–4:01.820
enhello mcp server.python
hello mcp server.python
4:01.820–4:03.860
zh这个脚本的方式去运行
这个脚本的方式去运行
4:03.860–4:07.020
zh所以我们等下给它演示的话
所以我们等下给它演示的话
4:07.020–4:08.520
zh主要就是基于这个
主要就是基于这个
4:08.520–4:12.080
zh我们的一个本地进程
我们的一个本地进程
4:12.080–4:14.740
zh当然我们也可以去写HTTP的这种协议
当然我们也可以去写HTTP的这种协议
4:14.740–4:15.560
zh那这样的话
那这样的话
4:15.560–4:18.500
zh你就要用SSE的这么一个通讯协议
你就要用SSE的这么一个通讯协议
4:18.500–4:20.220
zh这个一般是做
这个一般是做
4:20.220–4:22.440
zh对外提供API的这种场景
对外提供API的这种场景
4:22.440–4:23.360
zh就是你的这个
就是你的这个
4:23.360–4:26.120
zhMCP服务要对外提供服务
MCP服务要对外提供服务
4:26.120–4:26.920
zh要有域名
要有域名
4:26.920–4:28.160
zh要有公网的一个IP
要有公网的一个IP
4:28.160–4:30.740
zh把它发布到这个服务器上面去
把它发布到这个服务器上面去
4:30.740–4:32.880
zh这个就用的比较多一点
这个就用的比较多一点
4:32.880–4:34.560
zh如果大家只是本地去
如果大家只是本地去
4:34.560–4:37.840
zh做一些MCP服务的一些工具的话
做一些MCP服务的一些工具的话
4:37.840–4:39.200
zh那你直接用
那你直接用
4:39.200–4:41.920
zh这个STDIO的这种方式就可以了
这个STDIO的这种方式就可以了
4:41.920–4:43.820
zh比如说就是跑一个命令什么样的
比如说就是跑一个命令什么样的
4:43.820–4:45.620
zh比如说我们现在起来一个
比如说我们现在起来一个
4:45.620–4:48.060
zhPython的这个服务是吧
Python的这个服务是吧
4:48.060–4:49.760
zh那我想在本地去运行
那我想在本地去运行
4:49.760–4:51.600
zh那你会把它封装成一个
那你会把它封装成一个
4:51.600–4:52.600
zhMCP的一个server
MCP的一个server
4:52.600–4:54.560
zh这样的话它就
这样的话它就
4:54.560–4:56.440
zh也能跑起来
也能跑起来
4:56.440–4:58.620
zh那这个MCP server的话
那这个MCP server的话
4:58.620–5:00.480
zh应该是怎么样一个搭建方式呢
应该是怎么样一个搭建方式呢
5:00.480–5:01.900
zh首先的话
首先的话
5:01.900–5:05.260
zh这个里面我们要去做一些
这个里面我们要去做一些
5:05.260–5:06.600
zh这个配置
这个配置
5:06.600–5:08.560
zh那么
那么
5:08.560–5:10.900
zh这个的话大家可以在
这个的话大家可以在
5:10.900–5:12.160
zh插件里面啊
插件里面啊
5:12.160–5:14.760
zh就是你可以在Cursor或者VSCode里面
就是你可以在Cursor或者VSCode里面
5:14.760–5:16.580
zh装一个Codex插件啊
装一个Codex插件啊
5:16.580–5:18.340
zh我这已经装好了这么一个插件了
我这已经装好了这么一个插件了
5:18.340–5:19.660
zh这个插件的话
这个插件的话
5:19.660–5:22.080
zh装好之后大家打开这个codex
装好之后大家打开这个codex
5:22.080–5:23.700
zh就在这个里面
就在这个里面
5:23.700–5:24.660
zh一般在这个里面
一般在这个里面
5:24.660–5:25.880
zh我们会找到一个codex
我们会找到一个codex
5:25.880–5:27.920
zh找到之后的话
找到之后的话
5:27.920–5:28.980
zh接下来就是
接下来就是
5:28.980–5:31.940
zh你看在这里面有一个齿轮的一个图标设置
你看在这里面有一个齿轮的一个图标设置
5:31.940–5:34.340
zh然后设置里面有一个codex search
然后设置里面有一个codex search
5:34.340–5:35.460
zh然后我们点开page
然后我们点开page
5:35.460–5:38.360
zh这样就大家可以找到这个config.toml
这样就大家可以找到这个config.toml
5:38.360–5:39.940
zh然后在这个地方你看
然后在这个地方你看
5:39.940–5:43.040
zh他还有一个菜单叫做mcp服务器
他还有一个菜单叫做mcp服务器
5:43.040–5:43.920
zh让我们点开
让我们点开
5:43.920–5:45.320
zh你看现在就是我配好的
你看现在就是我配好的
5:45.320–5:48.700
zh那你可以针对这些个mcp server的话
那你可以针对这些个mcp server的话
5:48.700–5:49.920
zh给它启用啊
给它启用啊
5:49.920–5:51.320
zh你看启用完了之后
你看启用完了之后
5:51.320–5:54.240
zh其实就是在这个里面改一个配置啊
其实就是在这个里面改一个配置啊
5:54.240–5:56.280
zh它这个enable true false
它这个enable true false
5:56.280–5:56.840
zh是吧
是吧
5:56.840–5:58.260
zh就相当于在这里改
就相当于在这里改
5:58.260–5:59.920
zh你看我现在都把它启用了
你看我现在都把它启用了
5:59.920–6:01.360
zh然后就是
然后就是
6:01.360–6:03.700
zh我再重启一下拓展功能
我再重启一下拓展功能
6:03.700–6:05.660
zh
6:05.660–6:07.320
zh这个是重新加载插件啊
这个是重新加载插件啊
6:07.320–6:08.340
zh有时候不生效的话
有时候不生效的话
6:08.340–6:09.660
zh大家就可以去点一下
大家就可以去点一下
6:09.660–6:12.180
zh然后呃
然后呃
6:12.180–6:13.400
zh加载完之后的话
加载完之后的话
6:13.400–6:15.360
zh这里面啊
这里面啊
6:15.360–6:17.220
zh它这个插件的话会重新激活
它这个插件的话会重新激活
6:17.220–6:18.580
zh这里我们要稍微等待一下
这里我们要稍微等待一下
6:18.580–6:20.940
zh正常我们是不需要重启的
正常我们是不需要重启的
6:20.940–6:23.120
zh如果大家遇到这个MCP服务
如果大家遇到这个MCP服务
6:23.120–6:24.080
zh加载有问题是吧
加载有问题是吧
6:24.080–6:24.960
zh你可以去点一下
你可以去点一下
6:24.960–6:27.460
zh重新加载这个拓展插件啊
重新加载这个拓展插件啊
6:27.460–6:28.980
zh然后在这个里面
然后在这个里面
6:28.980–6:30.060
zh我们配好之后的话
我们配好之后的话
6:30.060–6:31.680
zh我们继续打开刚刚那个page
我们继续打开刚刚那个page
6:31.680–6:32.980
zh然后大家看
然后大家看
6:32.980–6:34.580
zh这个是不是都变成false了是吧
这个是不是都变成false了是吧
6:34.580–6:35.980
zh然后你现在给他
然后你现在给他
6:35.980–6:39.480
zh我们可以把它全部给他启用掉啊
我们可以把它全部给他启用掉啊
6:39.480–6:43.420
zh启用掉之后
启用掉之后
6:43.420–6:45.500
zh你看我们现在是都变成true
你看我们现在是都变成true
6:45.500–6:45.880
zh是吧
是吧
6:45.880–6:48.400
zh这个就是MCP server的一个
这个就是MCP server的一个
6:48.400–6:49.800
zh开启
开启
6:49.800–6:51.860
zh然后还有这个关闭
然后还有这个关闭
6:51.860–6:54.560
zh但这个是有图形化界面的
但这个是有图形化界面的
6:54.560–6:56.280
zh大家其实你也可以通过
大家其实你也可以通过
6:56.280–6:58.040
zh这个终端命令来操作
这个终端命令来操作
6:58.040–6:59.920
zh比如说我们现在打开一个
比如说我们现在打开一个
6:59.920–7:00.860
zh终端
终端
7:00.860–7:02.800
zh然后切换到
然后切换到
7:02.800–7:06.100
zh我们切换到第一盘上面去
我们切换到第一盘上面去
7:06.100–7:07.140
zh然后
然后
7:07.140–7:09.580
zh之前有一个Codex目录
之前有一个Codex目录
7:09.580–7:12.240
zh然后在这个里面
然后在这个里面
7:12.240–7:14.220
zh我们可以输入Codex
我们可以输入Codex
7:14.220–7:16.700
zh进去之后
进去之后
7:16.700–7:18.800
zh我们输入反斜杠啊
我们输入反斜杠啊
7:18.800–7:19.700
zh然后mcp
然后mcp
7:19.700–7:21.580
zh然后大家看啊
然后大家看啊
7:21.580–7:22.780
zh你说mcp之后
你说mcp之后
7:22.780–7:26.280
zh你就可以看到我们当前的一些mcp的一些工具是吧
你就可以看到我们当前的一些mcp的一些工具是吧
7:26.280–7:28.700
zh但是我现在不都把它关闭了吗
但是我现在不都把它关闭了吗
7:28.700–7:31.120
zh所以它是available的啊
所以它是available的啊
7:31.120–7:33.040
zh就是没有没有啊
就是没有没有啊
7:33.040–7:33.920
enno available
no available
7:33.920–7:35.620
zh就是没有可用的啊
就是没有可用的啊
7:35.620–7:41.080
zh好那接下来我们就来从零到一给他写一个非常简单的一个mcp server
好那接下来我们就来从零到一给他写一个非常简单的一个mcp server
7:41.080–7:44.420
zh那写mcp server的话啊
那写mcp server的话啊
7:44.420–7:46.360
zh大家如果是第一次写的话
大家如果是第一次写的话
7:46.360–7:47.400
zh其实也很简单
其实也很简单
7:47.400–7:49.120
zh你可以直接让这个
你可以直接让这个
7:49.120–7:52.920
zh这个Codex帮你去写一个mcp server
这个Codex帮你去写一个mcp server
7:52.920–7:56.100
zh比如说我们现在就建一个文件夹
比如说我们现在就建一个文件夹
7:56.100–7:59.440
zh叫做mcp server
叫做mcp server
8:03.896–8:06.896
zh然后我们在这个目录里面。
然后我们在这个目录里面。
8:06.896–8:10.396
zh这里面啊
这里面啊
8:10.396–8:13.196
zh我们就直接在这个Codex里面
我们就直接在这个Codex里面
8:13.196–8:14.596
zh直接就这样去对话了
直接就这样去对话了
8:14.596–8:18.096
zh或者大家你直接在这个里面啊
或者大家你直接在这个里面啊
8:18.096–8:20.976
zh我们之前这个桌面板
我们之前这个桌面板
8:20.976–8:22.036
zh其实也已经启用了
其实也已经启用了
8:22.036–8:22.436
zh是吧
是吧
8:22.436–8:25.756
zh或者大家你在这个终端里面也可以啊
或者大家你在这个终端里面也可以啊
8:25.756–8:27.856
zh那我们就切换到那个目录里面去写吧
那我们就切换到那个目录里面去写吧
8:27.856–8:31.376
zh切换到mcp server这个目录里面
切换到mcp server这个目录里面
8:31.376–8:32.356
zh我们启动Codex
我们启动Codex
8:32.356–8:35.396
zh让他把mcp的这个服务啊
让他把mcp的这个服务啊
8:35.396–8:37.276
zh开发到这个module里面去
开发到这个module里面去
8:37.276–8:39.496
zh然后你就这么跟他说
然后你就这么跟他说
8:39.496–8:42.216
zh我们先写一个简单的小case
我们先写一个简单的小case
8:42.216–8:46.396
zh帮我实现一个mcp
帮我实现一个mcp
8:46.396–8:47.476
enserver
server
8:47.476–8:54.096
zh名称叫做file manage
名称叫做file manage
8:54.096–8:58.036
enmanage mcp
manage mcp
8:58.036–9:00.476
zh或者就叫serv
或者就叫serv
9:00.476–9:03.416
zh这个我就是主要是用来去管理当前文件的
这个我就是主要是用来去管理当前文件的
9:03.416–9:07.516
zh那么就是叫 server
那么就是叫 server
9:09.576–9:10.956
zh主要用于
主要用于
9:11.716–9:13.216
zh我就不加这个 server
我就不加这个 server
9:13.216–9:14.956
zh就叫 file manager 吧
就叫 file manager 吧
9:14.956–9:16.176
zh主要用于这个
主要用于这个
9:19.116–9:19.756
zh本地
本地
9:21.216–9:22.876
zh文件管理
文件管理
9:23.916–9:27.076
zh就是我可以搭建一个 mcp server
就是我可以搭建一个 mcp server
9:27.076–9:28.876
zh然后外面是吧
然后外面是吧
9:28.876–9:29.676
zh连接进来的话
连接进来的话
9:29.676–9:31.456
zh主要可以去操作一些文件
主要可以去操作一些文件
9:31.456–9:32.676
zh那我们就
那我们就
9:33.416–9:34.616
zh让它实现一下
让它实现一下
9:34.616–9:38.356
zh这个就是我们基于这个Codex
这个就是我们基于这个Codex
9:38.356–9:40.436
zh让它帮我们去开发一个MCP server
让它帮我们去开发一个MCP server
9:40.436–9:43.956
zh你看它这个里面的话
你看它这个里面的话
9:43.956–9:46.556
zh就会去把这个风格给写清楚
就会去把这个风格给写清楚
9:46.556–9:50.916
zh就是它会按照MCP server的一个接入方式
就是它会按照MCP server的一个接入方式
9:50.916–9:52.036
zh然后去做一个patch
然后去做一个patch
9:52.036–10:02.316
zh你看它会建一个node.js的一个MCP server
你看它会建一个node.js的一个MCP server
10:02.316–10:04.496
zh所以它是基于node.js
所以它是基于node.js
10:04.496–10:05.176
zh这个就实现
这个就实现
10:05.176–10:08.256
zh因为我这里没有指定实现的方式
因为我这里没有指定实现的方式
10:08.256–10:10.076
zh所以大家比如说
所以大家比如说
10:10.076–10:11.576
zh你如果想用python去实现的话
你如果想用python去实现的话
10:11.576–10:12.296
zh也是可以的
也是可以的
10:12.296–10:15.676
zh因为我之前在这个项目里面
因为我之前在这个项目里面
10:15.676–10:18.376
zh立的规范是用node.js的一些技术站
立的规范是用node.js的一些技术站
10:18.376–10:19.876
zh所以的话
所以的话
10:19.876–10:21.776
zh所以它默认帮我们会优先
所以它默认帮我们会优先
10:21.776–10:23.536
zh用node.js的一些技术去做
用node.js的一些技术去做
10:23.536–10:26.196
zh所以大家有具体的一个要求的话
所以大家有具体的一个要求的话
10:26.196–10:27.976
zh你也可以去提
你也可以去提
10:27.976–10:30.096
zh就是让它按照某个方式
就是让它按照某个方式
10:30.096–10:32.036
zh你看它默认就是用了
你看它默认就是用了
10:32.036–10:34.376
zh这个JRPC
这个JRPC
10:34.376–10:36.136
zhSTDIO的这种方式
STDIO的这种方式
10:36.136–10:39.036
zh所以这个就是他默认的一个实现方式
所以这个就是他默认的一个实现方式
10:39.036–10:42.416
zh然后他会写到
然后他会写到
10:42.416–10:43.776
zh这个有一个MCP
这个有一个MCP
10:43.776–10:45.436
zhServer的这个目入里面去
Server的这个目入里面去
10:45.436–10:47.336
zh现在还正在开发
现在还正在开发
10:47.336–10:52.276
zh所以这个其实是一个
所以这个其实是一个
10:52.276–10:55.776
zh你可以看到他整个的一个实现过程
你可以看到他整个的一个实现过程
10:55.776–10:57.116
zh其实没有那么麻烦
其实没有那么麻烦
10:57.116–10:59.816
zh然后其实我们等一下
然后其实我们等一下
10:59.816–11:01.076
zh开发完之后的话
开发完之后的话
11:01.076–11:03.216
zh我们就可以做一个配置了
我们就可以做一个配置了
11:03.216–11:04.316
zh做一个配置了
做一个配置了
11:04.316–11:06.836
zh当然大家也其实可以用
当然大家也其实可以用
11:06.836–11:09.056
zh这个外网的一些MCP server
这个外网的一些MCP server
11:09.056–11:09.456
zh是吧
是吧
11:09.456–11:11.996
zh就是别人给我写好的一些这个server
就是别人给我写好的一些这个server
11:11.996–11:12.776
zh行不行呢
行不行呢
11:12.776–11:14.416
zh你看就是我可以把
你看就是我可以把
11:14.416–11:16.456
zh这个免费的这个MCP server
这个免费的这个MCP server
11:16.456–11:17.136
zh给它加进来
给它加进来
11:17.136–11:17.416
zh是吧
是吧
11:17.416–11:19.816
zh这个是其他开发者提供的一个
这个是其他开发者提供的一个
11:19.816–11:21.356
zhcontext7的一个MCP
context7的一个MCP
11:21.356–11:23.936
zh那我们可以通过这个命令横啊
那我们可以通过这个命令横啊
11:23.936–11:26.356
zh给它加入进来
给它加入进来
11:26.356–11:32.016
zh这里面我们让他去开发
这里面我们让他去开发
11:32.016–11:34.596
zh然后我们这里再开一个窗口
然后我们这里再开一个窗口
11:34.596–11:36.516
zh给大家演示两种
给大家演示两种
11:36.516–11:38.656
zh一种是我们自己开发
一种是我们自己开发
11:38.656–11:42.296
zh还有一种是我们这个自己去用别人的是吧
还有一种是我们这个自己去用别人的是吧
11:42.296–11:46.516
zh然后切换到这个Codex
然后切换到这个Codex
11:46.516–11:49.116
zh
11:49.116–11:50.736
zh这个然后我们就给他加一下
这个然后我们就给他加一下
11:50.736–11:53.216
zh你看现在已经加成功了
你看现在已经加成功了
11:53.216–11:55.016
zh然后我们进入到这个Codex
然后我们进入到这个Codex
11:55.016–11:57.256
zh输入这个mcp
输入这个mcp
11:57.256–12:03.556
zh那现在正在加载
那现在正在加载
12:03.556–12:08.436
zh你看这个刚刚还没有是吧
你看这个刚刚还没有是吧
12:08.436–12:10.336
zh这个是我们刚刚加进来的
这个是我们刚刚加进来的
12:10.336–12:11.036
zh是不是就有了
是不是就有了
12:11.036–12:13.316
zh但是它是未授权的
但是它是未授权的
12:13.316–12:16.056
zh因为这个是一个第三方的一个服务是吧
因为这个是一个第三方的一个服务是吧
12:16.056–12:18.576
zh所以这个是没有支持的啊
所以这个是没有支持的啊
12:18.576–12:20.916
zh就是你要去用的话
就是你要去用的话
12:20.916–12:22.616
zh它可能要做一些授权处理
它可能要做一些授权处理
12:22.616–12:23.856
zh
12:23.856–12:26.376
zh那你就比如说我们刚刚加进来
那你就比如说我们刚刚加进来
12:26.376–12:27.616
zh这个context7的话
这个context7的话
12:27.616–12:28.736
zh你要去使用它
你要去使用它
12:28.736–12:31.976
zh就比如说调用context
就比如说调用context
12:31.976–12:35.516
zh你或者你就直接问他
你或者你就直接问他
12:35.516–12:37.756
encontext7
context7
12:37.756–12:42.056
zh这个mcp5
这个mcp5
12:42.056–12:48.896
zh主要的用途是什么
主要的用途是什么
12:48.896–12:50.496
zh你就直接问他
你就直接问他
12:50.496–12:52.696
zh因为你也不知道他的一个用法
因为你也不知道他的一个用法
12:52.696–12:53.196
zh是吧
是吧
12:53.196–12:57.516
zh你看这个是就是给编码助手提供
你看这个是就是给编码助手提供
12:57.516–12:59.816
zh最新的第三方库框架文档
最新的第三方库框架文档
12:59.816–13:00.436
zh示例代码
示例代码
13:00.436–13:04.696
zh他主要就是比如说去查询一些库文档的一些用法
他主要就是比如说去查询一些库文档的一些用法
13:04.696–13:06.636
zh比如说你去问
比如说你去问
13:06.636–13:08.816
zh应该怎么样去写
应该怎么样去写
13:08.816–13:09.696
zh是吧
是吧
13:09.696–13:13.816
zh那我们就比如说你就我们就随便问他
那我们就比如说你就我们就随便问他
13:13.816–13:18.756
zh你就把这个问题丢给他
你就把这个问题丢给他
13:20.496–13:28.496
zh调用context7mcp服务
调用context7mcp服务
13:28.496–13:31.296
zh然后去把这个问题丢给他就完了
然后去把这个问题丢给他就完了
13:31.296–13:34.536
zh那么他就开始可以去调用这个服务了
那么他就开始可以去调用这个服务了
13:34.536–13:37.836
zh这个就是我们在整个的一个
这个就是我们在整个的一个
13:37.836–13:39.896
zhCodex 里面去怎么调用这个服务
Codex 里面去怎么调用这个服务
13:39.896–13:41.536
zh调用其实很简单
调用其实很简单
13:41.536–13:44.896
zh就把它正常当工具去使用就可以了
就把它正常当工具去使用就可以了
13:44.896–13:46.236
zh你看这个里面
你看这个里面
13:46.236–13:49.836
zh我们他查询到的一些内容是不是就出来了
我们他查询到的一些内容是不是就出来了
13:49.836–13:52.176
zh这个就是一个MCP服务的一个使用
这个就是一个MCP服务的一个使用
13:52.176–13:54.236
zh然后我们回头再到这个里面去看一下
然后我们回头再到这个里面去看一下
13:54.236–13:56.676
zh你看这个服务是不是就进来了是吧
你看这个服务是不是就进来了是吧
13:56.676–13:58.836
zh方便是启用的一个状态
方便是启用的一个状态
13:58.836–14:01.236
zh这个就是MCP server 的一个使用啊
这个就是MCP server 的一个使用啊
14:01.236–14:03.936
zh我们再回头看一下刚刚那个写完的一个
我们再回头看一下刚刚那个写完的一个
14:03.936–14:07.296
zh我们自己搭的一个MCP server
我们自己搭的一个MCP server
14:07.296–14:10.796
zh这个该怎么样去配置是吧
这个该怎么样去配置是吧
14:10.796–14:12.196
zh怎么去使用啊
怎么去使用啊
14:12.196–14:13.996
zh其实也很简单
其实也很简单
14:13.996–14:16.676
zh我们看一下这个目录
我们看一下这个目录
14:16.676–14:19.676
zh首先在这个你看这个mcp server里面
首先在这个你看这个mcp server里面
14:20.736–14:23.916
zh我们这里再给他建个文件夹吧
我们这里再给他建个文件夹吧
14:23.916–14:26.616
zh因为他都把它放到里面去了
因为他都把它放到里面去了
14:26.616–14:27.976
enmcp server
mcp server
14:27.976–14:29.716
zh那我专门建一个文件夹
那我专门建一个文件夹
14:29.716–14:32.916
zh叫做file manager
叫做file manager
14:32.916–14:34.276
zh是吧
是吧
14:34.276–14:36.636
zh然后把它移进去啊
然后把它移进去啊
14:39.936–14:41.376
zh然后接下来一个问题就是
然后接下来一个问题就是
14:41.376–14:44.076
zh哎我现在这个mcp写完了是吧
哎我现在这个mcp写完了是吧
14:44.076–14:46.616
zh那我接下来应该怎么来去用呢
那我接下来应该怎么来去用呢
14:46.616–14:47.176
zh对吧
对吧
14:47.176–14:50.616
zh这个是基于node.js写的一个mcp服务
这个是基于node.js写的一个mcp服务
14:50.616–14:53.156
zh你看这些个内容
你看这些个内容
14:53.156–14:54.276
zh他也帮我都实现了
他也帮我都实现了
14:54.276–14:56.036
zh接下来这个怎么来用呢
接下来这个怎么来用呢
14:56.036–14:57.716
zh那就是配置的问题
那就是配置的问题
14:57.716–14:59.616
zh配置这一块的话
配置这一块的话
14:59.616–15:03.516
zh大家就是有其实有几种方式
大家就是有其实有几种方式
15:03.516–15:04.416
zh第一种
第一种
15:04.416–15:06.356
zh如果你对这个配置文件比较熟的话
如果你对这个配置文件比较熟的话
15:06.356–15:09.216
zh你直接在这个里面去配就可以了
你直接在这个里面去配就可以了
15:09.216–15:10.976
zh就是他这里面就是配置文件
就是他这里面就是配置文件
15:10.976–15:12.176
zh你把它复制粘贴一下
你把它复制粘贴一下
15:12.176–15:13.416
zh这个mcp server
这个mcp server
15:13.416–15:15.316
zh这里面就相当于就已经生效了
这里面就相当于就已经生效了
15:15.316–15:15.636
zh是吧
是吧
15:15.636–15:16.836
zh但是啊
但是啊
15:16.836–15:17.936
zh这里这种方式的话
这里这种方式的话
15:17.936–15:19.476
zh大家第一次你如果不熟的话
大家第一次你如果不熟的话
15:19.476–15:20.636
zh你可能会配置出错
你可能会配置出错
15:20.636–15:22.076
zh那怎么办呢
那怎么办呢
15:22.076–15:23.216
zh其实也很简单啊
其实也很简单啊
15:23.216–15:25.856
zh你就直接Codex去提问就可以了
你就直接Codex去提问就可以了
15:25.856–15:28.316
zh就是你直接让Codex帮你去配置就完了
就是你直接让Codex帮你去配置就完了
15:28.316–15:28.636
zh是吧
是吧
15:28.636–15:29.836
zh那我们在
那我们在
15:29.836–15:31.036
zh因为我刚刚建了一个目录
因为我刚刚建了一个目录
15:31.036–15:33.336
zh所以我要切换到这个
所以我要切换到这个
15:33.336–15:35.156
zh这个里面去啊
这个里面去啊
15:35.156–15:35.936
enmcp server
mcp server
15:35.936–15:38.316
zh然后再切换到file manager
然后再切换到file manager
15:38.316–15:40.536
zh然后放到外面吧
然后放到外面吧
15:40.536–15:42.056
zh在这个里面啊
在这个里面啊
15:42.056–15:46.056
zh然后我在这个里面去切换Codex
然后我在这个里面去切换Codex
15:46.056–15:47.216
zh
15:47.216–15:50.456
zh然后接下来你就很简单了啊
然后接下来你就很简单了啊
15:50.456–15:52.216
zh你就直接这么说
你就直接这么说
15:52.216–15:54.816
zh请帮我交
请帮我交
15:54.816–15:57.296
enfile
file
15:57.296–15:59.496
enmanager
manager
15:59.496–16:01.296
zh配置到
配置到
16:07.320–16:13.320
zh配置成mc codex的mcp服务就可以了。
配置成mc codex的mcp服务就可以了。
16:13.320–16:14.040
zh就这么跟他说
就这么跟他说
16:14.040–16:15.480
zh他会自动的去分析的啊
他会自动的去分析的啊
16:15.480–16:16.540
zh应该怎么来配
应该怎么来配
16:16.540–16:18.380
zh加到配置文件里面
加到配置文件里面
16:18.380–16:20.260
zh你看他会去分析啊
你看他会去分析啊
16:20.260–16:22.360
zh他不是一下来就直接给你配了啊
他不是一下来就直接给你配了啊
16:22.360–16:23.280
zh他得分析一下
他得分析一下
16:23.280–16:26.440
zh你当前这个是不是一个标准的MCP server
你当前这个是不是一个标准的MCP server
16:26.440–16:26.960
zh是吧
是吧
16:26.960–16:28.480
zh能不能啊
能不能啊
16:28.480–16:29.320
zh能不能用
能不能用
16:29.320–16:32.200
zh他得分析一下这个基本的逻辑有没有问题吧
他得分析一下这个基本的逻辑有没有问题吧
16:32.200–16:33.800
zh不是一上来就给你配了啊
不是一上来就给你配了啊
16:33.800–16:34.580
zh配完不能用
配完不能用
16:34.580–16:35.940
zh他是不行的
他是不行的
16:35.940–16:38.460
zh所以Codex的一个智能之处就是在于
所以Codex的一个智能之处就是在于
16:38.460–16:40.460
zh他会帮你去验证啊
他会帮你去验证啊
16:40.460–16:43.060
zh验证这个MCP server里面到底能不能用
验证这个MCP server里面到底能不能用
16:43.060–16:43.440
zh是吧
是吧
16:43.440–16:44.300
zh如果不能用的话
如果不能用的话
16:44.300–16:46.480
zh他可能会报一些错误
他可能会报一些错误
16:46.480–16:47.660
zh所以这个里面你看
所以这个里面你看
16:47.660–16:49.500
zh他就发现了一些问题啊
他就发现了一些问题啊
16:49.500–16:51.820
zh比如说这个readme少了一层fire manager
比如说这个readme少了一层fire manager
16:51.820–16:54.440
zh他会按实际的这个路口来配置
他会按实际的这个路口来配置
16:54.440–16:55.280
zh是吧
是吧
16:55.280–16:59.720
zh然后包括一些执行时候啊
然后包括一些执行时候啊
16:59.720–17:00.460
zh可能一些进程
可能一些进程
17:00.460–17:02.080
zh可能会有一些权限的一些问题
可能会有一些权限的一些问题
17:02.080–17:04.020
zh那他都会帮你去处理啊
那他都会帮你去处理啊
17:04.020–17:06.180
zh按照他的一个指引去操作就可以了
按照他的一个指引去操作就可以了
17:06.180–17:08.720
zh所以整个啊
所以整个啊
17:08.720–17:10.740
zh我们其实都可以让AI来帮我们完成
我们其实都可以让AI来帮我们完成
17:10.740–17:11.640
zh但是的话
但是的话
17:11.640–17:12.700
zh大家需要知道
大家需要知道
17:12.700–17:14.180
zh他整个一个逻辑啊
他整个一个逻辑啊
17:14.180–17:16.480
zh比如说这个mcp配置文件在哪里
比如说这个mcp配置文件在哪里
17:16.480–17:17.400
zh怎么来配
怎么来配
17:17.400–17:18.460
zh应该是怎么一个规范
应该是怎么一个规范
17:18.460–17:19.960
zh遇到问题之后啊
遇到问题之后啊
17:19.960–17:21.980
zh因为AI他其实也不能保证说
因为AI他其实也不能保证说
17:21.980–17:23.600
zh就都没问题了是吧
就都没问题了是吧
17:23.600–17:25.000
zh有些情况下
有些情况下
17:25.000–17:26.260
zh他解决不了的问题
他解决不了的问题
17:26.260–17:28.000
zh还是需要我们人为去排查
还是需要我们人为去排查
17:28.000–17:29.780
zh纠正再给他一些建议的
纠正再给他一些建议的
17:29.780–17:31.760
zh如果大家不理解这个整个的一个
如果大家不理解这个整个的一个
17:31.760–17:32.520
zh配置逻辑的话
配置逻辑的话
17:32.520–17:36.380
zh你后面其实也不太好去解决这些问题啊
你后面其实也不太好去解决这些问题啊
17:36.380–17:38.180
zh所以AI确实能帮我们干活
所以AI确实能帮我们干活
17:38.180–17:40.540
zh但是我们还是需要人为去做一个审查
但是我们还是需要人为去做一个审查
17:40.540–17:42.520
zh做一些这个指导
做一些这个指导
17:42.520–17:42.900
zh是吧
是吧
17:42.900–17:43.920
zh这样的话
这样的话
17:43.920–17:46.600
zh我们的这个效率的话才会高
我们的这个效率的话才会高
17:46.600–17:49.620
zh你看现在他们是不是就把我们配好了
你看现在他们是不是就把我们配好了
17:49.620–17:53.140
zh他在这个POM里面145行
他在这个POM里面145行
17:53.140–17:54.100
zh我们找一下
我们找一下
17:54.100–17:55.740
zh145行
145行
17:55.740–17:57.800
zh你看是不是现在把我们配好了
你看是不是现在把我们配好了
17:57.800–17:58.840
enFile Manager
File Manager
17:58.840–18:02.140
zh然后是基于Node.js的方式去运行的
然后是基于Node.js的方式去运行的
18:02.140–18:04.680
zh然后核心的话就是去执行这个js
然后核心的话就是去执行这个js
18:04.680–18:05.300
zh是吧
是吧
18:05.300–18:06.900
zh然后已经启用了
然后已经启用了
18:06.900–18:09.100
zh并且的话
并且的话
18:09.100–18:10.640
zh你看他还帮我们验证了
你看他还帮我们验证了
18:10.640–18:12.080
zh这个是最关键的
这个是最关键的
18:12.080–18:14.020
zh就这个MCP服务到底能不能用
就这个MCP服务到底能不能用
18:14.020–18:16.300
zh后再次帮我们考虑的非常完善
后再次帮我们考虑的非常完善
18:16.300–18:18.720
zh保证它是可以正常启动的
保证它是可以正常启动的
18:18.720–18:19.500
zh并且的话
并且的话
18:19.500–18:20.940
zh这个状态是enabled
这个状态是enabled
18:20.940–18:24.340
zh然后PowerShell拦截了NPM.PS1
然后PowerShell拦截了NPM.PS1
18:24.340–18:26.880
zh所以他把它优化一下
所以他把它优化一下
18:26.880–18:28.960
zh因为PowerShell会有一个权限
因为PowerShell会有一个权限
18:28.960–18:31.460
zh就是不能随便去运行
就是不能随便去运行
18:31.460–18:34.600
zh所以他会用NPM.CMD
所以他会用NPM.CMD
18:34.600–18:36.260
zh因为这个权限的话会更高
因为这个权限的话会更高
18:36.260–18:38.520
zh但是因为咱们这个是管理员模式
但是因为咱们这个是管理员模式
18:38.520–18:40.180
zh所以应该也没什么问题
所以应该也没什么问题
18:40.180–18:43.520
zh然后就是我们再看一下
然后就是我们再看一下
18:43.520–18:45.160
zh把这些mcp服务
把这些mcp服务
18:45.160–18:47.240
zh看一下刚刚那个已经有没有配置成功
看一下刚刚那个已经有没有配置成功
18:47.240–18:49.520
zh你看file manager
你看file manager
18:49.520–18:50.920
zh是不是就OK了
是不是就OK了
18:50.920–18:53.720
zh然后这个file manager到底能干嘛呢
然后这个file manager到底能干嘛呢
18:53.720–18:54.780
zh比如说我们自己搭建的
比如说我们自己搭建的
18:54.780–18:56.300
zh大家可能也不知道怎么用是吧
大家可能也不知道怎么用是吧
18:56.300–18:58.200
zh因为他这点看全是英文的
因为他这点看全是英文的
18:58.200–18:59.760
zh这些个工具是吧
这些个工具是吧
18:59.760–19:01.160
zh开发人员可能会比较清楚
开发人员可能会比较清楚
19:01.160–19:03.520
zh但是技术小白的话可能不知道
但是技术小白的话可能不知道
19:03.520–19:04.920
zh那你也很简单
那你也很简单
19:04.920–19:05.820
zh你就直接问他
你就直接问他
19:05.820–19:14.620
zh就是你直接问他
就是你直接问他
19:14.620–19:17.880
zhmcp服务怎么使用
mcp服务怎么使用
19:17.880–19:22.760
zh你就直接这么去问他
你就直接这么去问他
19:22.760–19:24.980
zh他会教你那些个服务
他会教你那些个服务
19:24.980–19:26.020
zh他的作用是什么
他的作用是什么
19:26.020–19:29.100
zh就是他提供的一些工具
就是他提供的一些工具
19:29.100–19:30.520
zh应该怎么来调用
应该怎么来调用
19:30.520–19:32.780
zh那这样的话就是
那这样的话就是
19:32.780–19:34.240
zh我们可以去
我们可以去
19:34.240–19:37.480
zh就是一个说明
就是一个说明
19:37.480–19:38.100
zh是吧
是吧
19:38.100–19:40.620
zh或者是你直接去用
或者是你直接去用
19:40.620–19:42.400
zh自然语言去对话也是可以的
自然语言去对话也是可以的
19:42.400–19:45.120
zh你看它的能力是什么呢
你看它的能力是什么呢
19:45.120–19:46.380
zh查询目录
查询目录
19:46.380–19:48.960
zh然后读取文本文件
然后读取文本文件
19:48.960–19:49.840
zh写文件
写文件
19:49.840–19:51.500
zh创建目录是吧
创建目录是吧
19:51.500–19:53.300
zh那我们就随便来验证一下
那我们就随便来验证一下
19:53.300–19:54.160
zh来测试一下呗
来测试一下呗
19:54.160–19:56.480
zh你就直接这么跟他说
你就直接这么跟他说
19:56.480–19:59.840
zh调用 file manager
调用 file manager
19:59.840–20:00.620
zh是吧
是吧
20:00.620–20:01.180
zh然后
然后
20:01.180–20:05.020
zh你就直接什么呢
你就直接什么呢
20:05.020–20:06.720
zh查询一下
查询一下
20:06.720–20:12.540
zh比如说我们现在有这个目录结构
比如说我们现在有这个目录结构
20:12.540–20:12.940
zh是吧
是吧
20:12.940–20:14.880
zh这个目录结构这里面
这个目录结构这里面
20:14.880–20:16.740
zh然后就随便查询一下
然后就随便查询一下
20:16.740–20:17.420
zh洛伊的这个
洛伊的这个
20:17.420–20:19.820
zh这个Codex目录下面有一个洛伊项目
这个Codex目录下面有一个洛伊项目
20:19.820–20:22.240
zh我想把这个项目的这个结构查询出来
我想把这个项目的这个结构查询出来
20:22.240–20:23.540
zh那你就把这个复制一下
那你就把这个复制一下
20:23.540–20:24.520
zh是吧
是吧
20:24.520–20:27.800
zh目录结构
目录结构
20:27.800–20:29.480
zh就提到这么一个需求
就提到这么一个需求
20:29.480–20:31.340
zh那他就调用这个MCP server
那他就调用这个MCP server
20:31.340–20:32.540
zh帮我们去干这个事情
帮我们去干这个事情
20:32.540–20:35.220
zh然后我看一下他能不能执行成功啊
然后我看一下他能不能执行成功啊
20:35.220–20:38.880
zh这个就是我们自己写的一个MCP服务
这个就是我们自己写的一个MCP服务
20:38.880–20:40.620
zh他应该怎么样去用
他应该怎么样去用
20:40.620–20:41.300
zh是吧
是吧
20:41.300–20:46.560
zh你看现在是基于MCP的一个STDIO协议去调用的
你看现在是基于MCP的一个STDIO协议去调用的
20:46.560–20:47.840
zh所以的话就是
所以的话就是
20:47.840–20:51.560
zh他这里会帮你做一些这个调整啊
他这里会帮你做一些这个调整啊
20:51.560–20:56.600
zh你看首先大家去读取层级的一个目录结构啊
你看首先大家去读取层级的一个目录结构啊
20:56.600–20:58.840
zh你看是不是就出来了
你看是不是就出来了
20:58.840–20:59.440
zh是吧
是吧
20:59.440–21:01.580
zh但是这里我们看啊
但是这里我们看啊
21:01.580–21:04.340
zh它是基于MCP server的方式调用的
它是基于MCP server的方式调用的
21:04.340–21:06.800
zh它不是说用Codex本身的能力啊
它不是说用Codex本身的能力啊
21:06.800–21:08.240
zh这个是不一样的
这个是不一样的
21:08.240–21:10.120
zh我们从这个调用细节里面可以看到
我们从这个调用细节里面可以看到
21:10.120–21:10.380
zh你看
你看
21:10.380–21:13.180
zh这是它是用了一个JS的这么一个
这是它是用了一个JS的这么一个
21:13.180–21:15.180
zh走了一个
走了一个
21:15.180–21:17.980
zhJSON RPC的一个server是吧
JSON RPC的一个server是吧
21:17.980–21:19.740
zh就是一个STDIO的一个服务
就是一个STDIO的一个服务
21:19.740–21:22.260
zh然后就给它调用成功了
然后就给它调用成功了
21:22.260–21:22.800
zh是吧
是吧
21:22.800–21:24.580
zh这个是列出目录啊
这个是列出目录啊
21:24.580–21:26.100
zh然后它其实还有一些能力就是
然后它其实还有一些能力就是
21:26.100–21:27.820
zh读取文件嘛是吧
读取文件嘛是吧
21:27.820–21:29.680
zh读取文件写文件啊
读取文件写文件啊
21:29.680–21:31.840
zh这个大家可以自己去试一下
这个大家可以自己去试一下
21:31.840–21:35.780
zh那比如说我们现在就读一个文件吧
那比如说我们现在就读一个文件吧
21:35.780–21:37.860
zh查询一个文件
查询一个文件
21:37.860–21:40.460
zh读取
读取
21:40.460–21:43.920
zh读取这个目录下面的一个
读取这个目录下面的一个
21:43.920–21:46.200
zh这个我们看一下啊
这个我们看一下啊
21:46.200–21:46.840
zhVidami吧
Vidami吧
21:46.840–21:49.420
zh读取一个或者是
读取一个或者是
21:49.420–21:51.260
zh啊需求
啊需求
21:51.260–21:55.220
zh就就读取这个README看一下
就就读取这个README看一下
21:57.820–22:03.680
zh现在我们要去读取内容是吧
现在我们要去读取内容是吧
22:03.680–22:05.480
zh看一下能不能读取啊
看一下能不能读取啊
22:05.480–22:11.380
zh你看他现在就是帮我们定位到了readfile这个工具是吧
你看他现在就是帮我们定位到了readfile这个工具是吧
22:11.380–22:14.820
zh那现在他会去启动这么一个啊
那现在他会去启动这么一个啊
22:14.820–22:16.260
zh连接到这么一个服务上去
连接到这么一个服务上去
22:16.260–22:18.220
zh然后去做一个处理啊
然后去做一个处理啊
22:18.220–22:21.940
zh你看这个是我们一个开源项目
你看这个是我们一个开源项目
22:21.940–22:23.900
zh在这个项目里面我们就可以看得到
在这个项目里面我们就可以看得到
22:23.900–22:26.180
zh他已经读取到了一个文档啊
他已经读取到了一个文档啊
22:26.180–22:28.820
zh这个是前后段分离的一个项目啊
这个是前后段分离的一个项目啊
22:28.820–22:29.760
zh什么什么的是吧
什么什么的是吧
22:29.760–22:32.180
zh这个就是他读到的
这个就是他读到的
22:32.180–22:36.860
zh这个就是我们自己你要去搭建一个MCP server
这个就是我们自己你要去搭建一个MCP server
22:36.860–22:38.340
zh然后去给它配置
然后去给它配置
22:38.340–22:39.320
zh包括使用
包括使用
22:39.320–22:41.780
zh包括我们要用第三方的MCP server
包括我们要用第三方的MCP server
22:41.780–22:44.280
zh这个大家都可以去用啊
这个大家都可以去用啊
22:44.280–22:47.720
zh那MCP这个你还可以在外面啊
那MCP这个你还可以在外面啊
22:47.720–22:50.980
zh就是你不需要进入到这个Codex里面去啊
就是你不需要进入到这个Codex里面去啊
22:50.980–22:52.000
zh你可以在外面
你可以在外面
22:52.000–22:54.880
zh然后看一下它的一个使用啊
然后看一下它的一个使用啊
22:54.880–22:56.440
zh那主要的一个
那主要的一个
22:56.440–22:59.300
zh就是管理方式的话
就是管理方式的话
22:59.300–23:00.560
zh就是查询是吧
就是查询是吧
23:00.560–23:01.760
zh然后查询每一个
然后查询每一个
23:01.760–23:04.120
zh然后去添加啊
然后去添加啊
23:04.120–23:06.500
zh或者是做一些其他的这个处理的
或者是做一些其他的这个处理的
23:06.500–23:09.000
zh这个就是他的一个使用
这个就是他的一个使用
23:09.000–23:10.200
zh包括你看这个里面
包括你看这个里面
23:10.200–23:12.020
zhconfig指定配置文件
config指定配置文件
23:12.020–23:13.380
zh他也跟你说了
他也跟你说了
23:13.380–23:15.160
zh他默认会加在这个里面的啊
他默认会加在这个里面的啊
23:15.160–23:16.120
zh但是你也可以指定
但是你也可以指定
23:16.120–23:17.700
zh其他的配置文件去重载他
其他的配置文件去重载他
23:17.700–23:21.520
zh这个就是mcp的一些子命令啊
这个就是mcp的一些子命令啊
23:21.520–23:22.560
zh这个大家有需要的话
这个大家有需要的话
23:22.560–23:24.680
zh你可以去找到一些命令去用啊
你可以去找到一些命令去用啊
23:24.680–23:29.100
zh所以它的一个使用入口有很多啊
所以它的一个使用入口有很多啊
23:29.100–23:33.140
zh我们可以在整个的一个终端里面去用
我们可以在整个的一个终端里面去用
23:33.140–23:35.320
zh也可以在VSCode啊
也可以在VSCode啊
23:35.320–23:37.120
zh就是Cursor这种插件里面去用
就是Cursor这种插件里面去用
23:37.120–23:38.040
zh然后的话
然后的话
23:38.040–23:40.320
zh大家你也可以在这个里面去用啊
大家你也可以在这个里面去用啊
23:40.320–23:41.200
zh这个都是OK的
这个都是OK的
23:41.200–23:44.820
zh因为MCP Server它是这个全局的啊
因为MCP Server它是这个全局的啊
23:44.820–23:47.600
zh就是它是整个应用级别的
就是它是整个应用级别的
23:47.600–23:48.460
zh就用户级别的
就用户级别的
23:48.460–23:49.440
zh所以你在哪里用
所以你在哪里用
23:49.440–23:50.320
zh它都是一样的
它都是一样的
23:50.320–23:52.140
zh比如说我们就随便在这个对话里面
比如说我们就随便在这个对话里面
23:52.140–23:56.860
zh帮我查询下
帮我查询下
23:56.860–23:59.680
enfile manager
file manager
24:01.747–24:15.247
zhmanage mcp服务有哪些工具
manage mcp服务有哪些工具
24:15.247–24:30.807
zh你看他会去搜啊
你看他会去搜啊
24:30.807–24:33.747
zh你看配置里面确实有这个
你看配置里面确实有这个
24:33.747–24:37.367
zh就是他是放在这个全局的一个
就是他是放在这个全局的一个
24:37.367–24:40.207
zh这个配置文件里面的啊
这个配置文件里面的啊
24:40.207–24:41.767
zh所以他肯定是能找到的
所以他肯定是能找到的
24:45.247–24:48.467
zh你看这个是吧
你看这个是吧
24:48.467–24:50.027
zh我们在任何一个对话里面
我们在任何一个对话里面
24:50.027–24:51.947
zh你都能找到这个mcp工具
你都能找到这个mcp工具
24:51.947–24:53.307
zh因为它是全局的
因为它是全局的
24:53.307–24:55.047
zh它不是某个项目的
它不是某个项目的
24:55.047–24:56.487
zh这个是需要注意的
这个是需要注意的
24:56.487–25:01.727
zh然后大家自己要去写这个stdio的一个所有的话
然后大家自己要去写这个stdio的一个所有的话
25:01.727–25:03.667
zh也有一些这个参数
也有一些这个参数
25:03.667–25:04.467
zh是吧
是吧
25:04.467–25:05.707
zh就我们前面给他说了
就我们前面给他说了
25:05.707–25:07.827
zh首先最关键的就是一个启动的命令
首先最关键的就是一个启动的命令
25:07.827–25:09.387
zh比如说你是用node启动的
比如说你是用node启动的
25:09.387–25:10.487
zh还是用python启动的
还是用python启动的
25:10.487–25:11.807
zh你有哪些参数
你有哪些参数
25:11.807–25:13.607
zh包括一些环境变量啊
包括一些环境变量啊
25:13.607–25:14.347
zh等等的
等等的
25:14.347–25:16.327
zh包括一个这个工作目录
包括一个这个工作目录
25:16.327–25:18.207
zh大家都可以去做一个切换
大家都可以去做一个切换
25:18.207–25:18.687
zh是吧
是吧
25:18.687–25:22.447
zh然后如果说你是开发一个
然后如果说你是开发一个
25:22.447–25:24.147
zh这个streaming的播
这个streaming的播
25:24.147–25:28.987
zh就整个一个流式的这种方式的话
就整个一个流式的这种方式的话
25:28.987–25:32.107
zh那你其实就可以什么呢
那你其实就可以什么呢
25:32.107–25:33.587
zh在这个里面啊
在这个里面啊
25:33.587–25:38.267
zh你可以去做一些这个细节的一些调整
你可以去做一些这个细节的一些调整
25:38.267–25:39.627
zh比如说一些这个
比如说一些这个
25:39.627–25:43.667
zh整个的一个UI是吧
整个的一个UI是吧
25:43.667–25:46.267
zh它的一个参数应该是怎么样的
它的一个参数应该是怎么样的
25:46.267–25:50.727
zh包括它的一个整个的一个细节啊
包括它的一个整个的一个细节啊
25:50.727–25:52.967
zh一些http的一些参数啊
一些http的一些参数啊
25:52.967–25:54.967
zh包括环境的一些这个参数
包括环境的一些这个参数
25:54.967–25:59.067
zh这个大家都可以去做一些这个设定啊
这个大家都可以去做一些这个设定啊
25:59.067–26:02.227
zh这个是基于这个streamable的啊
这个是基于这个streamable的啊
26:02.227–26:06.067
zh那其实我们可以给大家开发一个简单的一个mcp
那其实我们可以给大家开发一个简单的一个mcp
26:06.067–26:06.867
zhserver啊
server啊
26:06.867–26:09.327
zh基于这个http的这种协议啊
基于这个http的这种协议啊
26:09.327–26:12.267
zh我们可以来实现一下
我们可以来实现一下
26:12.267–26:14.627
zh比如说我们现在在这个下面
比如说我们现在在这个下面
26:14.627–26:16.667
zh这下面已经有一个fire manager 是吧
这下面已经有一个fire manager 是吧
26:16.667–26:17.827
zh那我现在再开发一个
那我现在再开发一个
26:23.307–26:24.027
encodex
codex
26:26.467–26:29.907
zh比如说帮我开发一个
比如说帮我开发一个
26:31.827–26:32.547
zhstream的
stream的
26:32.547–26:33.907
zhhttp的一个server
http的一个server
26:35.227–26:37.587
zh或者叫mcp server
或者叫mcp server
26:39.667–26:41.107
zh主要实现
主要实现
26:42.267–26:49.707
zh加减乘除运算
加减乘除运算
26:49.707–26:52.447
zh就是我这个做一个非常简单的一个事例
就是我这个做一个非常简单的一个事例
26:52.447–26:53.847
zh就你传这个
就你传这个
26:53.847–26:55.307
zh比如说你要计算一个加法
比如说你要计算一个加法
26:55.307–26:56.327
zh你传两个参数是吧
你传两个参数是吧
26:56.327–26:56.767
zh一加一
一加一
26:56.767–26:59.147
zh然后他最后结果给你返回二
然后他最后结果给你返回二
26:59.147–27:02.207
zh就是实现一个非常简单的一个运算的这么一个功能
就是实现一个非常简单的一个运算的这么一个功能
27:02.207–27:05.527
zh然后这个里面就是我们可以去
然后这个里面就是我们可以去
27:05.527–27:07.847
zh让他实现一下
让他实现一下
27:07.847–27:10.087
zh其实很简单
其实很简单
27:10.087–27:12.147
zh跟那个stdio没有太大区别
跟那个stdio没有太大区别
27:12.147–27:14.167
zh就是传输协议上的一个区别
就是传输协议上的一个区别
27:14.167–27:16.607
zh其他上面的话没有太大区别
其他上面的话没有太大区别
27:16.607–27:21.247
zh所以这时候他的一个参数的话
所以这时候他的一个参数的话
27:21.247–27:25.067
zh就会带上这个HTTP的一个IP地址端口
就会带上这个HTTP的一个IP地址端口
27:25.067–27:27.367
zh这个大家做一个区分就可以了
这个大家做一个区分就可以了
27:37.467–27:41.127
zh你看他其实也是还是基于这个整个的一个
你看他其实也是还是基于这个整个的一个
27:42.147–27:44.247
zhNode.js去实现的啊
Node.js去实现的啊
27:44.247–27:46.587
zh你看他会去查询规范啊
你看他会去查询规范啊
27:46.587–27:47.487
zh他不是随便写的
他不是随便写的
27:47.487–27:50.547
zh他去查询当前MCP官方的一些规范
他去查询当前MCP官方的一些规范
27:50.547–27:54.267
zh因为我们这个需求是做四则运算嘛
因为我们这个需求是做四则运算嘛
27:54.267–27:54.587
zh是吧
是吧
27:54.587–27:57.047
zh所以他要看一下
所以他要看一下
27:57.047–28:00.447
zh整个MCP的一个规范应该怎么来实现
整个MCP的一个规范应该怎么来实现
28:00.447–28:03.587
zh然后的话包括一些网络请求啊
然后的话包括一些网络请求啊
28:03.587–28:04.047
zh是吧
是吧
28:04.047–28:06.367
zh这个就啊
这个就啊
28:06.367–28:07.947
zh他一样
他一样
28:07.947–28:12.787
zh然后它是我看一下
然后它是我看一下
28:12.787–28:15.347
zh它是还是写到那个file manager里面去了
它是还是写到那个file manager里面去了
28:15.347–28:18.127
zh他应该会帮我们建一个新的项目
他应该会帮我们建一个新的项目
28:18.127–28:20.027
zh我看一下
我看一下
28:20.027–28:27.047
zh你看他会建一个单独的建一个calculate
你看他会建一个单独的建一个calculate
28:27.047–28:28.967
zh就是一个计算的一个mcp server
就是一个计算的一个mcp server
28:28.967–28:34.587
zh那等他这个跑完之后
那等他这个跑完之后
28:34.587–28:36.107
zh我们再来验证一下这个服务
我们再来验证一下这个服务
28:36.107–28:37.787
zh其实他已经帮我们验好了
其实他已经帮我们验好了
28:37.787–28:40.967
zh就现在我们用Codex去跑的话
就现在我们用Codex去跑的话
28:40.967–28:43.547
zh基本上这个一次就过了
基本上这个一次就过了
28:43.547–28:45.107
zh没有什么太大问题的
没有什么太大问题的
28:45.107–28:47.647
zh因为它已经帮你把验证全部做完了
因为它已经帮你把验证全部做完了
28:47.647–28:49.847
zh这就是Codex它的一个智能之处
这就是Codex它的一个智能之处
28:49.847–28:52.167
zh它这个里面有一个Iteration Loop
它这个里面有一个Iteration Loop
28:52.167–28:54.627
zh就它会不断的去循环验证
就它会不断的去循环验证
28:54.627–28:56.907
zh直到帮你把这个问题验证完
直到帮你把这个问题验证完
28:56.907–28:59.667
zh你看它已经验证通过了
你看它已经验证通过了
28:59.667–29:01.787
zh所以它写完之后直接就帮你验证了
所以它写完之后直接就帮你验证了
29:01.787–29:03.687
zh包括它这个细节
包括它这个细节
29:03.687–29:05.907
zh你看四则运算的这个工具
你看四则运算的这个工具
29:05.907–29:08.587
zh然后包括这个规范
然后包括这个规范
29:08.587–29:09.047
zh是吧
是吧
29:09.047–29:10.147
zh你看这个规范
你看这个规范
29:10.147–29:11.427
zh它都是参考了
它都是参考了
29:11.427–29:15.287
zhAnthropic官方的这个MCP的服务规范去做的
Anthropic官方的这个MCP的服务规范去做的
29:15.287–29:17.187
zh你们可以看一下这个规范
你们可以看一下这个规范
29:17.187–29:21.967
zh当然这个页面
当然这个页面
29:21.967–29:23.767
zh它这个地址错了
它这个地址错了
29:23.767–29:26.487
zh你看就是它可以参考官方的这个文档去做的
你看就是它可以参考官方的这个文档去做的
29:26.487–29:28.207
zh所以这一块是非常智能的
所以这一块是非常智能的
29:28.207–29:30.187
zh然后包括一些主要文件
然后包括一些主要文件
29:30.187–29:31.247
zh已经验证通过了
已经验证通过了
29:31.247–29:31.607
zh是吧
是吧
29:31.607–29:34.087
zh然后包括这个地址
然后包括这个地址
29:34.087–29:35.887
zh它其实也是可以访问的
它其实也是可以访问的
29:35.907–29:37.067
zh看一下
看一下
29:37.067–29:44.007
zh那我们直接访问这个是报错的
那我们直接访问这个是报错的
29:44.007–29:45.207
zh我们可以让它配置一下
我们可以让它配置一下
29:45.207–29:49.347
zh现在我们看一下它有没有配置上去啊
现在我们看一下它有没有配置上去啊
29:49.347–29:49.967
enby manager
by manager
29:49.967–29:51.527
zh现在是没有配置的
现在是没有配置的
29:51.527–29:52.667
zh我们让它配置一下
我们让它配置一下
29:52.667–29:55.407
zh帮我把这个
帮我把这个
29:55.407–29:59.727
zh配置到
配置到
29:59.727–30:01.467
zh就是把这个
就是把这个
30:01.467–30:02.647
zh这个名字
这个名字
30:02.647–30:03.467
encalculate
calculate
30:03.467–30:13.187
zh配置到codex mcp服务中
配置到codex mcp服务中
30:13.187–30:16.447
zh我配置一下
我配置一下
30:16.447–30:17.687
zh然后我们来调用一下
然后我们来调用一下
30:17.687–30:19.287
zh看能不能跑得通啊
看能不能跑得通啊
30:19.287–30:36.847
zh然后这个里面他就开始去搜索了
然后这个里面他就开始去搜索了
30:36.847–30:38.487
zh就是他也不知道这个mcp
就是他也不知道这个mcp
30:38.487–30:42.947
zh这个streamable的一个HTTP的应该怎么配置
这个streamable的一个HTTP的应该怎么配置
30:42.947–30:44.727
zh所以他这里也是参考官方文档
所以他这里也是参考官方文档
30:44.727–30:46.327
zh参考文档之后的话
参考文档之后的话
30:46.327–30:48.247
zh然后再去做一个配置的
然后再去做一个配置的
30:49.287–30:54.967
zh然后他分析了一些版本问题
然后他分析了一些版本问题
30:54.967–30:56.107
zh可能会有一些报错
可能会有一些报错
30:56.107–30:56.787
zh对不对
对不对
30:56.787–30:58.447
zh然后他会分析一下
然后他会分析一下
30:58.447–30:59.907
zh你看现在
你看现在
30:59.907–31:03.407
zh你看这个http的这个mcp server
你看这个http的这个mcp server
31:03.407–31:04.427
zh加入的方式的话
加入的方式的话
31:04.427–31:05.467
zh就是用一个地址
就是用一个地址
31:05.467–31:08.807
zh前面我们那个加入的话
前面我们那个加入的话
31:08.807–31:09.687
zh是吧
是吧
31:09.687–31:10.807
zh他是一个名称
他是一个名称
31:10.807–31:12.247
zh或者是一个 path
或者是一个 path
31:12.247–31:13.787
zh然后现在的话
然后现在的话
31:13.787–31:16.047
zh我们现在就是一个地址
我们现在就是一个地址
31:16.047–31:16.407
zh是吧
是吧
31:16.407–31:17.767
zh
31:17.767–31:18.707
zh我们现在给他配置一下
我们现在给他配置一下
31:18.707–31:20.627
zh看一下能不能运行
看一下能不能运行
31:20.627–31:29.147
zh你看如果我们自己去配的话
你看如果我们自己去配的话
31:29.147–31:30.347
zh你就会遇到各种各种的问题
你就会遇到各种各种的问题
31:30.347–31:32.807
zh那你让Codex帮你去配置的话
那你让Codex帮你去配置的话
31:32.807–31:34.547
zh其实你可以省很多事情
其实你可以省很多事情
31:34.547–31:38.587
zh在这个里面我们就会让它去做各种优化
在这个里面我们就会让它去做各种优化
31:38.587–31:39.067
zh是吧
是吧
31:39.067–31:42.207
zh最终它会保证你这个服务它是可用啊
最终它会保证你这个服务它是可用啊
31:42.207–31:44.247
zh然后因为它配置的时候
然后因为它配置的时候
31:44.247–31:45.527
zh可能还会出现一些问题
可能还会出现一些问题
31:45.527–31:48.127
zh你看它这里面还帮你备份了一个配置文件
你看它这里面还帮你备份了一个配置文件
31:48.127–31:48.427
zh是吧
是吧
31:48.427–31:51.307
zh万一把它帮你改坏了
万一把它帮你改坏了
31:51.307–31:52.687
zh然后倒是有问题他能回馈
然后倒是有问题他能回馈
31:52.687–31:54.807
zh这个就是他比较智能的一点
这个就是他比较智能的一点
31:54.807–31:57.667
zh他会自动化帮你去做一个处理的
他会自动化帮你去做一个处理的
31:57.667–32:00.907
zh所以他会先备份一下
所以他会先备份一下
32:03.600–32:05.505
zh已经写入了。
已经写入了。
32:05.505–32:08.680
zh然后你看他会去验证。
然后你看他会去验证。
32:08.680–32:13.442
zh就是基本上都不需要我们去验证
就是基本上都不需要我们去验证
32:13.442–32:16.300
zh他会自己去测试的。
他会自己去测试的。
32:16.300–32:18.740
zh所以等我们去用的时候
所以等我们去用的时候
32:18.740–32:20.480
zh这个服务基本上没有问题了
这个服务基本上没有问题了
32:20.480–32:21.960
zh要是他验证有问题的话
要是他验证有问题的话
32:21.960–32:25.160
zh他会不断的循环去保证
他会不断的循环去保证
32:25.160–32:27.200
zh我们最终是没有问题的
我们最终是没有问题的
32:27.200–32:29.740
zh你看现在已经能解析到了是吧
你看现在已经能解析到了是吧
32:29.740–32:32.760
zh然后他再去检查这个端口
然后他再去检查这个端口
32:32.760–32:35.700
zh端口还没被监听
端口还没被监听
32:35.700–32:38.020
zh所以他会你看会启动这个node进程
所以他会你看会启动这个node进程
32:38.020–32:40.300
zh就这个服务他会都帮你启动了
就这个服务他会都帮你启动了
32:40.300–32:42.800
zh然后你只需要用就可以了
然后你只需要用就可以了
32:42.800–32:46.020
zh所以整个过程其实就是一个自动化
所以整个过程其实就是一个自动化
32:46.020–32:51.860
zh那我们其实就是要去等待一下
那我们其实就是要去等待一下
32:51.860–32:53.940
zh看一下它的一个实现
看一下它的一个实现
32:53.940–32:58.360
zh但是如果大家自己去配的话
但是如果大家自己去配的话
32:58.360–32:59.980
zh你光是node这个环境
你光是node这个环境
32:59.980–33:01.800
zh你可能就会报各种各样的权限
你可能就会报各种各样的权限
33:01.800–33:03.480
zh七八个的问题是吧
七八个的问题是吧
33:03.480–33:04.160
zh就很麻烦
就很麻烦
33:04.160–33:08.340
zh但是我们有了Codex这个工具之后的话
但是我们有了Codex这个工具之后的话
33:08.340–33:10.880
zh其实整个过程的话会很简单
其实整个过程的话会很简单
33:10.880–33:12.200
zh它会帮你自己去排查问题
它会帮你自己去排查问题
33:12.200–33:12.880
zh去解决问题
去解决问题
33:12.880–33:17.100
zh所以它其实也是非常智能的
所以它其实也是非常智能的
33:17.100–33:19.080
zh然后包括这个过程中
然后包括这个过程中
33:19.080–33:19.920
zh报的一些错误
报的一些错误
33:19.920–33:20.780
zh我们可以看一下
我们可以看一下
33:20.780–33:22.880
zh一些日志是吧
一些日志是吧
33:22.880–33:24.660
zh如果有报错的话
如果有报错的话
33:24.660–33:26.100
zh它也会帮你输出出来
它也会帮你输出出来
33:26.100–33:28.420
zh方便大家去做一个排查
方便大家去做一个排查
33:28.420–33:37.440
zh这个就时间比较久
这个就时间比较久
33:37.440–33:38.620
zh我们先让它跑着
我们先让它跑着
33:38.620–33:42.340
zh就是这个streamed up HTTP的
就是这个streamed up HTTP的
33:42.340–33:43.020
zh这个server的话
这个server的话
33:43.020–33:45.380
zh大家就需要单独去加一些配置
大家就需要单独去加一些配置
33:45.380–33:46.760
zh然后的话
然后的话
33:46.760–33:48.540
zh我们其实还可以在启动的时候
我们其实还可以在启动的时候
33:48.540–33:50.180
zh配置一些什么超时时间
配置一些什么超时时间
33:50.180–33:51.920
zh工具调用超时时间
工具调用超时时间
33:51.920–33:52.660
zh是吧
是吧
33:52.660–33:53.960
zh然后启用禁用
然后启用禁用
33:53.960–33:56.400
zh包括你现在
包括你现在
33:56.400–33:57.520
zh比如说这个mcp server
比如说这个mcp server
33:57.520–33:58.500
zh提供了很多工具
提供了很多工具
33:58.500–33:59.600
zh那我现在想
那我现在想
33:59.600–34:00.920
zh有些工具
有些工具
34:00.920–34:02.440
zh我不能对外使用
我不能对外使用
34:02.440–34:03.600
zh我现在把它关掉
我现在把它关掉
34:03.600–34:06.480
zh你可以单独去停掉一些工具
你可以单独去停掉一些工具
34:06.480–34:10.380
zh还有包括一些工具的一个默认审核行为
还有包括一些工具的一个默认审核行为
34:10.380–34:11.360
zh就调用工具
就调用工具
34:11.360–34:12.680
zh有时候是需要确认的
有时候是需要确认的
34:12.680–34:13.940
zh如果没有审核的话
如果没有审核的话
34:13.940–34:15.180
zh它是不允许调用的
它是不允许调用的
34:15.180–34:19.120
zh包括一些这个 auth 的一个认证
包括一些这个 auth 的一个认证
34:19.120–34:19.480
zh是吧
是吧
34:19.480–34:21.080
zh做一些授权啊等等
做一些授权啊等等
34:21.080–34:24.060
zh因为有些mcp的server的一个
因为有些mcp的server的一个
34:24.060–34:27.420
zh它是带有这个 auth 的一个认证的
它是带有这个 auth 的一个认证的
34:27.420–34:28.460
zh它要做回调的
它要做回调的
34:28.460–34:30.140
zh所以这个里面的话
所以这个里面的话
34:30.140–34:32.700
zh它会默认的要去配一些这个
它会默认的要去配一些这个
34:32.700–34:35.560
zh一些端口监听之类的
一些端口监听之类的
34:35.560–34:36.540
zh它要做回调啊
它要做回调啊
34:36.540–34:38.040
zh所以的话
所以的话
34:38.040–34:40.080
zh因为它要做登录之类的授权嘛
因为它要做登录之类的授权嘛
34:40.080–34:41.840
zh所以我们要去配啊
所以我们要去配啊
34:41.840–34:44.080
zh这个大家在用一些第三方的
这个大家在用一些第三方的
34:44.080–34:45.280
zh一些mcp server的时候
一些mcp server的时候
34:45.280–34:47.260
zh经常会有一个跳转啊
经常会有一个跳转啊
34:47.260–34:48.500
zh他最开始要做一个授权
他最开始要做一个授权
34:48.500–34:50.340
zh所以大家遇到授权的话
所以大家遇到授权的话
34:50.340–34:52.120
zh其实这些东西
其实这些东西
34:52.120–34:53.100
zh你都交给codex
你都交给codex
34:53.100–34:54.220
zh帮你处理就可以了
帮你处理就可以了
34:54.220–34:56.800
zh你看了这个写的好像挺复杂的
你看了这个写的好像挺复杂的
34:56.800–34:59.780
zh但其实你就让他自动化了去操作就可以了
但其实你就让他自动化了去操作就可以了
34:59.780–35:00.860
zh只是大家需要知道
只是大家需要知道
35:00.860–35:03.700
zh有一个这么 auth 的一个授权认证
有一个这么 auth 的一个授权认证
35:03.700–35:04.860
zh他要跳转一个地址
他要跳转一个地址
35:04.860–35:05.780
zh然后再监听
然后再监听
35:05.780–35:08.180
zh再然后再做一个授权确认
再然后再做一个授权确认
35:08.180–35:11.100
zh无非就是有这么一个流程
无非就是有这么一个流程
35:11.100–35:13.100
zh大家只需要知道有这么个流程就行了
大家只需要知道有这么个流程就行了
35:13.100–35:15.100
zh然后我们在这个里面
然后我们在这个里面
35:15.100–35:17.360
zh可能要去配一个这个回调是吧
可能要去配一个这个回调是吧
35:17.360–35:19.860
zh你要告诉MCP
你要告诉MCP
35:19.860–35:21.380
zh就是这个里面
就是这个里面
35:21.380–35:23.780
zh你应该去回调这个服务是吧
你应该去回调这个服务是吧
35:23.780–35:25.680
zh就它有个第三方有个回调的
就它有个第三方有个回调的
35:25.680–35:27.720
zh确认一下它是验证通过的
确认一下它是验证通过的
35:27.720–35:30.820
zh包括我们其实还可以用MCP server
包括我们其实还可以用MCP server
35:30.820–35:31.740
zh去做很多事情
去做很多事情
35:31.740–35:34.520
zh就连接到Figma的一些MCP server
就连接到Figma的一些MCP server
35:34.520–35:34.880
zh是吧
是吧
35:34.880–35:37.540
zh连接到Chroma的这么一些这个工具
连接到Chroma的这么一些这个工具
35:37.540–35:41.420
zh然后包括各种各样的工具
然后包括各种各样的工具
35:41.420–35:43.520
zh它都可以通过MCP服务给它集成进来
它都可以通过MCP服务给它集成进来
35:43.520–35:46.660
zh然后其实这个
然后其实这个
35:46.660–35:51.080
zh我们也可以去在一些插件里面
我们也可以去在一些插件里面
35:51.080–35:52.540
zh找到一些MCP server
找到一些MCP server
35:52.540–35:55.720
zh就是官方内置的一些插件里面
就是官方内置的一些插件里面
35:55.720–35:57.840
zh它其实就给你集成了一些MCP server
它其实就给你集成了一些MCP server
35:57.840–36:00.780
zh那大家也可以去用
那大家也可以去用
36:00.780–36:02.940
zh比如说我们在这个里面
比如说我们在这个里面
36:02.940–36:04.700
zh就可以去找一下
就可以去找一下
36:04.700–36:08.820
zh这里面这个Codex
这里面这个Codex
36:08.820–36:10.480
zh这里面有设置
这里面有设置
36:10.480–36:12.440
zh设置里面有一个插件
设置里面有一个插件
36:12.440–36:15.480
zh这个插件里面有些它就是MCP server
这个插件里面有些它就是MCP server
36:15.480–36:18.620
zh有些是纯粹的工具调用
有些是纯粹的工具调用
36:18.620–36:20.340
zh有些是就是MCP server
有些是就是MCP server
36:20.340–36:23.080
zh你像这个Figma做设计的是吧
你像这个Figma做设计的是吧
36:23.080–36:25.960
zh但是有些的话
但是有些的话
36:25.960–36:27.460
zh它是需要登录才能使用的
它是需要登录才能使用的
36:27.460–36:29.800
zh所以这个具体大家去
所以这个具体大家去
36:29.800–36:30.940
zh你要去登录账号才行
你要去登录账号才行
36:30.940–36:32.940
zh但你也可以把那个
但你也可以把那个
36:32.940–36:35.060
zhmcp的一个配置拿到
mcp的一个配置拿到
36:35.060–36:36.520
zh你自己去配也是可以的
你自己去配也是可以的
36:36.520–36:38.180
zh就是你可以用插件的方式去用
就是你可以用插件的方式去用
36:38.180–36:39.780
zh也可以自己去配啊
也可以自己去配啊
36:39.780–36:40.840
zh这个都是没有问题的
这个都是没有问题的
36:40.840–36:43.960
zh我看一下刚刚那个ok没有
我看一下刚刚那个ok没有
36:43.960–36:47.540
zh还在写
还在写
36:47.540–36:50.680
zh这个是不是卡住了
这个是不是卡住了
36:50.680–36:51.600
zh卡的有点久了
卡的有点久了
36:55.440–36:57.260
zh他这个服务是不是已经启动了
他这个服务是不是已经启动了
36:57.260–36:59.520
zh但是没有给他生效啊
但是没有给他生效啊
36:59.520–36:59.980
zh看一下
看一下
36:59.980–37:07.860
zh打开这个mcp server
打开这个mcp server
37:07.860–37:09.980
zh看一下这个有没有连接成功啊
看一下这个有没有连接成功啊
37:09.980–37:12.440
zhmcp服务器
mcp服务器
37:12.440–37:14.480
zh你看是已经成功的
你看是已经成功的
37:14.480–37:15.640
zh已经成功
已经成功
37:15.640–37:17.820
zh它这个端口可能是已经启动了
它这个端口可能是已经启动了
37:17.820–37:19.680
zh那我就直接看调用一下
那我就直接看调用一下
37:19.680–37:24.420
zh它这个服务是已经启动了
它这个服务是已经启动了
37:24.420–37:27.260
zh那我们应该就直接可以用了
那我们应该就直接可以用了
37:27.260–37:28.740
zh调用
调用
37:28.740–37:32.980
zh要用这个Current
要用这个Current
37:32.980–37:37.900
zh帮我计算下
帮我计算下
37:37.900–37:40.060
zh1加1
1加1
37:40.060–37:41.560
zh1加2
1加2
37:49.500–37:51.100
zh这个应该是起一个服务
这个应该是起一个服务
37:51.100–37:52.700
zh它在这里等着
它在这里等着
37:52.700–37:54.540
zh那我们单独在另外里面
那我们单独在另外里面
37:54.540–37:55.340
zh也会去写吧
也会去写吧
37:58.740–38:01.640
zh我把这个消息
我把这个消息
38:01.640–38:03.960
zh在这个里面
在这个里面
38:03.960–38:05.340
zh这里因为阻塞了
这里因为阻塞了
38:05.340–38:08.640
zh我们换一个窗口再来调用
我们换一个窗口再来调用
38:08.640–38:09.960
zh这里他起来
这里他起来
38:09.960–38:11.660
zh把那个mcp server给他启动了
把那个mcp server给他启动了
38:11.660–38:13.160
zh所以的话就是
所以的话就是
38:13.160–38:16.400
zh在这个里面
在这个里面
38:16.400–38:19.100
zh我们看到的是一个服务已经启动了
我们看到的是一个服务已经启动了
38:19.100–38:22.980
zh这个是已经调用成功了吗
这个是已经调用成功了吗
38:22.980–38:25.900
zhmcp服务
mcp服务
38:28.740–38:33.900
enscript
script
38:33.900–38:35.780
zh这个计算结果应该是成功的吧
这个计算结果应该是成功的吧
38:35.780–38:37.580
zh然后我来查询一下
然后我来查询一下
38:37.580–38:38.580
zh查询一下
查询一下
38:38.580–38:50.180
zhcalculate mcp服务可用的工具有哪
calculate mcp服务可用的工具有哪
38:50.180–38:52.980
zh哪些
哪些
38:58.740–39:11.280
zh当前对话是没有这个服务的
当前对话是没有这个服务的
39:11.280–39:12.960
zh但是全局里面是有这个的
但是全局里面是有这个的
39:12.960–39:15.040
zh我们让他可以去搜一下
我们让他可以去搜一下
39:21.040–39:22.080
zh大家看看
大家看看
39:22.080–39:23.740
zh你看这个里面是不是就有了
你看这个里面是不是就有了
39:23.740–39:24.360
zh是吧
是吧
39:24.360–39:26.480
zh本地配置
本地配置
39:26.480–39:28.220
zh应该是应该是这个名词
应该是应该是这个名词
39:28.220–39:30.820
zh我们看一下这个配置里面有没有生效
我们看一下这个配置里面有没有生效
39:31.414–39:34.414
zh你看,这是不是就已经生效了。
你看,这是不是就已经生效了。
39:34.414–39:36.414
zh你看这里就是URL。
你看这里就是URL。
39:36.414–39:38.414
zh其实可以对比一下。
其实可以对比一下。
39:38.414–39:42.414
zh刚刚那个stdio的这个连接方式它是传输行的。
刚刚那个stdio的这个连接方式它是传输行的。
39:42.414–39:45.354
zh然后到了这个concurrent
然后到了这个concurrent
39:45.354–39:47.874
zh它是streamable HTTP的
它是streamable HTTP的
39:47.874–39:50.274
zh流式的这种SSE的这种方式
流式的这种SSE的这种方式
39:50.274–39:50.914
zh那么在这个里面
那么在这个里面
39:50.914–39:54.174
zh它就变成了一个URL的一种方式了
它就变成了一个URL的一种方式了
39:54.174–39:55.254
zh这里大家需要注意一下
这里大家需要注意一下
39:55.254–39:57.974
zh这是两种协议的一个区别
这是两种协议的一个区别
39:57.974–39:59.874
zh然后我们可以啊
然后我们可以啊
39:59.874–40:00.514
zh调用
调用
40:04.614–40:06.774
zh计算
计算
40:06.774–40:07.154
en5
5
40:10.174–40:10.914
zh和5
和5
40:12.414–40:16.354
zh加减乘除
加减乘除
40:16.354–40:22.094
zh分别是
分别是
40:22.094–40:27.234
zh多少
多少
40:27.234–40:28.694
zh就是我现在想
就是我现在想
40:28.694–40:31.174
zh调用这个四个工具是吧
调用这个四个工具是吧
40:31.174–40:33.154
zh我想调用这四个工具
我想调用这四个工具
40:33.154–40:35.174
zh然后都帮我去
然后都帮我去
40:35.174–40:36.014
zh这个
这个
40:36.014–40:38.174
zh校验一下是吧
校验一下是吧
40:38.174–40:39.474
zh校验一下
校验一下
40:42.414–40:47.874
zh你看他现在就开始去调用了是吧
你看他现在就开始去调用了是吧
40:47.874–40:49.994
zh加减乘除都给他调用一下
加减乘除都给他调用一下
40:49.994–40:52.054
zh刚刚那个其实没调用成功了
刚刚那个其实没调用成功了
40:52.054–40:54.954
zh刚刚那个是他走的网络的这种方式
刚刚那个是他走的网络的这种方式
40:54.954–40:57.774
zh就是去检索的这种方式
就是去检索的这种方式
40:57.774–41:00.814
zh然后现在我们要真正的去调用这个mcp服务
然后现在我们要真正的去调用这个mcp服务
41:00.814–41:04.114
zh你看分别跑加减乘除是吧
你看分别跑加减乘除是吧
41:04.114–41:05.574
zh这样就看得更加明确一些
这样就看得更加明确一些
41:05.574–41:08.134
zh你看成功了啊
你看成功了啊
41:08.134–41:10.194
zh加减乘除没有问题
加减乘除没有问题
41:10.194–41:12.654
zh这个服务它现在是中断的
这个服务它现在是中断的
41:12.654–41:14.174
zh那我给它中断一下
那我给它中断一下
41:14.174–41:15.194
zh我再来调用
我再来调用
41:15.194–41:18.034
zh刚刚那个服务它是挂在这里
刚刚那个服务它是挂在这里
41:18.034–41:20.854
zh不是卡死了
不是卡死了
41:20.854–41:22.194
zh它是有一个进程
它是有一个进程
41:22.194–41:24.194
zh相当于写了一个服务在这里等着
相当于写了一个服务在这里等着
41:24.194–41:27.574
zh但这个服务它是后端运行的
但这个服务它是后端运行的
41:27.574–41:28.814
zh我们可以把它这个
我们可以把它这个
41:28.814–41:30.994
zh等待的地方给它去掉
等待的地方给它去掉
41:30.994–41:32.734
zh然后在这个里面
然后在这个里面
41:32.734–41:34.494
zh我们其实也可以
我们其实也可以
41:34.494–41:36.714
zh特地可以调用了
特地可以调用了
41:36.714–41:38.834
zh这个服务它会一直停在这里
这个服务它会一直停在这里
41:40.194–42:05.654
zh你让他是访问这个地址是吧
你让他是访问这个地址是吧
42:05.654–42:07.594
zh然后包括一些接口请求啊
然后包括一些接口请求啊
42:07.594–42:10.294
zh然后你看这个是event stream
然后你看这个是event stream
42:10.294–42:13.094
zh就是sse的这个流式的传输
就是sse的这个流式的传输
42:13.094–42:15.734
zh然后给结果
然后给结果
42:15.734–42:16.414
zh没有问题
没有问题
42:16.414–42:17.034
zh
42:17.034–42:20.854
zh这个就是stream的http的这种协议
这个就是stream的http的这种协议
42:20.854–42:22.654
zh它的一个调用逻辑
它的一个调用逻辑
42:22.654–42:25.134
zh就大家回头你可以去验证一下
就大家回头你可以去验证一下
42:25.134–42:26.674
zh这两种方式它的一个区别
这两种方式它的一个区别
42:26.674–42:27.874
zh我们可以对比一下
我们可以对比一下
42:27.874–42:31.774
zh然后大家自己也可以去装一些mcp的server
然后大家自己也可以去装一些mcp的server
42:31.774–42:33.834
zh我刚刚其实已经带大家去装了一个
我刚刚其实已经带大家去装了一个
42:33.834–42:36.734
zh大家自己也可以去网上找到一些mcp server
大家自己也可以去网上找到一些mcp server
42:36.734–42:38.494
zh给它安装一下就可以了
给它安装一下就可以了
42:38.494–42:41.414
zh其实这个也比较好理解
其实这个也比较好理解

影片筆記:2026版AI+Codex零基础全套视频课程,Codex从入门到大神AI编程开发,涵盖安装配置、代码分析、Bug修复及完整项目实战 p09 8、Codex MCP 核心协议配置与业务系统无缝对接

一句話總結

本段課程詳細講解了 MCP (Model Context Protocol) 協議在 Codex 中的配置與應用,通過實戰演示了如何開發與配置基於 STDIO 和 HTTP/SSE 協議的本地及第三方 MCP Server,並展示了 Codex 在自動驗證、權限處理及配置備份方面的智能輔助功能。

核心重點

  1. MCP 協議定義與價值
  • MCP (Model Context Protocol) 是由 Otholopit 公司提出的一種規範,旨在將大模型連接到工具和上下文。
  • 主要解決大模型無法直接訪問內部業務系統或非對外服務的問題,建立模型與工具/上下文之間的連接。
  1. MCP 協議類型區別
  • STDIO 協議:適用於本地進程運行,通過進程間通信訪問,無需網絡通信,適合本地服務器或本地開發場景。
  • HTTP Server (SSE) 協議:適用於對外提供的服務(如查詢天氣、公共 API),通過域名或 IP,使用 HTTP 協議連接,需發布到服務器上並具有公网 IP。
  1. Codex 中的 MCP 配置機制
  • 配置文件位置:默認存儲在當前登錄用戶主目錄下的 .codex/config.tom 文件中。若未設置 home 環境變量,則默認在此路徑。
  • 配置結構:使用 [MCP Server] 前綴標記服務名稱,包含啟動命令、協議類型(STDIO 或 HTTP)、啟用狀態 (enable true) 等。
  • 管理方式
  • 圖形界面:通過 VSCode 或 Cursor 中的 Codex 插件,進入設置 (Gear Icon) -> Codex Search -> Page -> MCP 服務器,進行啟用/禁用操作。
  • 終端命令:在終端中輸入 codex \mcp 查看當前可用的 MCP 服務。
  • 手動編輯:直接編輯 config.tom 文件。
  1. 實戰開發與調用流程
  • 本地 STDIO Server 開發
  • 創建項目目錄,通過自然語言指令讓 Codex 開發 MCP Server(例如 file manager,用於本地文件管理)。
  • Codex 默認使用 Node.js 和 JSON-RPC STDIO 協議生成代碼。
  • Codex 自動分析服務標準性、路徑、權限(如 PowerShare 權限優化,使用 npm.cmd 而非 npm),並自動驗證服務是否可啟動及功能是否正常。
  • 第三方 MCP Server 使用
  • 示例添加 context7 MCP Server,默認為未授權 (unauthorized),需進行授權處理。
  • Codex 會自動調用對應的 MCP 服務獲取最新第三方庫文檔或示例代碼。
  • HTTP/SSE Server 開發
  • 開發基於 Streamable HTTP (SSE) 協議的 calculate MCP Server,實現四則運算。
  • 需指定 IP、端口等網絡參數,Codex 參考官方規範生成代碼並自動驗證。
  • 配置 HTTP 類型 MCP Server 時,需指定地址而非本地命令,Codex 自動處理版本問題、權限及配置備份。
  1. AI 輔助驗證與高級配置
  • Codex 在配置 MCP 時具備智能之處,包括自動分析配置、驗證服務可用性、處理權限問題及自動備份配置文件。
  • 部分第三方 MCP Server 需要 OAuth 授權認證,涉及跳轉地址、監聽回調等流程,Codex 可協助處理授權配置。
  • 可單獨禁用某些工具、設置默認審核行為 (Audit) 或設置工具調用超時時間。
  • MCP 配置是應用級別/用戶級別的,在任何對話窗口中均可調用已配置的 MCP 服務。

詳細大綱

一、 MCP 協議概述與場景

  • 定義:MCP (Model Context Protocol) 是 Otholopit 公司提出的一種規範,旨在將大模型連接到工具和上下文。
  • 解決痛點:解決大模型無法方便訪問內部業務系統或非對外服務的問題。
  • 核心功能:建立模型與工具/上下文之間的連接。

二、 MCP 協議類型

  • STDIO 協議
  • 適用於本地進程運行。
  • 通過進程間通信訪問,無需網絡通信。
  • 適合本地服務器或本地開發場景。
  • HTTP Server (SSE) 協議
  • 適用於對外提供的服務(如查詢天氣、公共 API)。
  • 通過域名或 IP,使用 HTTP 協議連接。
  • 需要發布到服務器上,具有公网 IP。

三、 Codex 中的 MCP 配置與管理

  • 配置文件位置
  • 默認路徑:當前登錄用戶主目錄下的 .codex/config.tom
  • 若未設置 home 環境變量,則默認在此路徑。
  • 配置結構
  • 使用 [MCP Server] 前綴標記服務名稱。
  • 包含啟動命令、協議類型(STDIO 或 HTTP)、啟用狀態 (enable true) 等。
  • 管理方式
  • 圖形界面:通過 VSCode 或 Cursor 中的 Codex 插件,進入設置 (Gear Icon) -> Codex Search -> Page -> MCP 服務器,進行啟用/禁用操作。
  • 終端命令:在終端中輸入 codex \mcp 查看當前可用的 MCP 服務。
  • 手動編輯:直接編輯 config.tom 文件。

四、 實戰演示:本地 MCP Server 開發與配置 (STDIO)

  • 開發流程
  1. 創建項目目錄 (mcp server)。
  2. 通過自然語言指令讓 Codex 開發 MCP Server(例如:file manager,用於本地文件管理)。
  3. Codex 默認使用 Node.js 和 JSON-RPC STDIO 協議生成代碼。
  • 配置與驗證
  1. 讓 Codex 將開發好的服務配置到 config.tom
  2. Codex 自動分析服務標準性、路徑、權限(如 PowerShare 權限優化,使用 npm.cmd 而非 npm)。
  3. Codex 自動驗證服務是否可啟動及功能是否正常。
  • 調用測試
  • 通過自然語言指令調用 MCP 工具(如查詢目錄結構、讀取文件)。
  • 確認調用通過 STDIO 協議成功執行。

五、 實戰演示:第三方 MCP Server 的使用

  • 添加第三方服務
  • 示例:添加 context7 MCP Server。
  • 狀態:默認為未授權 (unauthorized),需進行授權處理。
  • 調用方式
  • 直接詢問 Codex 關於該服務的功能或具體問題。
  • Codex 會自動調用對應的 MCP 服務獲取最新第三方庫文檔或示例代碼。

六、 實戰演示:HTTP/SSE 協議 MCP Server 開發

  • 需求:開發一個基於 HTTP 協議的 MCP Server,實現四則運算 (calculate)。
  • 開發特點
  • 協議:Streamable HTTP (SSE)。
  • 參數:需指定 IP、端口等網絡參數。
  • Codex 會參考官方規範生成代碼,並自動驗證。
  • 配置與調用
  1. 配置 HTTP 類型的 MCP Server,需指定地址而非本地命令。
  2. Codex 自動處理版本問題、權限及配置備份。
  3. 啟動 Node 進程監聽端口。
  4. 調用測試:通過自然語言指令觸發加減乘除計算,確認通過網絡/SSE 協議成功返回結果。
  • 協議對比
  • STDIO:本地進程通信,無網絡延遲。
  • HTTP/SSE:網絡通信,支持遠程服務,涉及授權回調 (Callback) 流程。

七、 高級配置與注意事項

  • 權限與授權
  • 部分第三方 MCP Server 需要 OAuth 授權認證,涉及跳轉地址、監聽回調等流程。
  • Codex 可協助處理授權配置。
  • 工具級別控制
  • 可單獨禁用某些工具或設置默認審核行為 (Audit)。
  • 可設置工具調用超時時間。
  • 全局性
  • MCP 配置是應用級別/用戶級別的,在任何對話窗口中均可調用已配置的 MCP 服務。
  • 插件集成
  • VSCode/Cursor 插件市場可能內置部分 MCP Server(如 Figma 設計相關),部分需登錄授權。

八、 第二段重點:MCP Server 安裝建議

  • 方式對比:提及兩種方式存在區別,建議進行對比。
  • MCP Server 安裝建議
  • 講者表示剛才已帶領觀眾安裝了一個。
  • 鼓勵觀眾自行上網尋找並安裝其他 MCP Server。
  • 結論:認為此過程容易理解。

工具 / 模型 / 名詞整理

  • Codex:影片主要討論的代碼助手/開發環境。
  • MCP (Model Context Protocol):模型上下文協議。
  • Otholopit:提出 MCP 規範的公司名稱(逐字稿原文,疑點)。
  • STDIO:協議類型,逐字稿中偶有聽寫為 "SDDIO" 或 "SCDIO"。
  • HTTP Server / SSE (Server-Sent Events):協議類型。
  • JSON-RPC:MCP 服務中使用的通信規範。
  • Node.js:開發 MCP Server 使用的語言環境。
  • Python:逐字稿中提及的另一种可能使用的語言。
  • VSCode / Cursor:支持安裝 Codex 插件的編輯器。
  • config.tom:Codex 的配置文件名稱。
  • .codex:Codex 的默認配置目錄。
  • context7:第三方 MCP Server 名稱,用於查詢庫文檔。
  • file manager:實戰中開發的本地文件管理 MCP Server 名稱。
  • calculate:實戰中開發的 HTTP 協議四則運算 MCP Server 名稱。
  • PowerShare:逐字稿中提及的權限相關詞彙,疑點。
  • Figma:插件市場中提及的設計相關 MCP Server。
  • Chroma:逐字稿中提及的工具名稱。
  • MCB / MCB server:逐字稿中部分地方將 "MCP" 聽寫為 "MCB",需查證。
  • Edgerton Lobe:逐字稿中提及 Codex 內部的某個循環驗證機制名稱,聽起來較陌生,需查證是否為特定技術術語或誤聽。
  • Vidami:逐字稿中提及的一個項目名稱,需查證是否為具體開源項目名稱。
  • 洛伊:逐字稿中提及的目錄或項目名稱,需查證。
  • Current:逐字稿中提及調用服務時的名稱,需查證是否為 "Calculate" 的誤聽。
  • script:逐字稿中提及 "mcb服務 script",需查證是否為特定腳本名稱或誤聽。
  • mcp的色河:疑似為「MCP Server」的聽寫或口誤,需查證。

操作流程整理

  1. 查看與管理 MCP 服務
  • 進入 VSCode/Cursor 設置 (Gear Icon) -> Codex Search -> Page -> MCP 服務器,進行啟用/禁用操作。
  • 或在終端輸入 codex \mcp 查看當前可用的 MCP 服務。
  • 或直接編輯用戶主目錄下的 .codex/config.tom 文件。
  1. 開發本地 STDIO MCP Server (以 file manager 為例)
  • 創建項目目錄。
  • 使用自然語言指令讓 Codex 開發 MCP Server(指定使用 Node.js 和 JSON-RPC STDIO 協議)。
  • 讓 Codex 將開發好的服務配置到 config.tom
  • Codex 自動分析服務標準性、路徑、權限(如 PowerShare 權限優化,使用 npm.cmd)。
  • Codex 自動驗證服務是否可啟動及功能是否正常。
  • 通過自然語言指令調用 MCP 工具進行測試。
  1. 添加第三方 MCP Server (以 context7 為例)
  • 添加 context7 MCP Server。
  • 處理未授權 (unauthorized) 狀態,進行授權。
  • 通過自然語言指令詢問,Codex 自動調用該服務獲取文檔或代碼。
  1. 開發 HTTP/SSE MCP Server (以 calculate 為例)
  • 使用自然語言指令讓 Codex 開發基於 Streamable HTTP (SSE) 協議的 MCP Server,實現四則運算。
  • 指定 IP、端口等網絡參數。
  • Codex 參考官方規範生成代碼,自動處理版本問題、權限及配置備份。
  • 配置 HTTP 類型 MCP Server,指定地址而非本地命令。
  • 啟動 Node 進程監聽端口。
  • 通過自然語言指令觸發計算,確認通過網絡/SSE 協議返回結果。

值得注意的限制或風險

  • 授權與認證:部分第三方 MCP Server 需要 OAuth 授權認證,涉及跳轉地址、監聽回調等流程,配置相對複雜。
  • 權限問題:本地開發時可能涉及權限優化(如 PowerShare 權限),需確保使用正確的命令(如 npm.cmd)。
  • 協議選擇風險:STDIO 僅限本地,HTTP/SSE 涉及網絡通信及遠程服務,需確保服務器具有公网 IP 並正確配置防火牆或網絡策略。
  • 配置全局性:MCP 配置是應用級別/用戶級別的,一旦配置,在任何對話窗口中均可調用,需注意潛在的安全或隱私影響。

逐字稿辨識疑點

  • Otholopit:逐字稿中提到的提出 MCP 規範的公司名稱,聽起來較不常見,需查證是否為 "Anthropic" 或其他名稱的誤聽。
  • SDDIO / SCDIO:逐字稿中多次出現的協議名稱,標準拼寫應為 "STDIO",此處標記為聽寫錯誤或口誤。
  • PowerShare:逐字稿中提及的權限相關詞,標準環境中常見的是 "PowerShell",此處標記為需查證。
  • MCB / MCB server:逐字稿中部分地方將 "MCP" 聽寫為 "MCB",需查證。
  • Edgerton Lobe:逐字稿中提及 Codex 內部的某個循環驗證機制名稱,聽起來較陌生,需查證是否為特定技術術語或誤聽。
  • Vidami:逐字稿中提及的一個項目名稱,需查證是否為具體開源項目名稱。
  • 洛伊:逐字稿中提及的目錄或項目名稱,需查證。
  • Current:逐字稿中提及調用服務時的名稱,需查證是否為 "Calculate" 的誤聽。
  • script:逐字稿中提及 "mcb服務 script",需查證是否為特定腳本名稱或誤聽。
  • mcp的色河:疑似為「MCP Server」的聽寫或口誤,需查證。

可延伸追問

  • MCP 協議的具體技術規範和標準由哪個組織或公司制定?
  • 如何手動編輯 .codex/config.tom 文件來添加自定義的 MCP Server?
  • 在開發 HTTP/SSE 協議的 MCP Server 時,如何處理 OAuth 授權回調 (Callback) 的具體代碼實現?
  • Codex 插件市場中有哪些預置的 MCP Server 可用,它們的功能和授權方式是什麼?
  • 如何監控和調試已配置的 MCP Server 的運行狀態和日誌?

尚未產生學習筆記

請在 Telegram 指令最後加上「學習」,例如:videonote 網址 英文 雙語 學習