Appearance
通过 MCP(Model Context Protocol),Gemini CLI 可以连接 GitHub、PostgreSQL、Slack 等外部服务,获得超出内置工具的能力。本页介绍通过 settings.json 或 gemini mcp add 命令配置 MCP 服务器的完整流程。
MCP 服务器接入
MCP(Model Context Protocol)是一个开放标准,让 AI 工具可以通过统一接口连接各种外部服务。配置好 MCP 服务器后,Gemini CLI 就能直接操作 GitHub、查询数据库、发 Slack 消息等。
配置方式一:编辑 settings.json(推荐)
在 ~/.gemini/settings.json(全局)或 项目/.gemini/settings.json(项目级)中添加 mcpServers 块:
示例:接入 GitHub MCP
json
{
"mcpServers": {
"github": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "GITHUB_PERSONAL_ACCESS_TOKEN",
"ghcr.io/github/github-mcp-server:latest"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_PERSONAL_ACCESS_TOKEN}"
}
}
}
}注意:
env字段中用${VAR_NAME}引用环境变量,而不是直接写 token 值,避免泄漏到配置文件里。
示例:接入 npx 类型 MCP(无需 Docker)
json
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"]
},
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres"],
"env": {
"DATABASE_URL": "${DATABASE_URL}"
}
}
}
}示例:HTTP 类型 MCP
json
{
"mcpServers": {
"my-api": {
"url": "http://localhost:3000/mcp",
"transport": "http"
}
}
}配置方式二:CLI 命令(快速添加)
bash
# 添加 GitHub MCP(npx 方式)
gemini mcp add github npx -y @modelcontextprotocol/server-github \
--env GITHUB_TOKEN=ghp_xxx
# 添加 PostgreSQL MCP
gemini mcp add postgres npx -y @modelcontextprotocol/server-postgres \
--env DATABASE_URL=postgres://user:pass@localhost/mydb
# 添加 HTTP 类型 MCP
gemini mcp add myservice http://localhost:3000 --transport http
# 指定仅允许特定工具
gemini mcp add github npx -y @modelcontextprotocol/server-github \
--include-tools list_repos,create_issue
# 查看已配置的 MCP 服务器
gemini mcp list
# 删除
gemini mcp remove github验证连接
重启 Gemini CLI 后,在 REPL 中:
/mcp list看到 ✓ github: ... - Connected 表示连接成功。
如果显示 Disconnected,检查:
- Docker 是否在运行(Docker 类型)
- 环境变量是否正确设置
- 网络是否可访问(HTTP 类型)
遇到问题时也可以用 /mcp reload 重新初始化。
常用 MCP 服务器推荐
| 服务 | npm 包 | 功能 |
|---|---|---|
| GitHub | @modelcontextprotocol/server-github | 管理仓库、Issue、PR |
| PostgreSQL | @modelcontextprotocol/server-postgres | 执行 SQL 查询 |
| Filesystem | @modelcontextprotocol/server-filesystem | 安全文件系统访问 |
| Brave Search | @modelcontextprotocol/server-brave-search | 网页搜索 |
| Slack | @modelcontextprotocol/server-slack | 发消息、管理频道 |
| SQLite | @modelcontextprotocol/server-sqlite | 操作本地 SQLite 数据库 |
完整列表见 MCP 官方仓库。
与 Claude Code MCP 配置对比
Gemini CLI 和 Claude Code 的 MCP 配置格式非常相似,可以互相参考:
| 特性 | Gemini CLI | Claude Code |
|---|---|---|
| 配置文件 | ~/.gemini/settings.json | ~/.claude/settings.json |
| 配置键 | mcpServers | mcpServers |
| 格式 | 基本相同 | 基本相同 |
| 范围 | 全局 / 项目级 | 全局 / 项目级 |
常见问题
Q: Docker MCP 和 npx MCP 哪个更推荐?
A: npx 更轻量,不需要 Docker,适合日常开发。Docker 更隔离,适合需要运行服务端进程或有特殊依赖的 MCP 服务器。
Q: MCP 服务器能访问我的私有代码吗?
A: MCP 服务器运行在本地,你控制它能访问的资源。但通过 --include-tools 可以限制只允许特定工具,比如只允许读取而不允许写入。
Q: 如何只在特定项目启用某个 MCP?
A: 在项目目录的 .gemini/settings.json(而非全局的 ~/.gemini/settings.json)中配置 mcpServers,该 MCP 只会在这个项目中生效。