@tasopen/mcp-alphabanana 1.2.1 → 1.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.ja.md +85 -186
- package/README.md +73 -176
- package/dist/index.js +98 -32
- package/dist/index.js.map +1 -1
- package/dist/utils/aspect-ratio.d.ts +4 -0
- package/dist/utils/aspect-ratio.d.ts.map +1 -1
- package/dist/utils/aspect-ratio.js +5 -0
- package/dist/utils/aspect-ratio.js.map +1 -1
- package/dist/utils/gemini-client.d.ts +41 -6
- package/dist/utils/gemini-client.d.ts.map +1 -1
- package/dist/utils/gemini-client.js +297 -43
- package/dist/utils/gemini-client.js.map +1 -1
- package/dist/utils/post-processor.d.ts +1 -1
- package/dist/utils/post-processor.d.ts.map +1 -1
- package/dist/utils/post-processor.js +19 -9
- package/dist/utils/post-processor.js.map +1 -1
- package/package.json +2 -2
package/README.ja.md
CHANGED
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
# mcp-alphabanana
|
|
2
2
|
|
|
3
|
-
English
|
|
3
|
+
[English](README.md) | 日本語
|
|
4
4
|
|
|
5
|
-
Google Gemini AI
|
|
5
|
+
Google Gemini AI(Gemini 3.1 Flash / Nano Banana 2 対応)で画像アセットを生成する Model Context Protocol (MCP) サーバーです。
|
|
6
6
|
|
|
7
|
-
[FastMCP 3](https://www.npmjs.com/package/fastmcp)
|
|
7
|
+
[FastMCP 3](https://www.npmjs.com/package/fastmcp) で構築されており、シンプルなコードベースと柔軟な出力オプションを提供します。
|
|
8
8
|
|
|
9
|
-
##
|
|
9
|
+
## 主な機能
|
|
10
10
|
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
11
|
+
- **超高速画像生成**(Gemini 3.1 Flash、0.5K/1K/2K/4K)
|
|
12
|
+
- **高度なマルチ画像推論**(参照画像を最大 14 枚)
|
|
13
|
+
- **Thinking / Grounding 対応**(Flash3.1 のみ)
|
|
14
|
+
- **透過 PNG / WebP 出力**(カラーキー後処理 + デスピル)
|
|
15
|
+
- **複数の出力形式**: file / base64 / combine
|
|
16
|
+
- **柔軟なリサイズモード**: crop / stretch / letterbox / contain
|
|
17
|
+
- **複数モデルティア**: Flash3.1 / Flash2.5 / Pro3 / 互換エイリアス
|
|
17
18
|
|
|
18
19
|
## インストール
|
|
19
20
|
|
|
@@ -21,11 +22,11 @@ Google Gemini AI を使って画像アセットを生成する Model Context Pro
|
|
|
21
22
|
|
|
22
23
|
## 設定
|
|
23
24
|
|
|
24
|
-
`GEMINI_API_KEY` を MCP 設定(例: `mcp.json
|
|
25
|
+
`GEMINI_API_KEY` を MCP 設定(例: `mcp.json`)で指定します。
|
|
25
26
|
|
|
26
27
|
例:
|
|
27
28
|
|
|
28
|
-
- `mcp.json` で OS
|
|
29
|
+
- `mcp.json` で OS 環境変数を参照する場合
|
|
29
30
|
|
|
30
31
|
```json
|
|
31
32
|
{
|
|
@@ -35,7 +36,7 @@ Google Gemini AI を使って画像アセットを生成する Model Context Pro
|
|
|
35
36
|
}
|
|
36
37
|
```
|
|
37
38
|
|
|
38
|
-
- `mcp.json`
|
|
39
|
+
- `mcp.json` に直接キーを記載する場合
|
|
39
40
|
|
|
40
41
|
```json
|
|
41
42
|
{
|
|
@@ -45,11 +46,9 @@ Google Gemini AI を使って画像アセットを生成する Model Context Pro
|
|
|
45
46
|
}
|
|
46
47
|
```
|
|
47
48
|
|
|
48
|
-
|
|
49
|
+
## VS Code 連携
|
|
49
50
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
VS Code 設定(`.vscode/settings.json` またはユーザー設定)に追加し、サーバー `env` を `mcp.json` または VS Code MCP 設定で設定します。OS 環境変数参照または直接キー記載の両方に対応:
|
|
51
|
+
VS Code 設定(`.vscode/settings.json` またはユーザー設定)に追加してください。`env` は `mcp.json` もしくは VS Code MCP 設定経由で指定できます。
|
|
53
52
|
|
|
54
53
|
```json
|
|
55
54
|
{
|
|
@@ -57,9 +56,9 @@ VS Code 設定(`.vscode/settings.json` またはユーザー設定)に追加
|
|
|
57
56
|
"servers": {
|
|
58
57
|
"mcp-alphabanana": {
|
|
59
58
|
"command": "npx",
|
|
60
|
-
"args":["-y", "@tasopen/mcp-alphabanana"],
|
|
59
|
+
"args": ["-y", "@tasopen/mcp-alphabanana"],
|
|
61
60
|
"env": {
|
|
62
|
-
"GEMINI_API_KEY": "${env:GEMINI_API_KEY}"
|
|
61
|
+
"GEMINI_API_KEY": "${env:GEMINI_API_KEY}"
|
|
63
62
|
}
|
|
64
63
|
}
|
|
65
64
|
}
|
|
@@ -67,115 +66,43 @@ VS Code 設定(`.vscode/settings.json` またはユーザー設定)に追加
|
|
|
67
66
|
}
|
|
68
67
|
```
|
|
69
68
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
## Antigravity (mcp_config.json)
|
|
73
|
-
|
|
74
|
-
Antigravity ではグローバルな `mcp_config.json` で MCP サーバーを登録します。例:
|
|
75
|
-
|
|
76
|
-
```json
|
|
77
|
-
{
|
|
78
|
-
"mcpServers": {
|
|
79
|
-
"mcp-alphabanana": {
|
|
80
|
-
"command": "npx",
|
|
81
|
-
"args": ["-y", "@tasopen/mcp-alphabanana"],
|
|
82
|
-
"env": {
|
|
83
|
-
"GEMINI_API_KEY": "your_api_key_here"
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
注: このリポジトリでは `mcp_config.json` に `mcp-alphabanana` エントリ(Antigravity)を追加し、サーバー起動と画像生成の動作を確認しています。
|
|
91
|
-
|
|
92
|
-
## Claude Desktop
|
|
93
|
-
|
|
94
|
-
Claude Desktop で MCP サーバーを動かす場合は `claude_desktop_config.json` にエントリを追加:
|
|
95
|
-
|
|
96
|
-
```json
|
|
97
|
-
{
|
|
98
|
-
"mcpServers": {
|
|
99
|
-
"mcp-alphabanana": {
|
|
100
|
-
"command": "npx",
|
|
101
|
-
"args": ["-y", "@tasopen/mcp-alphabanana"],
|
|
102
|
-
"env": {
|
|
103
|
-
"GEMINI_API_KEY": "your_api_key_here"
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
テスト済み: 上記エントリを Claude Desktop に追加しサーバーを起動すると、MCP サーバーが起動し画像生成が動作しました。
|
|
111
|
-
|
|
112
|
-
### 環境変数
|
|
69
|
+
**任意:** 書き込み失敗時の保存先を変更したい場合は、`env` に `MCP_FALLBACK_OUTPUT` を追加してください。
|
|
113
70
|
|
|
114
|
-
|
|
115
|
-
|----------|----------|-------------|
|
|
116
|
-
| `GEMINI_API_KEY` | Yes | Google AI Studio APIキー。`mcp.json` で OS 環境変数参照(`${env:GEMINI_API_KEY}`)または直接キー記載(エージェントが OS 環境変数にアクセス不可な場合) |
|
|
117
|
-
| `MCP_FALLBACK_OUTPUT` | No | 書き込み失敗時のフォールバックディレクトリ(デフォルト: `<install-dir>/fallback-output`) |
|
|
71
|
+
## モデル選択とパラメータ
|
|
118
72
|
|
|
119
|
-
|
|
73
|
+
| 入力モデルID | 内部モデルID | 説明 |
|
|
74
|
+
| --- | --- | --- |
|
|
75
|
+
| `Flash3.1` | `gemini-3.1-flash-image-preview` | 超高速。Thinking / Grounding 対応。 |
|
|
76
|
+
| `Flash2.5` | `gemini-2.5-flash-image` | 旧 Flash 系。安定性高め。低コスト。 |
|
|
77
|
+
| `Pro3` | `gemini-3.0-pro-image-preview` | 高品質な Pro モデル。 |
|
|
78
|
+
| `flash` | `gemini-3.1-flash-image-preview` | 後方互換エイリアス。 |
|
|
79
|
+
| `pro` | `gemini-3.0-pro-image-preview` | 後方互換エイリアス。 |
|
|
120
80
|
|
|
121
|
-
|
|
81
|
+
### パラメータ(v2.0)
|
|
122
82
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
```bash
|
|
136
|
-
# 開発モード(MCP CLI)
|
|
137
|
-
npm run dev
|
|
138
|
-
|
|
139
|
-
# MCP Inspector (Web UI)
|
|
140
|
-
npm run inspect
|
|
141
|
-
|
|
142
|
-
# 本番用ビルド
|
|
143
|
-
npm run build
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
## ツール: generate_image
|
|
83
|
+
| パラメータ | 型 | 既定値 | 説明 |
|
|
84
|
+
|-----------|------|---------|-------------|
|
|
85
|
+
| `prompt` | string | 必須 | 生成したい画像の説明 |
|
|
86
|
+
| `model` | enum | `Flash3.1` | `Flash3.1` / `Flash2.5` / `Pro3` / `flash` / `pro` |
|
|
87
|
+
| `output_resolution` | enum | `1K` | `0.5K` / `1K` / `2K` / `4K`(0.5K/2K/4K は Flash3.1 のみ) |
|
|
88
|
+
| `output_format` | enum | `png` | `png` / `jpg` / `webp`(WebP はアルファ対応) |
|
|
89
|
+
| `transparent` | boolean | `false` | 背景透過(PNG / WebP のみ) |
|
|
90
|
+
| `grounding_type` | enum | `none` | `none` / `text` / `image` / `both`(Flash3.1 のみ) |
|
|
91
|
+
| `thinking_mode` | enum | `minimal` | `minimal` / `high`(Flash3.1 のみ) |
|
|
92
|
+
| `include_thoughts` | boolean | `false` | モデルの思考データを返却(Flash3.1 のみ) |
|
|
93
|
+
| `include_metadata` | boolean | `false` | JSON 出力に grounding / reasoning メタデータを含める |
|
|
94
|
+
| `reference_images` | array | `[]` | 最大 14 枚(Flash3.1/Pro3)、Flash2.5 は 3 枚 |
|
|
147
95
|
|
|
148
|
-
|
|
96
|
+
---
|
|
149
97
|
|
|
150
|
-
|
|
98
|
+
## 使用例
|
|
151
99
|
|
|
152
|
-
|
|
153
|
-
|-----------|------|---------|-------------|
|
|
154
|
-
| `prompt` | string | *必須* | 生成する画像の説明 |
|
|
155
|
-
| `outputFileName` | string | *必須* | 出力ファイル名(拡張子がない場合は自動追加) |
|
|
156
|
-
| `outputType` | enum | `combine` | 出力形式: `file`、`base64`、または`combine` |
|
|
157
|
-
| `modelTier` | enum | *必須* | モデル: `flash` (Gemini 2.5 Flash, 最大3参照) または `pro` (Gemini 3 Pro, 最大14参照) |
|
|
158
|
-
| `sourceResolution` | enum | `1K` | Gemini生成解像度: `1K`、`2K`、または`4K` (2K/4Kはproのみ) |
|
|
159
|
-
| `outputWidth` | number | `1024` | 出力幅(ピクセル、8-4096) |
|
|
160
|
-
| `outputHeight` | number | `1024` | 出力高さ(ピクセル、8-4096) |
|
|
161
|
-
| `outputFormat` | enum | `png` | 出力形式: `png`または`jpg` |
|
|
162
|
-
| `outputPath` | string | *任意* | 絶対パスの出力ディレクトリ(ファイル保存時は必須) |
|
|
163
|
-
| `transparent` | boolean | `false` | 透過背景をリクエスト(PNGのみ) |
|
|
164
|
-
| `transparentColor` | string | `null` | 透過にする色(例: `#FF00FF`、未指定時は #FF00FF) |
|
|
165
|
-
| `colorTolerance` | number | `30` | 透過色マッチングの許容範囲(0-255) |
|
|
166
|
-
| `fringeMode` | enum | `auto` | フリンジ処理: `auto`、`crisp`、`hd`(autoは128px以下で`crisp`、それ以外は`hd`) |
|
|
167
|
-
| `resizeMode` | enum | `crop` | リサイズモード: `crop`、`stretch`、`letterbox`、または`contain` |
|
|
168
|
-
| `referenceImages` | array | `[]` | スタイルガイダンス用の参照画像(ファイルパス) |
|
|
169
|
-
| `debug` | boolean | `false` | デバッグモード: 中間画像を出力 |
|
|
170
|
-
|
|
171
|
-
### 使用例
|
|
172
|
-
|
|
173
|
-
#### 基本的な生成
|
|
100
|
+
#### 基本生成
|
|
174
101
|
|
|
175
102
|
```json
|
|
176
103
|
{
|
|
177
|
-
"prompt": "
|
|
178
|
-
"
|
|
104
|
+
"prompt": "金の縁取りがある木製のピクセルアート宝箱",
|
|
105
|
+
"model": "Flash3.1",
|
|
179
106
|
"outputFileName": "chest",
|
|
180
107
|
"outputWidth": 64,
|
|
181
108
|
"outputHeight": 64,
|
|
@@ -183,110 +110,82 @@ Gemini AI で画像アセットを生成(オプションで透過・参照画
|
|
|
183
110
|
}
|
|
184
111
|
```
|
|
185
112
|
|
|
186
|
-
####
|
|
113
|
+
#### 応用例(WebP + Thinking + Grounding)
|
|
187
114
|
|
|
188
115
|
```json
|
|
189
116
|
{
|
|
190
|
-
"prompt": "
|
|
191
|
-
"
|
|
192
|
-
"outputFileName": "
|
|
193
|
-
"outputWidth":
|
|
194
|
-
"outputHeight":
|
|
195
|
-
"
|
|
117
|
+
"prompt": "ヨーロッパの田園風景の上を飛ぶ翼のある少女、フォトリアル",
|
|
118
|
+
"model": "Flash3.1",
|
|
119
|
+
"outputFileName": "girl_wings",
|
|
120
|
+
"outputWidth": 632,
|
|
121
|
+
"outputHeight": 424,
|
|
122
|
+
"output_format": "webp",
|
|
123
|
+
"thinking_mode": "high",
|
|
124
|
+
"grounding_type": "both",
|
|
125
|
+
"include_thoughts": true
|
|
196
126
|
}
|
|
197
127
|
```
|
|
198
128
|
|
|
199
|
-
####
|
|
129
|
+
#### Grounding サンプル(検索連携)
|
|
200
130
|
|
|
201
131
|
```json
|
|
202
132
|
{
|
|
203
|
-
"prompt": "
|
|
204
|
-
"
|
|
205
|
-
"outputFileName": "
|
|
133
|
+
"prompt": "クアラルンプールの今日の天気と主要スカイラインを盛り込んだモダンな旅行ポスター",
|
|
134
|
+
"model": "Flash3.1",
|
|
135
|
+
"outputFileName": "kl_travel_poster",
|
|
206
136
|
"outputWidth": 1024,
|
|
207
|
-
"outputHeight":
|
|
208
|
-
"
|
|
209
|
-
"
|
|
210
|
-
"
|
|
137
|
+
"outputHeight": 1024,
|
|
138
|
+
"grounding_type": "text",
|
|
139
|
+
"thinking_mode": "high",
|
|
140
|
+
"include_metadata": true,
|
|
141
|
+
"include_thoughts": true
|
|
211
142
|
}
|
|
212
143
|
```
|
|
213
144
|
|
|
214
|
-
|
|
145
|
+
このサンプルでは Google Search Grounding を有効化し、JSON に grounding / reasoning メタデータを返します。
|
|
215
146
|
|
|
216
|
-
|
|
217
|
-
{
|
|
218
|
-
"prompt": "夕暮れのファンタジーの森、光る茸",
|
|
219
|
-
"outputFileName": "forest_bg",
|
|
220
|
-
"modelTier": "pro",
|
|
221
|
-
"sourceResolution": "4K",
|
|
222
|
-
"outputWidth": 3840,
|
|
223
|
-
"outputHeight": 2160,
|
|
224
|
-
"outputFormat": "jpg",
|
|
225
|
-
"outputPath": "C:/Users/you/project/assets/backgrounds"
|
|
226
|
-
}
|
|
227
|
-
```
|
|
228
|
-
|
|
229
|
-
#### 参照画像を使用
|
|
147
|
+
#### 参照画像つき生成
|
|
230
148
|
|
|
231
149
|
```json
|
|
232
150
|
{
|
|
233
|
-
"prompt": "
|
|
234
|
-
"
|
|
151
|
+
"prompt": "参照画像と同じピクセルアート調で、開いた状態の宝箱",
|
|
152
|
+
"model": "Pro3",
|
|
235
153
|
"outputFileName": "chest_open",
|
|
236
154
|
"outputWidth": 64,
|
|
237
155
|
"outputHeight": 64,
|
|
238
156
|
"transparent": true,
|
|
239
|
-
"
|
|
157
|
+
"reference_images": [
|
|
240
158
|
{
|
|
241
|
-
"description": "
|
|
242
|
-
"
|
|
159
|
+
"description": "Closed chest for style reference",
|
|
160
|
+
"data": "...base64..."
|
|
243
161
|
}
|
|
244
162
|
]
|
|
245
163
|
}
|
|
246
164
|
```
|
|
247
165
|
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
| タイプ | ファイル保存 | Base64返却 | MCP画像コンテンツ |
|
|
251
|
-
|------|-----------|----------------|-------------------|
|
|
252
|
-
| `file` | ✓ | ✗ | ✗ |
|
|
253
|
-
| `base64` | ✗ | ✓ | ✓ |
|
|
254
|
-
| `combine` | ✓ | ✓ | ✓ |
|
|
166
|
+
---
|
|
255
167
|
|
|
256
|
-
##
|
|
168
|
+
## 透過と出力形式
|
|
257
169
|
|
|
258
|
-
|
|
170
|
+
- **PNG**: 完全アルファ対応、カラーキー + デスピル
|
|
171
|
+
- **WebP**: 完全アルファ対応、より高い圧縮効率
|
|
172
|
+
- **JPEG**: 透過非対応(不透明背景にフォールバック)
|
|
259
173
|
|
|
260
|
-
|
|
174
|
+
---
|
|
261
175
|
|
|
262
|
-
|
|
263
|
-
- `colorTolerance` は 30 前後が最も安定しました。高すぎると誤検出が増えます。
|
|
264
|
-
|
|
265
|
-
### 推奨背景色
|
|
176
|
+
## 開発
|
|
266
177
|
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
| 緑 | `#00FF00` | 紫/ピンクのオブジェクト |
|
|
271
|
-
| シアン | `#00FFFF` | 赤/オレンジのオブジェクト |
|
|
272
|
-
| 青 | `#0000FF` | 黄/緑のオブジェクト |
|
|
178
|
+
```bash
|
|
179
|
+
# 開発モード(MCP CLI)
|
|
180
|
+
npm run dev
|
|
273
181
|
|
|
274
|
-
|
|
182
|
+
# MCP Inspector(Web UI)
|
|
183
|
+
npm run inspect
|
|
275
184
|
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
"transparent": true,
|
|
279
|
-
"transparentColor": "#00FF00",
|
|
280
|
-
"colorTolerance": 30
|
|
281
|
-
}
|
|
185
|
+
# 本番ビルド
|
|
186
|
+
npm run build
|
|
282
187
|
```
|
|
283
188
|
|
|
284
|
-
### Fringe Mode ガイド
|
|
285
|
-
|
|
286
|
-
- 細い線が消えやすい場合(ドット絵、スポーク、ワイヤーメッシュ等)は `crisp`
|
|
287
|
-
- 高解像度画像でフリンジが目立つ場合は `hd`
|
|
288
|
-
- `auto` はサイズで自動切替(128px 以下は `crisp`、それ以外は `hd`)
|
|
289
|
-
|
|
290
189
|
## ライセンス
|
|
291
190
|
|
|
292
191
|
MIT
|