Skip to main content
Glama
README.md
# Gemini MCP Server

Google Gemini APIを使い、テキスト生成・画像生成(Imagen)ができる汎用MCPサーバーです。

生成した画像はローカルの絶対パスとして返します(画像データそのものはツール呼び出しの結果に含めません)。
保存したファイルは [`ftp-mcp`](../ftp-mcp) の `ftp_upload_file` に渡して公開URL化し、
`wp-mcp` の `wp_upload_media_from_url` でWordPressのメディアライブラリに登録する、という2段階のフローの前段として使う想定です。
テキスト生成の結果はそのままツール呼び出しの結果として返します。

---

## 1. セットアップ

```bash
cd gemini-mcp
npm install
```

`config.json.example` を `config.json` にコピーし、Google AI Studio ( https://aistudio.google.com/apikey )
で発行したAPIキーを書きます(**このファイルにはAPIキーが入るので、絶対に公開・共有・Gitコミットしないでください**。
`.gitignore` に含めています)。

```bash
cp config.json.example config.json
```

```json
{
  "api_key": "AIza................................",
  "default_text_model": "gemini-2.5-flash",
  "default_image_model": "imagen-4.0-generate-001"
}
```

- `api_key`: Google AI Studio で発行したAPIキー。
- `default_text_model`: `generate_text` の `model` パラメータを省略したときに使うモデルID。
- `default_image_model`: `generate_image` の `model` パラメータを省略したときに使うモデルID。

モデルのラインナップはGoogleの公式ドキュメントで随時更新されるため、最新のモデルIDは
https://ai.google.dev/gemini-api/docs/models (テキスト) / https://ai.google.dev/gemini-api/docs/imagen (画像)
で確認してください。

APIキーが未設定(プレースホルダーのまま)でもサーバー自体は起動できます。実際に
`generate_text` / `generate_image` を呼んだ時点でGoogle側の認証エラーになります。

## 2. Claude Codeへの登録

Claude Codeを使っているプロジェクトのルートフォルダ内で `.mcp.json` にMCPサーバーの情報を追加します。

```json
{
  "mcpServers": {
    "gemini": {
      "command": "node",
      "args": ["/MCPの保存パス/gemini-mcp/index.js"],
      "env": {
        "GEMINI_MCP_CONFIG_PATH": "/MCPの保存パス/gemini-mcp/config.json"
      }
    }
  }
}
```

登録後はClaude Codeのセッションを再起動してMCPサーバーを読み込み直してください。

## 3. 提供ツール

- `gemini_check_config` — APIキーが設定済みかどうか・デフォルトモデル名を確認する(APIは叩かない)。
- `generate_text` — プロンプトに対するテキストを生成し、そのまま返す。
  - `prompt`(必須): 入力プロンプト。
  - `system_instruction`(省略可): モデル全体の振る舞いを指定するシステム指示。
  - `temperature`(省略可・0〜2): 出力のランダム性。
  - `model`(省略可): `default_text_model` を上書きするモデルID。
  - 戻り値: 生成モデル名・生成テキスト。
- `generate_image` — テキストプロンプトから画像を生成し、指定したローカルフォルダにPNG/JPEGとして保存する。
  - `prompt`(必須): 生成したい画像の説明。
  - `output_dir`(必須): 保存先ディレクトリの絶対パス(存在しなければ自動作成)。
  - `file_prefix`(省略可・既定 `image`): 保存ファイル名のプレフィックス。
  - `number_of_images`(省略可・既定 1・最大4): 生成枚数。
  - `aspect_ratio`(省略可・既定 `1:1`): `1:1` / `3:4` / `4:3` / `9:16` / `16:9`。
  - `negative_prompt`(省略可): 含めたくない要素。
  - `model`(省略可): `default_image_model` を上書きするモデルID。
  - 戻り値: 生成モデル名・プロンプト・保存した各ファイルの絶対パス/MIMEタイプなど。

## 補足

- 依存ライブラリは Google公式の [`@google/genai`](https://www.npmjs.com/package/@google/genai) SDKを使用。
- 安全フィルタでブロックされた場合や、レスポンスにコンテンツが含まれない場合はエラーとして返します。
- 画像生成の用途(記事のアイキャッチ・本文挿入画像など)や記事本文への反映手順は
  `docs/tasks/eyecatch-image.md` / `docs/tasks/image-embed.md`(各プロジェクト側)を参照してください。