Upgrade to Pro — share decks privately, control downloads, hide ads and more …

お前も Gemini CLI extensions を作らないか?

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for SatohJohn SatohJohn
October 20, 2025

お前も Gemini CLI extensions を作らないか?

Jagu'e'r クラウドネイティブ分科会 クラウドネイティブ × Gemini CLI のイベントで発表した資料になります

Avatar for SatohJohn

SatohJohn

October 20, 2025
Tweet

More Decks by SatohJohn

Other Decks in Programming

Transcript

  1. 自己紹介 佐藤 慧太@SatohJohn • 2023/1 株式会社スリーシェイク入社 • Google Cloud Partner

    Top Engineer ’24、’25 選出 • お客様の労苦 <Toil>を減らす • 娘のお世話を精一杯やっています
  2. # My First Extension Instructions You are an expert developer

    assistant. When the user asks you to fetch posts, use the `fetch_posts` tool. Be concise in your responses. ※バージョン 0.9で試しています
  3. mcp-server { "name": "mcp-server-example", "version": "1.0.0", "mcpServers": { "nodeServer": {

    "command": "node", "args": ["${extensionPath}${/}dist${/}example.js"], "cwd": "${extensionPath}" } } } インストールされる extension の名前 インストールされる tool 類 複数登録可能
  4. Github へ push しているやつ gemini extensions link https://github.com/{レポジト リ} ※バージョン

    0.9で試しています バージョン の更新の検知までしてくれる
  5. 利用用途 特定の Kubernetes への作業を実施する(縛る) • gcloud mcp tool と組み合わせる •

    namespace の固定 • 既存 MCP にある使わない設定 ◦ exclude tool でも同じようなことはできる 特定のAPI に対してラップして利用、検証する • MCP 対応したくない、できない系のパターン • 認証周りとかのコード自体を埋め込む形 https://github.com/gemini-cli-extensions/gcloud
  6. 利用用途 server.registerTool( 'weather-fetcher', { description: 'Fetches weather information from a

    public API.' }, async () => { const appId = "client-id" const apiResponse = await fetch( `https://map.yahooapis.jp/weather/V1/place?appid=${appId}&coordinates=139.6500,35.6764&output=json`,{ method: "GET", } ); const data = await apiResponse.json(); return { content: [ { type: 'text', text: JSON.stringify(data), }, ], }; }, );