Skip to main content
Glama

trident-mcp

Go License

An unofficial MCP server for the Tripo 3D API that covers every documented, deployed v3 workflow. A few endpoints are deliberately left out; they are listed in docs/MCP_TOOLS.md. Agents can:

  • generate meshes from text, one image or several views;

  • make reference images and multiview sets;

  • texture, retopologize, UV-unwrap, segment, rig, animate and convert meshes;

  • produce Gaussian splats.

The outputs land as files on disk. It ships as one Go binary over stdio, plus a Claude Code plugin with a workflow skill.

Potion bottle generated with the Tripo v3 multiview pipeline

Quick start

Claude Code. Put the binary on your PATH, then install the plugin:

go install github.com/mordor-forge/trident-mcp/cmd/trident-mcp@latest   # or grab a release archive
/plugin marketplace add mordor-forge/claude-plugins
/plugin install trident@mordor-forge

The plugin asks for your Tripo key and output folder, and adds the tripo-3d skill. Then ask for what you want, e.g. "make a game-ready low-poly treasure chest and export it as FBX".

Any MCP client:

{
  "mcpServers": {
    "trident": {
      "command": "trident-mcp",
      "env": { "TRIPO_API_KEY": "tsk_...", "MODEL_OUTPUT_DIR": "/abs/path/generated_models" }
    }
  }
}

Related MCP server: gemini-media-mcp

How it works

  1. A task-creating tool (text_to_model, rig_model, convert_model, …) validates its arguments locally, uploads any local files, and returns a task_id.

  2. wait_for_task waits with progress notifications, then saves the outputs to <output dir>/<task_id>/. For example: model.glb, rendered_image.webp, generated_image.png, front_view.png.

  3. Pass a task_id as the next tool's input to chain steps: image → mesh → rig → animation → FBX.

Arguments use Tripo's own field names, so Tripo's docs apply to them directly. A few convenience fields differ from Tripo's wire format, such as multiview inputs given as a {front, left, back, right} map. See docs/MCP_TOOLS.md for all 28 tools.

Configuration

Variable

Default

TRIPO_API_KEY

required

From https://platform.tripo3d.ai

MODEL_OUTPUT_DIR

~/generated_models

Created if missing

TRIPO_BASE_URL

https://openapi.tripo3d.ai/v3

China-region keys: https://openapi.tripo3d.com/v3

Documentation

Need

Read

Every tool, argument and behaviour

docs/MCP_TOOLS.md

Architecture and the internal/tripo module

ARCHITECTURE.md, docs/design/tripo-module.md

Domain vocabulary

GLOSSARY.md

Contributing, change recipes

AGENTS.md, docs/DEVELOPMENT.md, docs/patterns/common-changes.md

Running, live tests, failure handling

docs/OPERATIONS.md

Decisions

docs/adr/

Security

SECURITY.md, THREAT_MODEL.md

Tripo terms and trademarks

trident-mcp is an independent project. It is not affiliated with or endorsed by Tripo, VAST or Holymolly Ltd, and "Tripo" is a trademark of its owner. Your use of the Tripo API is governed by Tripo's terms. Under them:

  • Use your own API key, and keep it private.

  • Tripo's written authorization is required before offering a shared or hosted deployment to other people.

  • Ownership of generated models depends on your Tripo plan.

Credit prices quoted in the docs and skill are dated summaries; Tripo's pricing page is authoritative.

License

Apache-2.0. See LICENSE. The license covers this repository's code, not Tripo's service or the models you generate.

Available Tools

28 tools
complete_meshA
Destructive

Fill in the parts of a segment_mesh task, optionally only the named ones. Creates a Tripo task (spends credits) and returns its task_id immediately; then call wait_for_task.

Inputs: input (required), model, part_names, completion_mode. Returns: model, task_id, produces, warnings, +1 more

convert_modelA
Destructive

Convert a mesh to GLTF, FBX, OBJ, STL, USDZ or 3MF, optionally changing topology, scale, pivot, orientation or textures. Creates a Tripo task (spends credits) and returns its task_id immediately; then call wait_for_task.

Inputs: input (required), format (required), bake, quad, +15 more. Returns: model, task_id, produces, warnings, +1 more

