星期六, 7月 19, 2025

Gemini CLI with MCP 小記


Gemini CLI with MCP 小記


OS: macOS 14.3

gemini-cli 0.1.12


今天要來實作 Gemini CLI 使用 MCP


首先 可以參考 Gemini cli 官方文件 裡面有提到 MCP 相關設定

  • https://github.com/google-gemini/gemini-cli/blob/main/docs/tools/mcp-server.md

  • You can configure MCP servers at the global level in the ~/.gemini/settings.json file or in your project's root directory, create or open the .gemini/settings.json file. Within the file, add the mcpServers configuration block. 所以相關的設定檔會放在 settings.json 內, 就看是要放在家目錄的全域設定檔, 還是在該專案目錄套用


如果 gemini cli 還沒安裝 MCP

在執行 /mcp 指令的時候, 會被提示去參考官方文件


這次的實作我是在專案目錄內建立 .gemini/settings.json

內容如下


{

  "mcpServers": {

    "google-maps": {

      "command": "npx",

      "args": [

        "-y",

        "@modelcontextprotocol/server-google-maps"

      ],

      "env": {

        "GOOGLE_MAPS_API_KEY": "<YOUR_API_KEY>"

      }

    }

  }

}


  • 將啟用的 Google Maps API Key 替代上方的 <YOUR_API_KEY>


可參考之前的筆記 - vscode insiders with google-map mcp 小記


重啟執行 Gemini CLI

就可以在介面中看到相關資訊與使用 MCP



 


一樣, 在執行功能的時候, 會要求允許相關執行權限


最後輸出結果參考

✦ 好的,我找到了一些松山車站附近評價很高的餐廳:


   * Balle Balle Indian Restaurant & Bar 巴雷巴雷 印度餐廳 (評分: 4.9)

   * 犟餐酒館 (評分: 4.8)

   * À POINT STEAK & BAR (評分: 4.7)

   * JK STUDIO 法式餐酒館 (台北信義店) (評分: 4.7)

   * Cochon (評分: 4.7)

   * Modern Toilet Theme Restaurant (評分: 4.7)

   * MUSA Bistro《芭花家餐酒館》 (評分: 4.7)

   * de nuit (評分: 4.7)

   * Top One Pot Xinyi Restaurant (評分: 4.7)

   * Restaurant Page 頁小館 (評分: 4.6)

   * Mayur Indian Kitchen Restaurant (MIK-2) (評分: 4.6)

   * Tutto Fresco翡冷翠義式餐廳 (評分: 4.6)

   * 1001 Nights Kitchen Taipei (評分: 4.5)

   * Pikul Xinyi Xiangshan Branch (評分: 4.5)

   * The Tavernist (評分: 4.5)

   * Le Beaujour 芃卓-高訂宴會服務 (評分: 4.5)

   * 85TD (評分: 4.4)

   * 30 thirty (評分: 4.4)

   * LAY BACK (評分: 4.4)

   * The Ukai Taipei (評分: 4.3)


  如果您想了解其中任何一家餐廳的更多資訊(例如地址、電話號碼或營業時間),請告訴我。



==== 同場加映 gemini cli 升級 ====


Gemini CLI 最近改版的速度很快, 記錄一下 升級方式


觀察目前 gemini cli 最新版本

% npm  view  @google/gemini-cli version


0.1.12


觀察目前安裝的 gemini cli 版本 (全域)

% npm list -g @google/gemini-cli


/opt/homebrew/lib

└── @google/gemini-cli@0.1.9


  • 目前為 0.1.9


將 gemini cli 升級到最新版本

% npm  install -g  @google/gemini-cli@latest


=====================


感覺又邁進一步

~ enjoy it



References

星期六, 7月 05, 2025

Gemini CLI in GCP Cloud Shell with Google login 小記

Gemini CLI in GCP Cloud Shell with Google login 小記



今天要來實作 在 GCP Cloud Shell  - 採取 Google 登入方式使用 Gemini CLI


 上一篇文章 Gemini CLI 安裝小記有提到, Gemini CLI 授權方式有 3 種, 而一般使用者大多會使用 Google 登入的方式


這邊推一下 使用 GCP Cloud Shell 來進行相關開發或是詢問


但如果你在 GCP Cloud Shell 使用 Google login 方式授權, 因為在請求授權的時候, 不會自動帶出瀏覽器來進行 Google 驗證, 就會發現 驗證的圈圈就會一直轉 @@


這個時候即時看到 Lee Shih Yuan (FourDollars) 的文章


真是太感謝 FourDollars 的文章

以下的實作是基於 FourDollars 的文章


建立 url-logger.sh 檔案, 內容如下


#!/bin/bash

# This script will log the URL that Gemini CLI tries to open.

# The authentication URL will be written to this file.

URL_FILE="$HOME/gemini_auth_url.txt"

# Ensure the file exists.

touch "$URL_FILE"

# Append the URL and a timestamp to the file.

echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" >> "$URL_FILE"

# Optional: Print to console as well for immediate visibility.

echo "URL would be opened: $1"


  • 這個檔案我是放在自己的家目錄 ~ , 因為 /usr/local/bin 在 GCP CloudShell 針對一般使用者沒有寫入權限, 但是我不想 sudo 來進行, 因為這個授權方式應該是一次性的


給予執行權限

$ chmod  +x  ~/url-logger.sh


修改 Shell 設定檔


在 ~/.bashrc 加入 BROWSER 變數


export  BROWSER=~/url-logger.sh


重新讀取 Shell 設定檔

$source  ~/.bashrc


接下來在 GCP 開啟 2 個 cloudshell 視窗

在 cloudshell 視窗 1 執行 gemini 指令 - 如果你是使用 Google 登入驗證, 他會去使用 BROWSER 要進行驗證 - 這個時候其實會等待驗證連線, 所以不能關閉


在 cloudshell 視窗 2 觀察驗證的 URL - $ cat  "$HOME/gemini_auth_url.txt"


在 本機將 取得的 URL 在瀏覽器貼上, 這個時候會要求選取你的 Google 帳號, 然後因為他的連線URL 是 localhost:xxxx 會顯示無法連上這個網站, 將 URL 複製起來


在 cloudshell 視窗 2 使用 $curl "剛剛複製的 URL" - 進行驗證


這個時候就會發現 gemini 已經可以開始使用



再次感謝 Jimmy Liao 與 Lee Shih Yuan (FourDollars) 的文章 讓我可以在 GCP Cloud Shell 方便的使用 Gemini CLI


又跨出一步

~ enjoy it




References