Skip to content

通过 MCP(Model Context Protocol),Gemini CLI 可以连接 GitHub、PostgreSQL、Slack 等外部服务,获得超出内置工具的能力。本页介绍通过 settings.jsongemini 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,检查:

  1. Docker 是否在运行(Docker 类型)
  2. 环境变量是否正确设置
  3. 网络是否可访问(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 CLIClaude Code
配置文件~/.gemini/settings.json~/.claude/settings.json
配置键mcpServersmcpServers
格式基本相同基本相同
范围全局 / 项目级全局 / 项目级

常见问题

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 只会在这个项目中生效。