臭名昭著aTrust隔离计划1.臭名昭著aTrust隔离计划2.VPN原理与aTrust隔离网络实践3.docker-easyconnect到底做了什么4.TUN(tunnel-隧道-虚拟网卡)模式
基于Quartz搭建的个人博客1.Quartz个人博客使用教程2.使用 rsync 增量部署 Quartz 博客3.使用 GitHub Actions 自动部署 Quartz 博客5.域名绑定6.CDN加速Obsidian、双向链接与知识图谱
旅行
行程攻略青岛三日游行程攻略
前端
NginxNginx配置与反向代理入门
Nodenpm与npx的区别
中华财险-公司项目
对外接口文档
基础数据码表对外接口(仅支持rpc调用)业务码表对外接口应用主数据对外接口
基础运营查询版本更新日志详情消息中心对外接口站内信对外接口站内信模板配置手册
权限中心权限中心对外接口文档(最新)权限中心对外接口文档前端ACL-CORE FACADE依赖版本
审计中心审计中心对外接口文档audit-center-facade版本
审批中心工作流迁审批流现状工作流迁审批流API能力替换方案老审批流接口文档审批中心接口文档审批中心业务回调FAQ
账号中心内部系统对接单点登录内部系统对接认证中心三方网页应用登录授权账号中心对外接口文档前端账号中心RPC接口文档账户变更对外广播消息文档账户中心对外接口HRMS外部员工变更广播消息文档HRMS外部员工对外接口
组织员工岗位🔥机构映射SDK接口文档员工岗位变更通知说明组织机构管营一体概念与用法组织员工对外广播消息文档组织员工岗位对外接口文档组织员工岗位对外接口文档前端组织员工岗位数据模型组织员工主数据业务场景案例organization-facade版本
hrms(大型人力资源外包管理系统)
项目架构说明HRMS Maven模块与依赖说明
项目说明0.流程中心模块0.组织模块说明1.业务线模块2.计划模块3.项目模块4.协议模块5.供应商模块6.合约域模块7.外包人员模块*核心:外包人员生命周期
项目运维外包人员项目编制差异排查与修复2.HRMS相关问题排查4.修改externalId(externalId和accountId不一致)
需求-系分
1.内部转外包0723外包人员关联历史内部账号系分新增外包人员关联历史账号内容(紧急0723上线)需求
2.工作岗位0820工作岗位0820需求工作岗位0820需求-系分
3.用工模式调整0917内部人员转外包用工系统需求2内部人员转外包用工系统需求-系分
sso(账号中心-单点登录)
项目架构说明aboss-sso项目架构入门AOP统一日志打印链路Maven多模块项目高级知识OAuth2.0
项目说明1.SSO-OAuth2.0与IDaaS登录流程2.外部账号创建流水号并发问题分析
AI
使用说明
第三方插件&技能简介Archify使用与安装指南Ponytail使用指南
CodexCodex CLI与IDE区别及使用指南Codex Hook单独配置与提交通知Codex MCP安装与使用指南Codex第三方插件安装与使用指南
Agent开发1.LLM、Token、上下文窗口与模型参数2.大模型 API、请求参数与响应结构3.Spring AI ChatClient4.Prompt、System Prompt、Prompt 模板6.结构化输出、JSON Schema7.SSE 流式响应8.会话 ID、聊天记录、Redis9.超时、重试、限流、降级10.完成可运行聊天接口
GitGit常用命令与Obsidian推送排查
Java
面试题Java基础与集合面试题
AtomicInteger原子计数与并发安全ConcurrentHashMap并发安全与计数Java线程、线程池与Future
python
基础Python基础语法
HTTPXHRMS员工详情接口调用(Python HTTPX)

Codex MCP 安装与使用指南

1. MCP 是什么

MCP 可以理解成 Codex 的“外接工具”。

例如,安装 MySQL MCP 后,Codex 就能通过它查看数据库表结构、执行查询。Codex 本身不会直接连接 MySQL,必须先安装一个支持 MySQL 的 MCP Server。

