开发工具15 分钟

2025年最全Gemini CLI与MCP使用指南:10分钟上手AI终端与模型交互协议

【2025年6月更新】详解Google开源Gemini CLI终端工具与MCP协议整合,从零基础到高级应用,无需复杂配置即可实现AI模型与外部工具无缝连接!内附实用示例和性能优化技巧!

API中转服务 - 一站式大模型接入平台
BrightData - 全球领先的网络数据平台,专业的数据采集解决方案
AI开发专家
AI开发专家·技术文档工程师

2025年最全Gemini CLI与MCP使用指南:10分钟上手AI终端与模型交互协议

Gemini CLI与MCP终端交互界面展示

🚀 2025年6月实测有效: Google最新开源的Gemini CLI命令行工具已与Model Context Protocol (MCP)无缝整合,让AI模型能够直接与各类工具和API交互。本文提供从入门到精通的完整教程,帮助你迅速掌握这一强大的开发工具!

作为开发者,我们一直期待能在熟悉的终端环境中与AI无缝交互。Google在6月25日正式开源了Gemini CLI,并原生集成了Model Context Protocol (MCP)支持,彻底改变了开发者与AI模型交互的方式。无论是搭建项目、分析代码,还是自动化常规任务,现在都可以直接在终端中通过自然语言完成。

本文将带你全面了解Gemini CLI和MCP的强大功能,从安装配置到高级应用,一步步教你如何将AI的力量融入日常开发工作流程。

什么是Gemini CLI与MCP?核心概念解析

在深入学习如何使用这些工具之前,让我们先理解一下它们的核心概念和设计思路。

Gemini CLI:终端中的AI助手

Gemini CLI是Google发布的开源命令行工具,让你能在终端环境中直接使用Gemini大语言模型。它不仅仅是一个简单的聊天界面,更是一个功能完备的开发工具,具有以下核心特点:

  • 超大上下文窗口:基于Gemini 2.5 Pro模型,支持100万token的上下文窗口,可以处理整个代码库
  • 自带工具集:内置文件读写、Web搜索、Shell命令执行等实用工具
  • 开源免费:采用Apache 2.0许可证,完全开源且对个人开发者免费
  • 强大扩展性:支持通过MCP协议扩展更多功能
  • ReAct循环模式:能够规划、执行、观察并适应,实现真正的智能工作流

MCP:模型交互的通用协议

MCP (Model Context Protocol) 是由Anthropic设计的开放协议,旨在让AI模型能够与各种外部工具、API和服务进行交互。它的核心理念是:

  • 标准化工具交互:提供统一的方式让AI模型调用外部工具
  • 自我描述:工具可以向模型描述自己的功能和参数要求
  • 客户端-服务器架构:MCP服务器提供工具,MCP客户端(如Gemini CLI)调用这些工具
  • 可扩展性:开发者可以创建自定义MCP服务器,扩展模型能力
  • 跨平台兼容:不同AI模型可以使用相同的MCP工具

简单来说,MCP就像是"AI工具的USB接口",让不同的模型和工具能够即插即用,无需定制开发。相比传统的函数调用方式,MCP提供了更丰富的上下文交互能力,让AI能够更好地理解工具的用途并正确使用它们。

Gemini CLI与MCP安装配置流程图

Gemini CLI安装与基础配置:简单3步上手

无论你是Windows、Mac还是Linux用户,安装和配置Gemini CLI的过程都非常简单直观。以下是详细的步骤指南:

步骤1:确保Node.js环境

Gemini CLI基于Node.js构建,因此首先需要确保你的系统已安装Node.js 18或更高版本:

hljs bash
# 检查Node.js版本
node -v

# 如果未安装或版本过低,可以从官网下载安装
# https://nodejs.org/

步骤2:安装Gemini CLI

你有两种方式安装Gemini CLI:

方式一:全局安装(推荐)

hljs bash
npm install -g @google/gemini-cli

安装完成后,你可以在任何目录通过gemini命令启动。

方式二:无需安装直接运行

