# Gemini CLI

settings.jsonにbearer credentialを置かず、OAuth-firstのGemini CLI configurationを使います。

- Canonical: https://docs.xmemo.dev/ja/docs/mcp/gemini
- Locale: ja-JP
- Content-Locale: ja-JP
- Canonical-Content-Digest: 0a6aa86e8077d8de0a7e7252c8c9f50fdcc1bda86fd0811f01ffd845f1fd82b8
- Edition-Digest: 3e3bbb1d4ac4b2411bf9def4a7b0fc5e0d202caff6f592e28fe1fefd06d329a9
- Source-Revision: sha256:5d9fac621d4eb098b31be9ae2758612bab42ce262e90628f5866b3d7ef7f90b9

## 前提条件

レビュー済みの settings.json MCP 設定とブラウザ OAuth サポートを備えた Gemini CLI 開発者ツールを使用します。サポートは Gemini CLI 開発者ツールに適用され、Gemini コンシューマー Web チャット (gemini.google.com) への統合や公式拡張機能ギャラリーの承認を意味するものではありません。

- エンドポイント: https://xmemo.dev/mcp.
- 認証モード: OAuth.
- 設定ファイル: ~/.gemini/settings.json.
- トランスポート: Streamable HTTP (ホストされたエンドポイント用の httpUrl)。
- 拡張機能リポジトリ: github:yonro/xmemo-gemini-cli (マニフェスト 0.1.0、文書化された GitHub インストール、公式ギャラリー承認の推測なし)。

## インストール / セットアップ

Gemini CLI の extensions コマンドを使用して拡張機能をインストールするか、mcpServers の下にある ~/.gemini/settings.json に XMemo 設定ブロックを手動でマージします。

- 拡張機能コマンド: gemini extensions install https://github.com/yonro/xmemo-gemini-cli (yonro/xmemo-gemini-cli @ 39e25b185b README に準拠)。
- 手動フォールバック: httpUrl と ID ヘッダーを保持したまま、XMemo ブロックを ~/.gemini/settings.json にマージします。

```bash
gemini extensions install https://github.com/yonro/xmemo-gemini-cli
```

## Credentialを設定する

Keyは不要です。Gemini CLIを再起動してからbrowser OAuthを完了してください。settings.jsonにXMEMO_KEYやAuthorization headerを入れないでください。

```text
No XMEMO_KEY
Complete browser OAuth in Gemini CLI
```

## XMEMO_AGENT_INSTANCE_IDを生成 / 確認する

ローカルのGemini CLI installごとに秘密ではない値を1つ生成し、gitの外に保存して再起動後も再利用します。これによりattributionが安定します。

```bash
export XMEMO_AGENT_INSTANCE_ID='<stable-local-instance-id>'
```

## 既存のconfig blockを保持する

このページに表示された既存のGemini CLI XMemo configuration blockを使います。httpUrlと秘密ではないidentity headerを保持し、AuthorizationやXMEMO_KEYを追加しないでください。

```json
{
  "mcpServers": {
    "XMemo": {
      "httpUrl": "https://xmemo.dev/mcp",
      "headers": {
        "X-Memory-OS-Agent-ID": "gemini-cli",
        "X-Memory-OS-Agent-Instance-ID": "${XMEMO_AGENT_INSTANCE_ID}"
      }
    }
  }
}
```

## Clientを再起動する

settings.jsonを保存したらGemini CLIを再起動し、endpointと現在のinstance identityを読み込ませてからOAuth consentを完了します。

## 実際のrecall callでテストする

最初のMCP callはread-onlyにします。これはhealth-check placeholderではなく実際のrecall invocationであり、memoryを書き込みません。

```text
recall({ query: "connection check", limit: 1 })
```

## 期待されるresponse（literal shape）

成功したcallは、次の公開ranked text shapeを返します。referenceとcontentは認可されたmemory spaceから得られる実際の値です。

```text
### XMemo Memory Results:
1. Reference: <opaque-memory-id> | Location: <location>
   > <memory content>
```

## よくあるエラー

Gemini CLIのOAuth failureは、ホステッドOAuth error contractを使います。

- invalid_grant — OAuth authorization codeが無効、期限切れ、または使用済みです。Gemini CLIを再接続してもう一度認可してください。
- invalid_target — OAuth resourceがこのMCP serverと一致しません。https://xmemo.dev/mcpを使って再接続してください。
- 403 insufficient_scope — grantにmemory:readが含まれていません。要求されたscopeを承認して再接続してください。

## Gemini CLI

OAuth client: merge this XMemo block into settings.json, set one stable XMEMO_AGENT_INSTANCE_ID for local attribution, then restart Gemini CLI and complete MCP OAuth. Do not add Authorization or XMEMO_KEY to this snippet.

```
{
  "mcpServers": {
    "XMemo": {
      "httpUrl": "https://xmemo.dev/mcp",
      "headers": {
        "X-Memory-OS-Agent-ID": "gemini-cli",
        "X-Memory-OS-Agent-Instance-ID": "${XMEMO_AGENT_INSTANCE_ID}"
      }
    }
  }
}
```
