Gemini MCP Server
by nao9net
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`(各プロジェクト側)を参照してください。
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues