Codex: Codex MCP

最后更新:2026-08-31

MCP(Model Context Protocol)是让 Codex 连接外部世界的桥梁——数据库、API、云服务、文档系统等。

📋 前置知识:了解 Codex 基本操作与配置

1. 你将学到


2. 什么是 MCP

MCP 是 Model Context Protocol 的缩写,定义了 AI Agent 与外部工具通信的标准协议。

100%
graph LR
    A[Codex Agent] --> B[MCP Client]
    B --> C[MCP Server: 数据库]
    B --> D[MCP Server: GitHub]
    B --> E[MCP Server: 文档]
    B --> F[MCP Server: 云服务]
概念 说明
MCP Server 提供工具和数据的服务端
MCP Client Codex 内置的客户端
Tool Server 暴露的操作
Resource Server 提供的数据

3. 内置 MCP 服务器

Codex 内置了常用 MCP 服务器:

服务器 功能 工具示例
filesystem 文件操作 read_file, write_file, list_dir
github GitHub 操作 create_pr, list_issues, review_pr
fetch 网络请求 get_url, post_url
database 数据库操作 query, insert, update

4. 配置 MCP 服务器

(1) 全局配置

JSON
{
  "mcp_servers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/project"]
    },
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_TOKEN": "ghp_xxx"
      }
    }
  }
}

(2) 项目级配置

JSON
// .codex/mcp.json
{
  "mcp_servers": {
    "database": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres"],
      "env": {
        "DATABASE_URL": "postgresql://localhost/mydb"
      }
    }
  }
}

▶ 示例 1: Alice 连接数据库

JSON
// Alice 的项目 MCP 配置
{
  "mcp_servers": {
    "postgres": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres"],
      "env": {
        "DATABASE_URL": "postgresql://localhost/ecommerce"
      }
    }
  }
}
TEXT 📖 仅展示
# Alice 让 Codex 查询数据库
> 查询最近 7 天的订单数量和总金额

# Codex 通过 MCP 调用数据库
→ Connected to postgres MCP server
→ Executing: SELECT COUNT(*), SUM(amount) FROM orders WHERE created_at > NOW() - INTERVAL '7 days'
→ Result: 1,234 orders, $89,567.89 total

5. 常见 MCP 场景

(1) 数据库操作

TEXT 📖 仅展示
> 查看用户表的结构
> 查询活跃用户数量
> 为新功能创建数据库迁移

(2) GitHub 集成

TEXT 📖 仅展示
> 列出待处理的 Issue
> 创建 PR 并关联 Issue #15
> 查看 PR #42 的审查评论

(3) 文档查询

TEXT 📖 仅展示
> 查阅 Notion 中的 API 设计文档
> 读取 Confluence 的技术规范
> 搜索项目 Wiki 中的部署指南

(4) 云服务操作

TEXT 📖 仅展示
> 查看 AWS S3 存储桶列表
> 检查 CloudWatch 告警
> 列出 EC2 实例状态

▶ 示例 2: Bob 的 MCP 工作流

TEXT 📖 仅展示
# Bob 用 MCP 完成数据驱动开发
> 1. 查询数据库中 products 表的结构
> 2. 根据 Schema 创建 TypeScript 类型定义
> 3. 生成 CRUD API 端点
> 4. 编写集成测试

# Codex 通过 MCP:
→ Connected to postgres MCP server
→ Reading products table schema...
→ Creating TypeScript types...
→ Generating API endpoints...
→ Writing integration tests...
→ All done ✓

6. 自定义 MCP 服务器

(1) 创建简单 MCP Server

TYPESCRIPT
import { Server } from "@modelcontextprotocol/sdk/server";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio";

const server = new Server({
  name: "my-custom-server",
  version: "1.0.0",
});

server.tool("search_docs", { query: { type: "string" } }, async ({ query }) => {
  const results = await searchDocumentation(query);
  return { content: [{ type: "text", text: JSON.stringify(results) }] };
});

const transport = new StdioServerTransport();
await server.connect(transport);

(2) 注册到 Codex

JSON
{
  "mcp_servers": {
    "my-docs": {
      "command": "node",
      "args": ["/path/to/my-mcp-server.js"]
    }
  }
}

7. MCP 安全

安全措施 说明
权限控制 每个 MCP Server 只暴露必要工具
环境隔离 MCP Server 在独立进程中运行
审计日志 记录所有 MCP 工具调用
只读优先 数据库等敏感服务优先只读

❓ 常见问题

Q MCP 和普通 API 调用有什么区别?
A MCP 是标准化协议,Codex 能自动发现和使用 MCP 工具,无需手动编写 API 调用代码。普通 API 需要手动集成。
Q MCP 支持哪些数据库?
A 支持 PostgreSQL、MySQL、SQLite、MongoDB 等主流数据库。社区还有更多数据库的 MCP 服务器。
Q 自定义 MCP Server 复杂吗?
A 不复杂。使用 MCP SDK 创建一个 Server 只需几十行代码。主要工作是实现具体的工具逻辑。
Q MCP 会暴露敏感数据吗?
A 取决于配置。建议数据库 MCP 使用只读账号,API MCP 限制可访问的端点。
Q MCP 影响性能吗?
A 每个 MCP Server 是独立进程,有启动开销。首次调用稍慢,后续调用正常。

📖 小节


📝 作业

  1. 基础题(难度⭐):配置一个 MCP 服务器(如 filesystem),让 Codex 使用它操作文件。
  2. 进阶题(难度⭐⭐):配置数据库 MCP 服务器,让 Codex 查询数据并生成代码。
  3. 挑战题(难度⭐⭐⭐):创建一个自定义 MCP 服务器,连接你们公司的内部 API。
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