download_taskA
Idempotent

Save the outputs of a successful Tripo task to /<task_id>/., overwriting earlier downloads of it. Download formats are what the task produced; use convert_model for other formats.

Inputs: task_id (required), outputs. Returns: task, artifacts

edit_multiviewA
Destructive

Correct individual views of an image_to_multiview task with per-view prompts. Creates a Tripo task (spends credits) and returns its task_id immediately; then call wait_for_task.

Inputs: input (required), prompts (required). Returns: model, task_id, produces, warnings, +1 more

get_balanceA
Read-only

Get the Tripo account's available and frozen credits (1 credit = US$0.01). Frozen credits are held by running tasks.

Returns: frozen, balance

get_configA
Read-only

Show the Tripo API host, output directory and server version.

Returns: version, base_url, output_dir, catalog_checked_on

get_taskA
Read-only

Get a Tripo task's status, progress, outputs and error. Output URLs are signed and expire; use download_task to save them.

Inputs: task_id (required). Returns: type, output, status, task_id, +8 more

get_tasksA
Read-only

Get up to 100 Tripo tasks at once. Unknown IDs are listed under missed.

Inputs: task_ids (required). Returns: tasks, missed

get_usageA
Read-only

List recent Tripo tasks with the credits each one consumed.

Inputs: limit, offset. Returns: records

image_to_imageA
Destructive

Edit or derive an image from one or more reference images. Creates a Tripo task (spends credits) and returns its task_id immediately; then call wait_for_task.

Inputs: size, input, model, inputs, +6 more. Returns: model, task_id, produces, warnings, +1 more

image_to_modelA
Destructive

Generate a 3D mesh from one reference image (a local path, URL, file token, or the task ID of a text_to_image / image_to_image task). Creates a Tripo task (spends credits) and returns its task_id immediately; then call wait_for_task.

Inputs: input (required), pbr, quad, model, +17 more. Returns: model, task_id, produces, warnings, +1 more

image_to_multiviewA
Destructive

Generate front, left, back and right views from one reference image. Pass the task ID to multiview_to_model or edit_multiview. Creates a Tripo task (spends credits) and returns its task_id immediately; then call wait_for_task.

Inputs: input (required). Returns: model, task_id, produces, warnings, +1 more

image_to_splatA
Destructive

Generate a Gaussian splat (.splat) from one image. About 30 credits and 4 minutes. Creates a Tripo task (spends credits) and returns its task_id immediately; then call wait_for_task.

Inputs: input (required), model_seed. Returns: model, task_id, produces, warnings, +1 more

import_modelA
Destructive

Import an existing mesh (GLB, GLTF, FBX, OBJ, STL; up to 150 MB) so other operations can use it by task ID. Creates a Tripo task (spends credits) and returns its task_id immediately; then call wait_for_task.

Inputs: input (required). Returns: model, task_id, produces, warnings, +1 more

list_modelsA
Read-only

List the model versions this server knows, per tool, with aliases, defaults and the options each version rejects. Static; unknown versions are still sent to Tripo with a warning.

Inputs: operation. Returns: models, checked_on

multiview_to_modelA
Destructive

Generate a 3D mesh from 2-4 views of one object (front required), or from a successful image_to_multiview / edit_multiview task. Creates a Tripo task (spends credits) and returns its task_id immediately; then call wait_for_task.

Inputs: pbr, quad, input, model, +17 more. Returns: model, task_id, produces, warnings, +1 more

retarget_animationA
Destructive

Apply up to 5 preset animations to a rig_model task. 10 credits per animation. Creates a Tripo task (spends credits) and returns its task_id immediately; then call wait_for_task.

Inputs: input (required), animation, animations, out_format, +2 more. Returns: model, task_id, produces, warnings, +1 more

retopologizeA
Destructive

Rebuild a mesh as clean low-poly triangles or quads (smart low-poly retopology). Creates a Tripo task (spends credits) and returns its task_id immediately; then call wait_for_task.

Inputs: input (required), bake, quad, model, +3 more. Returns: model, task_id, produces, warnings, +1 more

rig_checkA
Destructive

Check whether a mesh can be rigged and detect its skeleton type. The verdict arrives as the task's riggable and rig_type outputs. Creates a Tripo task (free) and returns its task_id immediately; then call wait_for_task.

Inputs: input (required). Returns: model, task_id, produces, warnings, +1 more

rig_modelA
Destructive

Auto-rig a mesh for animation. 25 credits. Run rig_check first. Creates a Tripo task (spends credits) and returns its task_id immediately; then call wait_for_task.

Inputs: input (required), spec, model, rig_type, +1 more. Returns: model, task_id, produces, warnings, +1 more

segment_meshA
Destructive

Split a mesh into parts. Feed the task ID to complete_mesh. Creates a Tripo task (spends credits) and returns its task_id immediately; then call wait_for_task.

Inputs: input (required), model, ref_image, split_by_connectivity, +1 more. Returns: model, task_id, produces, warnings, +1 more

smart_segmentA
Destructive

Segment an object guided by a text hint, from an image (85 credits) or a GLB mesh (55 credits). Creates a Tripo task (spends credits) and returns its task_id immediately; then call wait_for_task.

Inputs: input (required), seg_type (required), hint, transform, +1 more. Returns: model, task_id, produces, warnings, +1 more

smart_uvA
Destructive

Unwrap UVs for a mesh of up to about 80k triangles; also returns a UV layout preview. 20 credits. Creates a Tripo task (spends credits) and returns its task_id immediately; then call wait_for_task.

Inputs: input (required), bake, model, compress, +1 more. Returns: model, task_id, produces, warnings, +1 more

text_to_imageA
Destructive

Generate a reference image from a text prompt. Its task ID can be passed directly as image_to_model input. Creates a Tripo task (spends credits) and returns its task_id immediately; then call wait_for_task.

Inputs: prompt (required), size, model, quality, +5 more. Returns: model, task_id, produces, warnings, +1 more

text_to_modelA
Destructive

Generate a 3D mesh from a text prompt. Creates a Tripo task (spends credits) and returns its task_id immediately; then call wait_for_task.

Inputs: prompt (required), pbr, quad, model, +16 more. Returns: model, task_id, produces, warnings, +1 more

texture_modelA
Destructive

Generate new textures for a mesh from a text, image, or four-view prompt. Creates a Tripo task (spends credits) and returns its task_id immediately; then call wait_for_task.

Inputs: input (required), pbr, bake, model, +7 more. Returns: model, task_id, produces, warnings, +1 more

upload_fileA
Destructive

Upload a local image or model to Tripo and get a reusable file token. Rarely needed: every input field already accepts local paths.

Inputs: path (required). Returns: path, bytes, file_token

wait_for_taskA
Idempotent

Wait for a Tripo task to finish, sending progress notifications, then save its outputs (meshes, images, views, splats) to the output directory. Returns with done=false if timeout_seconds passes first; call again to keep waiting.

Inputs: task_id (required), download, timeout_seconds. Returns: done, task, artifacts

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.9/5.0

    Scored across 28 tools

    Disambiguation4/5

    Each generation tool is keyed to a distinct input/output modality (text_to_model, image_to_model, multiview_to_model, image_to_splat, text_to_image, etc.), so selection is usually unambiguous. The only mild overlaps are segment_mesh vs smart_segment, and get_task vs get_tasks vs get_usage, which all retrieve task/credit info but are differentiated in their descriptions.

    Naming Consistency4/5

    All names use snake_case and are consistently readable, with a recurring verb_noun or source_to_target structure. Minor deviation in that many tools use a 'source_to_target' convention (text_to_model) rather than a leading verb (generate_model), but this is coherent across the set.

    Tool Count3/5

    At 28 tools the set is on the heavy side, sitting in the borderline-heavy band. Most tools correspond to genuine distinct pipeline operations (generation, texturing, rigging, UV, segmentation, conversion, credits), so each earns its place, but the volume is high enough to feel sprawling.

    Completeness4/5

    The surface covers the full 3D asset lifecycle: image/mesh generation, multiview, texturing, retopology, UV unwrap, segmentation, rigging, animation retargeting, conversion, download and credit checks. The notable gap is task management — there is no cancel/delete/cleanup operation for failed or unwanted tasks.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers