meshgeniedocs

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-mcp

See 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.py

Smoke-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.py

Tools

The same nine tools on both transports — they come from one shared schema, so the local server and the hosted bridge cannot drift apart.

ToolWhat it does
init_projectDetect engine, write .meshgenie/project.json
list_style_profilesFrozen art-direction profiles
list_animation_clipsCC0 locomotion clips that can be baked in
create_conceptFree/cheap 2D concepts → job enters awaiting_approval
build_assetPaid 3D+rig+animate from an approved concept job
get_jobPoll status; stage-based progress
cancel_jobCancel a queued/running job
generate_assetFull pipeline; async by default (wait=true for DEMO sync)
add_character_to_gameIntent 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 it

At 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

TransportDisk write?
Local stdio MCP / npm bridgeYes — under safe project_root
Remote hosted MCPNo — returns an InstallPlan (URLs + paths); CLI pull or bridge installs

Environment

VariableDefaultMeaning
MESHGENIE_API_KEYRequired by the hosted bridge
MESHGENIE_API_BASEhttps://meshgenie.com/api/v1Point at a local next dev to test
MESHGENIE_PROJECT_ROOTcwdWhere installs are written
MESHGENIE_TIMEOUT1800Max seconds for a sync wait=true run (local pod MCP)

On this page