Codex 的内置能力有限,但通过 MCP(Model Context Protocol)协议和 Skills 技能系统,你可以将任意工具、API 和自定义工作流接入 AI 编程助手,实现真正意义上的"AI 指挥一切"。
MCP 是 Anthropic 提出的开放协议,标准化的方式让 LLM 与外部工具通信。类比 USB 协议统一了外设接口,MCP 统一了 AI 工具的连接方式。
Codex ←→ MCP Client ←→ MCP Server ←→ 外部服务/工具
├── 文件系统工具
├── 数据库工具
├── Web API 工具
└── 自定义工具
在没有 MCP 之前,想让 AI 访问数据库,你需要把整个 schema 粘贴到提示词里。用 MCP 后,AI 可以直接查询数据库,实时获取结果。这彻底改变了 AI 与外部世界交互的方式。
mcp:
servers:
filesystem:
command: npx
args:
- "@anthropic/mcp-server-filesystem"
- /path/to/allowed/dir
github:
command: npx
args:
- "@anthropic/mcp-server-github"
env:
GITHUB_PERSONAL_ACCESS_TOKEN: ${GITHUB_TOKEN}
postgres:
command: npx
args:
- "@anthropic/mcp-server-postgres"
- postgresql://user:pass@localhost:5432/mydb
slack:
command: npx
args:
- "@anthropic/mcp-server-slack"
env:
SLACK_BOT_TOKEN: ${SLACK_TOKEN}
| MCP Server | 功能 | 安装命令 |
|------------|------|---------|
| filesystem | 文件系统读写 | @anthropic/mcp-server-filesystem |
| github | GitHub API 操作 | @anthropic/mcp-server-github |
| postgres | PostgreSQL 查询 | @anthropic/mcp-server-postgres |
| sqlite | SQLite 查询 | @anthropic/mcp-server-sqlite |
| puppeteer | 浏览器自动化 | @anthropic/mcp-server-puppeteer |
| slack | Slack 消息 | @anthropic/mcp-server-slack |
| memory | 持久化记忆 | @anthropic/mcp-server-memory |
| brave-search | Web 搜索 | @anthropic/mcp-server-brave-search |
配置好 PostgreSQL MCP 后,直接在对话中说:
> 查询上周注册的用户数量,按日分组展示 Codex 会直接运行 SQL 查询并返回格式化结果。
任何实现了 MCP 协议的服务都可以接入。以 Python 为例:
# my_mcp_server.py
from mcp.server import Server, stdio_server
from mcp.types import Tool
server = Server("my-tools")
@server.tool()
async def weather(city: str) -> str:
"""获取指定城市的天气"""
# 调用天气 API
return f"{city}: 25°C, 晴"
@server.tool()
async def deploy(service: str, env: str) -> str:
"""部署服务到指定环境"""
return f"已部署 {service} 到 {env}"
if __name__ == "__main__":
stdio_server.run(server)
配置接入:
mcp:
servers:
custom:
command: python
args:
- ./tools/my_mcp_server.py
Skills 是可复用的 AI 工作流模块——预定义的提示词、工具链和逻辑组合,形成一个"AI 技能包"。
Codex 自带一些常用 Skills,可在 .opencode/skills/ 找到:
ls .opencode/skills/ # blog-publish/ # code-review/ # test-generator/
Skills 由 SKILL.md 文件定义:
# deploy-to-vercel 触发:用户说"部署"、"发布到 Vercel" ## 流程 1. 检查 git 状态,确保没有未提交的变更 2. 运行 `npm run build`,检查构建是否成功 3. 运行测试套件 4. 执行 `vercel --prod` 5. 返回部署后的 URL ## 注意事项 - 部署前必须通过全部测试 - 不部署 main/master 以外的分支
使用:
codex "用 deploy-to-vercel skill 部署当前项目"
.opencode/skills/my-skill/
├── SKILL.md # 技能定义文件(必需)
├── prompts/ # 提示词模板
│ └── analyze.md
├── scripts/ # 辅助脚本
│ └── pre-check.sh
└── examples/ # 使用示例
└── usage.md
关键词触发:Skill 定义中指定触发短语
显式调用:codex run skill-name
上下文匹配:Codex 根据对话内容自动推荐
# code-review-pro 触发:用户说 "review"、"code review" ## 流程 1. 获取当前分支与 main 的 diff 2. 分析变更的文件类型(后端/前端/配置) 3. 对每个变更文件执行对应检查: - 后端: 类型安全、SQL注入、异常处理 - 前端: 可访问性、响应式、性能 - 配置: 安全敏感字段检查 4. 生成 Markdown 格式的审查报告 5. 自动在 GitHub 上创建 Review 评论
# db-migration-check 触发:检测到新的数据库迁移文件 ## 流程 1. 发现 prisma/schema.prisma 或 migrations/ 的变更 2. 检查迁移是否向后兼容 3. 检查是否有未使用的表/字段 4. 检查外键约束完整性 5. 输出迁移风险评估(低/中/高)
将 MCP 工具和 Skill 工作流结合,能实现端到端的自动化:
Skill 定义流程:做什么
MCP 提供工具:用什么做
Codex 协调执行:怎么做
例如"自动 PR 审查" Skill:
MCP 打通了 AI 与外部工具的连接,Skills 封装了可复用的 AI 工作流。两者结合,Codex 从一个代码编辑器助手升级为一个全栈自动化平台。下一章将学习 VS Code 和版本控制集成。