2. 用你的 MySQL 数据库举例

你的数据库信息:

地址:47.99.178.186
端口:3306
数据库:personal
用户名:未提供,需要自己补上
密码:已提供,但不要写进 Git 或笔记

下面使用 mysql-mcp-server,通过环境变量传递数据库配置。这个 MCP Server 支持通过 STDIO 连接,适合在本机给 Codex 使用。

3. 配置 MCP

3.1 配置 MySQL MCP

打开 Codex 配置文件:

~/.codex/config.toml

加入下面内容:

[mcp_servers.personal_mysql]
command = "uvx"
args = ["--from", "mysql-mcp-server", "mysql_mcp_server"]
 
[mcp_servers.personal_mysql.env]
MYSQL_HOST = "47.99.178.186"
MYSQL_PORT = "3306"
MYSQL_USER = "替换成你的数据库用户名"
MYSQL_PASSWORD = "替换成你提供的数据库密码"
MYSQL_DATABASE = "personal"

说明:

  • uvx 是 Python 工具 uv 提供的临时运行命令,会自动下载并运行 mysql-mcp-server,不需要手动执行 pip install

  • 你的 Mac 是 Apple Silicon,Homebrew 默认安装在 /opt/homebrew。先执行 brew install uv,然后建议将启动命令写成绝对路径:

    command = "/opt/homebrew/bin/uvx"
  • MYSQL_USER 必须换成真实数据库用户名。只知道密码还不能连接数据库。

  • 密码只放在本机的 config.toml 中,不要提交到 Git,也不要发到群聊或截图中。

  • 如果本机没有 uvx,先安装 uv,然后再重启 Codex。

3.2 配置其他 MCP

以后安装其他 MCP,先查看该项目 README 中的安装方式、启动命令和环境变量,再在 ~/.codex/config.toml 中新增一个配置块。每个 MCP 使用不同的名称。

Python MCP:

[mcp_servers.example]
command = "uvx"
args = ["--from", "Python包名", "启动入口"]

Node.js MCP:

[mcp_servers.example]
command = "npx"
args = ["-y", "npm包名"]

本地程序:

[mcp_servers.example]
command = "/绝对路径/程序名"
args = []

远程 HTTP MCP:

[mcp_servers.example]
url = "https://example.com/mcp"

配置后重启 Codex,输入 /mcp 检查连接状态。

4. 检查是否连接成功

重启 Codex,在输入框执行:

/mcp

看到 personal_mysql 已连接后,输入:

使用 personal_mysql 查询 personal 数据库有哪些表,只做只读操作。

再进一步查询:

使用 personal_mysql 查看 users 表的表结构,并查询 5 条数据。不要执行 INSERT、UPDATE、DELETE、DROP 或 ALTER。

5. 连接失败时检查

按这个顺序排查:

  1. 数据库用户名和密码是否正确。
  2. MySQL 是否允许你的电脑访问 47.99.178.186:3306
  3. 云服务器安全组、防火墙是否放行 3306 端口。
  4. 在终端执行 uvx --version,确认 uvx 可用。
  5. 修改配置后是否重启 Codex。
  6. 在 Codex 中重新执行 /mcp 查看状态。

5.1 公司内网场景:让 zhps_mysql 使用 ATrust SOCKS5

如果 MySQL 地址是公司内网域名,例如:

obproxy-testdb.ob.testcloud.cic.inter

而 ATrust 在本机提供了 SOCKS5 服务:

127.0.0.1:1080

那么 Codex 的 MCP 进程不能只依赖 ATrust 的域名规则。MCP 进程需要明确通过本机 SOCKS5 端口访问,否则可能出现内网域名无法解析或连接失败。

当前 ATrust 规则的含义是:

DOMAIN-SUFFIX,cic.inter,公司代理
IP-CIDR,10.197.0.0/16,公司代理,no-resolve

这些规则由 ATrust 代理客户端负责处理,不会自动注入到 Codex 启动的 MCP 子进程中。