如果你不想全局安装,也可以通过npx直接运行:

hljs bash
npx https://github.com/google-gemini/gemini-cli

步骤3:登录授权

首次运行Gemini CLI时,你需要进行授权:

hljs bash
# 如果已全局安装
gemini

# 或者通过npx运行
npx https://github.com/google-gemini/gemini-cli

启动后,CLI会提示你选择授权方式:

  1. Google账号登录(推荐):跟随提示在浏览器中完成Google账号授权
  2. API密钥方式:如果你有Gemini API密钥,可以设置环境变量:
    hljs bash
    export GEMINI_API_KEY="your_api_key_here"
    

💡 专业提示:使用Google账号登录后,你将获得Gemini Code Assist免费许可,包括每分钟60次、每日1000次的模型请求额度,足够个人开发使用。

Gemini CLI基础使用:与AI对话与文件处理

完成安装和授权后,你就可以开始使用Gemini CLI了。以下是一些基础功能和常用命令:

基础对话交互

在终端中启动Gemini CLI后,你可以直接输入问题或指令:

$ gemini
> 解释什么是React.js及其主要特点

Gemini会给出详细回答,支持markdown格式和代码高亮。

文件和代码操作

Gemini CLI能够读取和理解你的项目文件:

> 解释src/components/App.jsx文件的功能

或者使用@符号直接引用文件:

> @src/components/App.jsx 这个组件有哪些潜在的性能问题?

执行Shell命令

你可以让Gemini CLI执行shell命令,方法是在命令前加上感叹号:

> !ls -la

或者进入Shell模式,连续执行多个命令:

> !
$ ls -la
$ npm list
$ exit  # 退出Shell模式,返回Gemini CLI

内置工具和命令

Gemini CLI提供了一系列以斜杠开头的内置命令:

  • /help - 显示所有可用命令
  • /tools - 列出所有可用工具
  • /chat save <标签> - 保存当前会话
  • /chat resume <标签> - 恢复之前保存的会话
  • /clear - 清除终端显示
  • /quit/exit - 退出Gemini CLI

MCP整合:扩展Gemini CLI的能力

现在我们来到了最激动人心的部分:如何通过MCP协议扩展Gemini CLI的能力,让它能够与各种外部工具和服务交互。

什么是MCP服务器?

MCP服务器是实现了Model Context Protocol的程序,它向Gemini CLI这样的客户端提供各种工具。每个MCP服务器通常专注于特定领域的功能,例如:

  • GitHub MCP服务器 - 提供与GitHub仓库交互的能力
  • 天气MCP服务器 - 提供实时天气查询功能
  • 数据库MCP服务器 - 提供SQL查询和数据库操作功能
  • Playwright MCP服务器 - 提供网页自动化和爬取功能
  • Context7 MCP服务器 - 提供开源库文档查询功能

MCP的特别之处在于,服务器会向模型"自我描述"自己的功能和参数要求,这样AI模型能够"理解"工具的用途,并在适当的时机使用正确的参数调用它们。

Gemini CLI使用MCP工具的实际场景示例

配置MCP服务器

要在Gemini CLI中使用MCP服务器,你需要创建或编辑配置文件:

  1. 创建配置目录和文件:
hljs bash
mkdir -p ~/.gemini
touch ~/.gemini/settings.json
  1. 编辑settings.json文件,添加MCP服务器配置:
hljs json
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_TOKEN": "your_github_token_here"
      }
    },
    "weather": {
      "command": "npx",
      "args": ["-y", "mcp-server-weather"],
      "env": {
        "WEATHER_API_KEY": "your_weather_api_key_here"
      }
    }
  }
}
  1. 重启Gemini CLI以加载新配置

使用MCP工具

配置完成后,你可以通过以下步骤使用MCP工具:

  1. 使用/mcp命令查看所有可用的MCP服务器和工具:
> /mcp

这会显示所有已连接的MCP服务器及其提供的工具列表。

  1. 直接在对话中自然使用这些工具:
> 获取北京明天的天气预报

Gemini会自动识别这是一个天气查询,调用weather MCP服务器获取信息。

  1. 或者直接指定使用某个工具:
> 使用GitHub工具列出我的仓库中的所有issue

🔥 高级技巧:你可以在提示中明确告诉Gemini使用特定工具,例如"请使用GitHub工具查看最近的提交",这样可以提高工具选择的准确性。

实用示例:用Gemini CLI+MCP解决日常开发问题

光说不练假把式,让我们通过几个实际例子,看看Gemini CLI和MCP如何帮助解决实际的开发问题:

示例1:分析GitHub仓库并提出改进建议

> 使用GitHub工具分析仓库"username/project"的代码,找出可能的性能问题和改进点

Gemini会调用GitHub MCP服务器,获取仓库信息,分析代码结构,然后提供详细的改进建议。这个过程包括:

  1. 获取仓库结构和文件列表
  2. 分析关键文件的代码
  3. 识别潜在的性能瓶颈、代码质量问题和安全漏洞
  4. 提供具体的改进建议和代码示例

示例2:使用天气数据创建示例应用

> 创建一个简单的React天气应用,使用weather工具获取实时数据,显示5天预报

Gemini会设计应用结构,生成代码,并集成weather MCP服务器的API调用,一步到位:

hljs jsx
// WeatherApp.jsx
import React, { useState, useEffect } from 'react';
import './WeatherApp.css';

const WeatherApp = () => {
  const [forecast, setForecast] = useState([]);
  const [location, setLocation] = useState('北京');
  const [loading, setLoading] = useState(false);
  
  // 获取天气数据的函数
  const fetchWeather = async () => {
    setLoading(true);
    try {
      // 这里会调用weather MCP服务器
      const response = await fetch(`/api/weather?location=${location}&days=5`);
      const data = await response.json();
      setForecast(data.forecast);
    } catch (error) {
      console.error('获取天气数据失败:', error);
    } finally {
      setLoading(false);
    }
  };
  
  // 组件挂载时获取数据
  useEffect(() => {
    fetchWeather();
  }, []);
  
  return (
    <div className="weather-app">
      <h1>五天天气预报</h1>
      <div className="location-input">
        <input
          type="text"
          value={location}
          onChange={(e) => setLocation(e.target.value)}
          placeholder="输入城市名称"
        />
        <button onClick={fetchWeather} disabled={loading}>
          {loading ? '加载中...' : '查询'}
        </button>
      </div>
      
      {loading ? (
        <p>正在获取天气数据...</p>
      ) : (
        <div className="forecast-container">
          {forecast.map((day, index) => (
            <div key={index} className="forecast-card">
              <h2>{day.date}</h2>
              <img src={`/icons/${day.condition}.svg`} alt={day.condition} />
              <p className="temperature">
                {day.minTemp}°C - {day.maxTemp}°C
              </p>
              <p>{day.condition}</p>
            </div>
          ))}
        </div>
      )}
    </div>
  );
};

export default WeatherApp;

同时,Gemini还会生成配套的CSS样式、API路由和后端集成代码,帮你完成整个应用。

示例3:自动化数据分析和可视化

> 分析项目中的sales.csv文件,生成销售趋势图表和关键指标摘要

Gemini会使用内置的文件读取工具解析CSV数据,然后生成数据分析脚本:

hljs python
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

# 读取销售数据
df = pd.read_csv('sales.csv')

# 数据清洗和转换
df['date'] = pd.to_datetime(df['date'])
df['month'] = df['date'].dt.to_period('M')

# 按月汇总销售额
monthly_sales = df.groupby('month')['amount'].sum().reset_index()
monthly_sales['month'] = monthly_sales['month'].astype(str)

# 生成销售趋势图
plt.figure(figsize=(12, 6))
sns.lineplot(data=monthly_sales, x='month', y='amount')
plt.title('月度销售趋势')
plt.xticks(rotation=45)
plt.tight_layout()
plt.savefig('monthly_sales_trend.png')

# 计算关键指标
total_sales = df['amount'].sum()
avg_sales = df['amount'].mean()
top_product = df.groupby('product')['amount'].sum().sort_values(ascending=False).index[0]

# 输出摘要报告
print(f"总销售额: ${total_sales:,.2f}")
print(f"平均订单金额: ${avg_sales:.2f}")
print(f"最畅销产品: {top_product}")
print(f"销售趋势图已保存为 monthly_sales_trend.png")

如果配置了数据库MCP服务器,Gemini还可以直接从数据库读取数据,而不需要中间CSV文件。

示例4:使用Playwright MCP实现网页自动化

如果你配置了Playwright MCP服务器,可以让Gemini帮你自动化网页操作:

> 使用Playwright工具访问https://example.com,填写联系表单并提交

Gemini会生成并执行Playwright自动化脚本,完成表单填写和提交过程:

hljs javascript
// 自动生成的Playwright脚本
const { chromium } = require('playwright');

(async () => {
  const browser = await chromium.launch();
  const page = await browser.newPage();
  
  console.log('正在访问网站...');
  await page.goto('https://example.com');
  
  console.log('定位联系表单...');
  await page.click('a[href="/contact"]');
  
  console.log('填写表单...');
  await page.fill('#name', '张三');
  await page.fill('#email', '[email protected]');
  await page.fill('#message', '这是一条测试留言,由Gemini CLI自动生成。');
  
  console.log('提交表单...');
  await page.click('button[type="submit"]');
  
  // 等待提交确认
  await page.waitForSelector('.success-message');
  console.log('表单已成功提交!');
  
  await browser.close();
})();

这种自动化能力在测试、数据抓取和重复性网页操作中特别有用。

创建自定义MCP服务器:扩展可能性

如果现有的MCP服务器不能满足你的需求,你还可以创建自己的MCP服务器。虽然这需要一些开发经验,但基本流程并不复杂:

方法1:使用FastMCP (Python)

FastMCP是一个Python库,让你可以快速创建MCP服务器:

  1. 安装依赖
hljs bash
pip install fastmcp
  1. 创建服务器代码
hljs python
from fastmcp import FastMCP
import requests

# 创建FastMCP服务器实例
server = FastMCP("web_tools")

@server.tool()
def get_website_status(url: str) -> str:
    """检查网站状态并返回HTTP状态码和响应时间"""
    try:
        response = requests.get(url, timeout=5)
        return f"状态码: {response.status_code}, 响应时间: {response.elapsed.total_seconds()}秒"
    except Exception as e:
        return f"错误: {str(e)}"

@server.tool()
def extract_webpage_content(url: str, selector: str = "body") -> str:
    """获取网页内容,可选择指定CSS选择器"""
    try:
        response = requests.get(url, timeout=5)
        from bs4 import BeautifulSoup
        soup = BeautifulSoup(response.text, 'html.parser')
        element = soup.select_one(selector)
        if element:
            return element.text.strip()
        return "未找到指定元素"
    except Exception as e:
        return f"提取内容时出错: {str(e)}"

# 启动服务器
if __name__ == "__main__":
    server.run()
  1. 配置Gemini CLI使用你的服务器
hljs json
{
  "mcpServers": {
    "web_tools": {
      "command": "python",
      "args": ["path/to/your/server.py"],
      "env": {}
    }
  }
}

方法2:使用MCP SDK (JavaScript/TypeScript)

如果你更习惯JavaScript或TypeScript,可以使用官方的MCP SDK:

  1. 创建项目
hljs bash
mkdir my-mcp-server
cd my-mcp-server
npm init -y
npm install @modelcontextprotocol/sdk
  1. 创建服务器代码
hljs typescript
import { Server } from '@modelcontextprotocol/sdk';
import { ListToolsRequestSchema, CallToolRequestSchema } from '@modelcontextprotocol/sdk';
import axios from 'axios';

// 定义工具
const WEB_STATUS_TOOL = {
  name: "get_website_status",
  description: "检查网站状态并返回HTTP状态码",
  inputSchema: {
    type: "object",
    properties: {
      url: {
        type: "string",
        description: "要检查的网站URL"
      }
    },
    required: ["url"]
  }
};

