Skip to content

Commit e30e3c6

Browse files
authored
Merge pull request #125 from mfukushim/20250911
20250911
2 parents c5cc350 + 11c39e4 commit e30e3c6

File tree

7 files changed

+326
-16
lines changed

7 files changed

+326
-16
lines changed

.github/workflows/release-package.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,3 +40,18 @@ jobs:
4040
- run: pnpm publish --provenance --access public --no-git-checks
4141
env:
4242
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
43+
- name: Install MCP Publisher
44+
run: |
45+
# Build publisher from source (requires Go)
46+
git clone https://github.com/modelcontextprotocol/registry publisher-repo
47+
cd publisher-repo
48+
make publisher
49+
cp cmd/publisher/bin/mcp-publisher ../mcp-publisher
50+
cd ..
51+
chmod +x mcp-publisher
52+
53+
- name: Login to MCP Registry
54+
run: ./mcp-publisher login github-oidc
55+
56+
- name: Publish to MCP Registry
57+
run: ./mcp-publisher publish

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,12 @@ From an MCP client such as Claude Desktop, you can give instructions to the avat
1111

1212
<img alt="img_5.png" src="https://raw.githubusercontent.com/mfukushim/map-traveler-mcp/for_image/tools/img_5.png" width="400"/>
1313

14+
> Preparing for MCP Registry Support https://blog.modelcontextprotocol.io/posts/2025-09-08-mcp-registry-preview/
15+
1416
> Added gemini-2.5-flash-image-preview (nano-banana) to travel image generation
1517
1618
Support for nano-banana has been added. Nano-banana's semantic mask allows you to generate composite travel images in a short time without setting remBg.
19+
Although conventional image synthesis is still possible, we recommend using Gemini nano-banana.
1720

1821
> Supports both Streamable-HTTP and stdio (compliant with Smithery.ai's config interface)
1922

README_jp.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,12 @@ Claude DesktopなどのMCP clientから、アバターに指示をして、移
1212

1313
<img alt="img.png" src="https://raw.githubusercontent.com/mfukushim/map-traveler-mcp/for_image/tools/img.png" width="400"/>
1414

15+
> MCP Registry に対応中 https://blog.modelcontextprotocol.io/posts/2025-09-08-mcp-registry-preview/
16+
1517
> 旅画像生成にgemini-2.5-flash-image-preview (nano-banana) を追加しました
1618
17-
nano-bananaに対応しました。nano-bananaのセマンティック マスクによりremBgの設定なしに短時間で旅の合成画像が生成できるようになりました。
19+
nano-bananaに対応しました。nano-bananaのセマンティック マスクによりremBgの設定なしに短時間で旅の合成画像が生成できるようになりました。
20+
従来の画像合成もそのまま可能ですが、Gemini nano-bananaの利用を推奨します。
1821

1922
> Streamable-HTTP/stdio 両対応しました(Smithery.ai仕様のconfigインタフェースに準拠)
2023

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
{
22
"name": "@mfukushim/map-traveler-mcp",
3-
"version": "0.1.3",
3+
"version": "0.1.4",
44
"type": "module",
5+
"mcpName": "io.github.mfukushim/map-traveler-mcp",
56
"bin": {
67
"map-traveler-mcp": "build/esm/mapTraveler.js"
78
},

server.json

Lines changed: 276 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,276 @@
1+
{
2+
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-07-09/server.schema.json",
3+
"name": "io.github.mfukushim/map-traveler-mcp",
4+
"description": "Virtual traveler library for MCP",
5+
"status": "active",
6+
"repository": {
7+
"url": "https://github.com/mfukushim/map-traveler-mcp",
8+
"source": "github"
9+
},
10+
"version": "0.1.4",
11+
"packages": [
12+
{
13+
"registry_type": "npm",
14+
"registry_base_url": "https://registry.npmjs.org",
15+
"identifier": "@mfukushim/map-traveler-mcp",
16+
"version": "0.1.4",
17+
"transport": {
18+
"type": "stdio"
19+
},
20+
"environment_variables": [
21+
{
22+
"description": "[Map] Google Map API key",
23+
"is_required": false,
24+
"format": "string",
25+
"is_secret": true,
26+
"name": "MT_GOOGLE_MAP_KEY"
27+
},
28+
{
29+
"description": "[Image.gemini] Gemini Image Api key",
30+
"is_required": false,
31+
"format": "string",
32+
"is_secret": true,
33+
"name": "MT_GEMINI_IMAGE_KEY"
34+
},
35+
{
36+
"description": "[Image.gemini] Number of retries when generating Gemini images Default: 0",
37+
"is_required": false,
38+
"format": "string",
39+
"is_secret": false,
40+
"name": "MT_MAX_RETRY_GEMINI"
41+
},
42+
{
43+
"description": "[Image.gemini] Character reference image uri (file:// or https://) when generating Gemini image. Multiple settings can be made by separating them with the '|'. When multiple settings are made, they will be selected randomly.",
44+
"is_required": false,
45+
"format": "string",
46+
"is_secret": false,
47+
"name": "MT_AVATAR_IMAGE_URI"
48+
},
49+
{
50+
"description": "[Map.etc] Optional: Map API custom endpoint. Example: direction=https://xxxx,places=https://yyyy ",
51+
"is_required": false,
52+
"format": "string",
53+
"is_secret": false,
54+
"name": "MT_MAP_API_URL"
55+
},
56+
{
57+
"description": "[Map] Optional:Scale of travel time on real roads duration. default 4",
58+
"is_required": false,
59+
"format": "string",
60+
"is_secret": false,
61+
"name": "MT_TIME_SCALE"
62+
},
63+
{
64+
"description": "[db.local] db save path: e.g. %USERPROFILE%/Desktop/traveler.sqlite ,$HOME/traveler.sqlite ",
65+
"is_required": false,
66+
"format": "string",
67+
"is_secret": false,
68+
"name": "MT_SQLITE_PATH"
69+
},
70+
{
71+
"description": "[db.api] Turso sqlite API URL",
72+
"is_required": false,
73+
"format": "string",
74+
"is_secret": false,
75+
"name": "MT_TURSO_URL"
76+
},
77+
{
78+
"description": "[db.api] Turso sqlite API access token",
79+
"is_required": false,
80+
"format": "string",
81+
"is_secret": true,
82+
"name": "MT_TURSO_TOKEN"
83+
},
84+
{
85+
"description": "[rembg.local] absolute path of the installed rembg cli",
86+
"is_required": false,
87+
"format": "string",
88+
"is_secret": false,
89+
"name": "MT_REMBG_PATH"
90+
},
91+
{
92+
"description": "[rembg.api] withoutbg.com rembg API URL",
93+
"is_required": false,
94+
"format": "string",
95+
"is_secret": false,
96+
"name": "MT_REMBG_URL"
97+
},
98+
{
99+
"description": "[rembg.api] withoutbg.com rembg API key",
100+
"is_required": false,
101+
"format": "string",
102+
"is_secret": true,
103+
"name": "MT_REMBG_WO_KEY"
104+
},
105+
{
106+
"description": "[Image.pixAi] pixAi API key",
107+
"is_required": false,
108+
"format": "string",
109+
"is_secret": true,
110+
"name": "MT_PIXAI_KEY"
111+
},
112+
{
113+
"description": "[Image.sd] Stability.ai image generation API key",
114+
"is_required": false,
115+
"format": "string",
116+
"is_secret": true,
117+
"name": "MT_SD_KEY"
118+
},
119+
{
120+
"description": "[Image.pixAi] Optional: pixAi ModelId, if not set use default model 1648918127446573124 ",
121+
"is_required": false,
122+
"format": "string",
123+
"is_secret": false,
124+
"name": "MT_PIXAI_MODEL_ID"
125+
},
126+
{
127+
"description": "[Image.local.ComfyUi] Option: Generate image using ComfyUI API at specified URL. Example: http://192.168.1.100:8188",
128+
"is_required": false,
129+
"format": "string",
130+
"is_secret": false,
131+
"name": "MT_COMFY_URL"
132+
},
133+
{
134+
"description": "[Image.local.ComfyUi] Optional: Path to API workflow file when using text to image with ComfyUI. If not specified: assets/comfy/t2i_sample.json",
135+
"is_required": false,
136+
"format": "string",
137+
"is_secret": false,
138+
"name": "MT_COMFY_WORKFLOW_T2I"
139+
},
140+
{
141+
"description": "[Image.local.ComfyUi] Optional: Path of API workflow file when image to image in ComfyUI. If not specified: assets/comfy/i2i_sample.json",
142+
"is_required": false,
143+
"format": "string",
144+
"is_secret": false,
145+
"name": "MT_COMFY_WORKFLOW_I2I"
146+
},
147+
{
148+
"description": "[Image.local.ComfyUi] Optional: Variable values to send to the workflow via comfyUI API",
149+
"is_required": false,
150+
"format": "string",
151+
"is_secret": false,
152+
"name": "MT_COMFY_PARAMS"
153+
},
154+
{
155+
"description": "[Image] Optional: Fixed avatar generation prompt. You will no longer be able to change your avatar during conversations.",
156+
"is_required": false,
157+
"format": "string",
158+
"is_secret": false,
159+
"name": "MT_FIXED_MODEL_PROMPT"
160+
},
161+
{
162+
"description": "[Image] Optional: Acceptable avatar image area ratio. default 0.042",
163+
"is_required": false,
164+
"format": "string",
165+
"is_secret": false,
166+
"name": "MT_BODY_AREA_RATIO"
167+
},
168+
{
169+
"description": "[Image] Optional: Acceptable avatar image aspect ratios. default 1.5~2.3",
170+
"is_required": false,
171+
"format": "string",
172+
"is_secret": false,
173+
"name": "MT_BODY_HW_RATIO"
174+
},
175+
{
176+
"description": "[Image] Optional: Avatar composite window horizontal ratio. default 0.5",
177+
"is_required": false,
178+
"format": "string",
179+
"is_secret": false,
180+
"name": "MT_BODY_WINDOW_RATIO_W"
181+
},
182+
{
183+
"description": "[Image] Optional: Avatar composite window aspect ratio. default 0.75",
184+
"is_required": false,
185+
"format": "string",
186+
"is_secret": false,
187+
"name": "MT_BODY_WINDOW_RATIO_H"
188+
},
189+
{
190+
"description": "[Sns.Bs] Bluesky sns registration address",
191+
"is_required": false,
192+
"format": "string",
193+
"is_secret": false,
194+
"name": "MT_BS_ID"
195+
},
196+
{
197+
"description": "[Sns.Bs] bluesky sns password",
198+
"is_required": false,
199+
"format": "string",
200+
"is_secret": true,
201+
"name": "MT_BS_PASS"
202+
},
203+
{
204+
"description": "[Sns.Bs] bluesky sns handle name: e.g. xxxxxxxx.bsky.social ",
205+
"is_required": false,
206+
"format": "string",
207+
"is_secret": false,
208+
"name": "MT_BS_HANDLE"
209+
},
210+
{
211+
"description": "[etc] Optional: Directly filter the tools to be used. All are available if not specified. e.g. tips,set_traveler_location",
212+
"is_required": false,
213+
"format": "string",
214+
"is_secret": false,
215+
"name": "MT_FILTER_TOOLS"
216+
},
217+
{
218+
"description": "[etc] Option: Specify whether the movement mode is 'realtime' or 'skip'. default realtime",
219+
"is_required": false,
220+
"format": "string",
221+
"is_secret": false,
222+
"name": "MT_MOVE_MODE"
223+
},
224+
{
225+
"description": "[Image] Option: Output image width (pixels) Default is 512",
226+
"is_required": false,
227+
"format": "string",
228+
"is_secret": false,
229+
"name": "MT_IMAGE_WIDTH"
230+
},
231+
{
232+
"description": "[Image] Options: 'true' = do not output image, not specified = output image if possible, default is not specified",
233+
"is_required": false,
234+
"format": "string",
235+
"is_secret": false,
236+
"name": "MT_NO_IMAGE"
237+
},
238+
{
239+
"description": "[Image] Option: 'true' = Output StreetView image as is without avatar superimposition. Not specified = Superimpose avatar image. Default is not specified.",
240+
"is_required": false,
241+
"format": "string",
242+
"is_secret": false,
243+
"name": "MT_NO_AVATAR"
244+
},
245+
{
246+
"description": "[Sns] Optional: Specify the feed tag when posting to SNS (#required, 15 characters or more) Default is #geo_less_traveler",
247+
"is_required": false,
248+
"format": "string",
249+
"is_secret": false,
250+
"name": "MT_FEED_TAG"
251+
},
252+
{
253+
"description": "[Streamable-http] Maximum number of sessions when using Streamable-http",
254+
"is_required": false,
255+
"format": "string",
256+
"is_secret": false,
257+
"name": "MT_MAX_SESSIONS"
258+
},
259+
{
260+
"description": "[Streamable-http] Session TTL when using Streamable-http",
261+
"is_required": false,
262+
"format": "string",
263+
"is_secret": false,
264+
"name": "MT_SESSION_TTL_MS"
265+
},
266+
{
267+
"description": "[Streamable-http] Service TTL when using Streamable-http",
268+
"is_required": false,
269+
"format": "string",
270+
"is_secret": false,
271+
"name": "MT_SERVICE_TTL_MS"
272+
}
273+
]
274+
}
275+
]
276+
}

smithery.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ startCommand:
2020
description: Gemini Image retry count
2121
MT_AVATAR_IMAGE_URI:
2222
type: string
23-
description: Character reference image uri
23+
description: Character reference image uri. Multiple settings can be made by separating them with the '|'
2424
MT_TURSO_URL:
2525
type: string
2626
description: Turso sqlite API URL

0 commit comments

Comments
 (0)