推荐方案:使用 proxychains-ng 包装单个 MCP

先安装:

brew install proxychains-ng

创建专用配置文件,例如:

# /Users/chenweili/.codex/proxychains-zhps.conf
dynamic_chain
proxy_dns
 
[ProxyList]
socks5 127.0.0.1 1080

然后将 zhps_mysql 的启动命令改为:

[mcp_servers.zhps_mysql]
command = "/opt/homebrew/bin/proxychains4"
args = [
  "-q",
  "-f", "/Users/chenweili/.codex/proxychains-zhps.conf",
  "/opt/homebrew/bin/uvx",
  "--from", "mysql-mcp-server",
  "mysql_mcp_server"
]
startup_timeout_sec = 120
tool_timeout_sec = 120
 
[mcp_servers.zhps_mysql.env]
MYSQL_HOST = "公司内网 MySQL 地址"
MYSQL_PORT = "3306"
MYSQL_USER = "公司数据库用户名"
MYSQL_PASSWORD = "公司数据库密码"
MYSQL_DATABASE = "aboss_sso_ps"
MYSQL_SQL_MODE = ""

说明:

  • proxychains4 只包装 zhps_mysql,其他 MCP 不会改变网络路径。
  • proxy_dns 很重要,可以避免内网域名仍由本机 DNS 直接解析失败。
  • 数据库地址继续使用公司内网域名,不要改成公网地址。
  • ALL_PROXYHTTPS_PROXY 等环境变量不一定被 MySQL 客户端识别,因此不能保证仅靠环境变量生效。
  • 修改后重启 Codex,再通过 /mcp 检查 zhps_mysql 状态。

如果公司 VPN 已连接但仍无法解析 cic.inter 域名,通常需要使用上述 SOCKS5 包装方式,或者让公司网络提供跳板机/端口转发方案。Codex 的 experimental_environment = "remote" 是将 MCP 放到远程执行环境中运行,不等于让本机 MCP 自动连接公司的 VPN。

sql_mode 不兼容问题

sql_mode 是 MySQL 连接建立时的行为设置。mysql-mcp-server 默认使用:

sql_mode = "TRADITIONAL"

TRADITIONAL 会启用较严格的数据校验规则,但公司的 Obproxy/数据库兼容层不支持这个连接初始化设置,因此会返回:

Not supported feature or function

zhps_mysql.env 中增加:

MYSQL_SQL_MODE = ""

表示不额外要求当前 MCP 连接启用 TRADITIONAL。该配置只影响当前连接,不会修改数据库的全局配置。验证结果显示,设置为空后,SELECT 1 可以正常执行。主要进行只读查询时通常没有问题;如果以后执行写入,需要额外注意数据校验行为。

6. 安全建议

  • 最好新建一个只读 MySQL 用户给 MCP 使用,不要使用 root。
  • 只允许这个用户访问 personal 数据库。
  • 第一次只执行查询,不要让 MCP 具备写入权限。
  • 你的数据库地址和密码已经在聊天中出现过,正式使用前建议更换密码。

7. MCP 查询和统计网站

网站适合查看什么统计信息
官方 MCP Registry官方收录、版本、安装方式、环境变量基本没有使用量排名
PulseMCP搜索和比较 MCP预计访问量、热门排名、GitHub Star
Smithery搜索、安装和托管 MCPuseCount,自建服务还可查看调用分析
Glama搜索、在线测试、安全和质量检查质量评分、工具数量、生态规模
MCP.so按分类浏览 MCP适合发现,使用量统计较少
GitHub、PyPI、npm查看源码和软件包Star、Fork、Issue、下载量

说明:

  • 官方 Registry 主要保存 MCP 元数据,不负责托管安装包。
  • PulseMCP 的访问量属于估算值,不是精确安装量。
  • 使用 uvx 在本机运行 MCP 时,网站通常看不到你的实际调用次数。
  • 查找 MySQL MCP 时,应同时核对作者、GitHub 仓库和安装包名称,避免安装同名但不同项目的 MCP。

参考: