MCP
MeshGenie generation MCP — tools agents use to create game assets.
This is the product generation MCP: agents call tools to create concepts, build GLBs, and install them into a game project.
Not a docs-search MCP. Searching these docs is separate (optional later). This surface does the work.
Hosted bridge (what you want)
Talks to https://meshgenie.com/api/v1 with an alpha key. No pod, no GPU, no clone.
claude mcp add meshgenie --env MESHGENIE_API_KEY=mg_alpha_… -- npx -y -p @meshgenie/mcp meshgenie-mcpSee Quickstart for the key and the from-a-checkout form while
@meshgenie/mcp is pending publish.
Local dev (pod) MCP
Works today against a warm RunPod pod via scripts/run.sh:
claude mcp add meshgenie -- python3 /absolute/path/to/golem/mcp/meshgenie_mcp.pySmoke-test without an agent:
printf '%s\n' \
'{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}' \
'{"jsonrpc":"2.0","id":2,"method":"tools/list"}' \
| python3 mcp/meshgenie_mcp.pyTools
The same nine tools on both transports — they come from one shared schema, so the local server and the hosted bridge cannot drift apart.
| Tool | What it does |
|---|---|
init_project | Detect engine, write .meshgenie/project.json |
list_style_profiles | Frozen art-direction profiles |
list_animation_clips | CC0 locomotion clips that can be baked in |
create_concept | Free/cheap 2D concepts → job enters awaiting_approval |
build_asset | Paid 3D+rig+animate from an approved concept job |
get_job | Poll status; stage-based progress |
cancel_job | Cancel a queued/running job |
generate_asset | Full pipeline; async by default (wait=true for DEMO sync) |
add_character_to_game | Intent tool: multi-turn session (start → approve → install) |
Shared schema (Python + future npm bridge): mcp/tool_schema.json.
Async contract
Generation is minutes, not seconds. Product mode never blocks for 1800s.
create_concept → status: awaiting_approval
get_job → { job, concepts: [{ image_index, url }] } ← pick one
build_asset → status: running_3d → running_rig → ready
get_job → { job, install_plan: { files: [...] } } ← install itAt awaiting_approval the job returns a signed URL per concept image, and the
image_index in each entry is the one build_asset takes — so what you looked at and what
gets built cannot disagree. URLs expire in an hour; call get_job again for fresh ones.
get_job reports stage, stage_index and poll_after_ms and never a percentage.
Workers do not emit continuous progress, so anything claiming 47% invented it.
Style profile is frozen at concept. build_asset does not accept a new profile (same rule as Studio).
Local vs remote install
| Transport | Disk write? |
|---|---|
| Local stdio MCP / npm bridge | Yes — under safe project_root |
| Remote hosted MCP | No — returns an InstallPlan (URLs + paths); CLI pull or bridge installs |
Environment
| Variable | Default | Meaning |
|---|---|---|
MESHGENIE_API_KEY | — | Required by the hosted bridge |
MESHGENIE_API_BASE | https://meshgenie.com/api/v1 | Point at a local next dev to test |
MESHGENIE_PROJECT_ROOT | cwd | Where installs are written |
MESHGENIE_TIMEOUT | 1800 | Max seconds for a sync wait=true run (local pod MCP) |