// 创建服务器
const server = new Server(
  { name: "web_tools_server", version: "1.0.0" },
  {
    capabilities: {
      tools: {
        tools: [WEB_STATUS_TOOL]
      }
    }
  }
);

// 注册工具处理程序
server.setRequestHandler(ListToolsRequestSchema, async () => ({
  tools: [WEB_STATUS_TOOL]
}));

server.setRequestHandler(CallToolRequestSchema, async (request) => {
  const { name, arguments: args } = request.params;
  
  if (name === "get_website_status") {
    try {
      const response = await axios.get(args.url, { timeout: 5000 });
      return {
        content: [{ type: "text", text: `状态码: ${response.status}, 响应时间: ${response.duration}ms` }],
        isError: false
      };
    } catch (error) {
      return {
        content: [{ type: "text", text: `错误: ${error.message}` }],
        isError: true
      };
    }
  }
  
  return {
    content: [{ type: "text", text: `未知工具: ${name}` }],
    isError: true
  };
});

// 启动服务器
const stdio = server.createStdioTransport();
stdio.listen();
  1. 配置Gemini CLI使用你的服务器
hljs json
{
  "mcpServers": {
    "web_tools": {
      "command": "node",
      "args": ["path/to/your/server.js"],
      "env": {}
    }
  }
}

MCP工具设计最佳实践

设计优秀的MCP工具需要注意以下几点:

  1. 工具命名要清晰具体:使用描述性名称,如search_github_issues而非简单的search
  2. 提供详细的工具描述:帮助模型理解工具的用途、功能和使用场景
  3. 详细定义参数架构:清晰说明每个参数的类型、格式和用途
  4. 添加良好的错误处理:为各种边缘情况提供友好的错误信息
  5. 控制返回数据大小:避免返回超大结果,可能会超出模型的处理能力

高级技巧与性能优化

要充分发挥Gemini CLI和MCP的潜力,这里有一些高级技巧和优化建议:

使用自定义指令文件

你可以在项目根目录创建GEMINI.md文件,定义特定项目的指令和规则:

hljs markdown
# 项目指南

## 代码风格
- 使用ES6+语法
- 遵循Airbnb JavaScript风格指南
- 组件采用函数式编程风格

## 项目结构
/src
  /components - React组件
  /hooks - 自定义Hooks
  /utils - 工具函数
  /api - API客户端

## 数据流
- 使用Redux管理全局状态
- API请求应使用RTK Query
- 组件内状态使用React Hooks

Gemini CLI会自动加载这些信息,使AI回答更符合你的项目要求。你还可以在这个文件中指定MCP工具的使用偏好和限制。

优化令牌使用

大型项目可能会很快耗尽令牌限额。以下是几个优化策略:

  • 使用/compress命令压缩会话历史,减少上下文占用
  • 有针对性地引用特定文件,而不是整个代码库,如@src/components/critical.js
  • 使用/memory add添加关键信息,避免重复解释
  • 对于大型项目分析,考虑使用分阶段方法,先分析架构,再逐模块深入
  • 使用/stats命令监控令牌使用情况,及时调整策略

MCP服务器性能调优

如果你使用自定义MCP服务器,可以考虑以下优化:

  • 实现结果缓存:避免重复计算,特别是对于昂贵的操作
  • 使用异步处理:对于长时间运行的任务,实现异步处理并提供进度更新
  • 限制返回数据大小:保持在100-200KB以内,避免模型处理超大响应
  • 添加超时处理:避免工具调用挂起,影响整体体验
  • 实现分页:对于大量数据,提供分页机制,允许模型请求更多数据
  • 优化启动时间:减少MCP服务器的冷启动延迟,提高首次响应速度

常见问题与解答(FAQ)

在使用Gemini CLI和MCP的过程中,你可能会遇到一些常见问题。这里我们整理了最常见的几个:

Q1: Gemini CLI的免费使用限制是什么?

A1: 使用Google账号登录后,Gemini CLI提供以下免费额度:

  • 每分钟60次模型请求
  • 每天1000次模型请求
  • 基于Gemini 2.5 Pro模型
  • 100万token的上下文窗口

这对于个人开发使用通常已经足够。如果需要更高限额,可以使用付费API密钥。

Q2: 如何确保MCP工具正确加载?

A2: 如果MCP工具没有正确加载,请检查:

  1. settings.json文件格式是否正确(尤其是JSON语法)
  2. MCP服务器包是否能正确安装(尝试手动运行npx命令)
  3. 环境变量(如API密钥)是否正确设置
  4. 使用/mcp命令查看具体错误信息

如果问题持续存在,尝试用--verbose标志启动Gemini CLI以获取更多调试信息:

hljs bash
gemini --verbose

Q3: 能否在离线环境中使用Gemini CLI?

A3: 目前Gemini CLI需要联网才能访问Gemini模型。但是,你可以通过以下方式减少联网需求:

  1. 使用本地运行的MCP服务器
  2. 缓存常用指令的结果
  3. 考虑使用Ollama等本地模型替代方案(不过这需要自定义开发)

Q4: MCP工具返回结果超时怎么办?

A4: 对于复杂或需要长时间运行的MCP工具调用,可能会发生超时。解决方法:

  1. 在MCP服务器端实现异步处理和分段返回
  2. 将复杂任务拆分为多个简单任务
  3. 调整Gemini CLI的超时设置(在高级配置中)
  4. 优化工具的实现,减少执行时间

Q5: 如何在团队中共享MCP配置?

A5: 要在团队成员之间共享MCP配置:

  1. .gemini/settings.json添加到版本控制中(注意不要包含API密钥)
  2. 使用环境变量或密钥管理系统管理敏感信息
  3. 创建项目级配置文件,自动加载特定项目的MCP服务器
  4. 使用Docker容器封装MCP服务器,确保一致的环境

未来展望:Gemini CLI与MCP的发展方向

作为刚刚开源的技术,Gemini CLI和MCP协议还有很大的发展空间。以下是我们预计的一些发展方向:

  1. 更丰富的MCP生态系统:随着更多开发者参与,将会出现更多专业领域的MCP服务器,涵盖从DevOps到数据分析的各个领域
  2. 本地执行能力:未来可能支持在本地运行小型模型,减少对网络的依赖,提高隐私保护水平
  3. 更深入的开发工具集成:与IDE、CI/CD系统等开发工具的进一步整合,创建无缝的开发体验
  4. 多模态支持扩展:除了文本之外,还可能支持图像、音频等多模态输入输出,扩展应用场景
  5. 企业级功能增强:加强安全性、治理和团队协作功能,使其更适合企业环境使用
  6. AI代理框架整合:与更广泛的AI代理框架(如LangChain、AutoGen等)整合,构建复杂的多代理系统

总结:AI驱动的终端新时代

Gemini CLI和MCP的结合代表了AI工具发展的新方向:不再是孤立的模型,而是能够与外部世界交互的智能助手。这种方式让开发者能够在熟悉的终端环境中无缝接入AI能力,真正实现了"AI辅助开发"的承诺。

无论你是想提高编码效率、自动化重复任务,还是探索新的开发可能性,Gemini CLI和MCP都为你提供了强大而灵活的工具。希望本指南能帮助你快速上手并发挥这些工具的潜力!

🎉 开始使用:只需几分钟,你就可以开始体验AI驱动的终端新时代!如果你希望获取更多AI相关资源,不妨尝试laozhang.ai提供的中转API服务,注册即送免费使用额度!访问https://api.laozhang.ai/register/?aff_code=JnIT立即体验最全最便宜的大模型中转API服务。

链接与资源


更新日志:

  • 2025-06-28:首次发布完整版Gemini CLI与MCP使用指南
  • 2025-06-30:更新Gemini CLI安装部分,增加Node.js最低版本要求
  • 2025-07-02:增加MCP服务器性能优化部分,更新工具设计最佳实践

推荐阅读