tripo mcp

Local 2025-09-01 00:12:29 0
Image And Video Processing @VAST-AI-Research/tripo-mcp

Provides an interface between AI assistants and Tripo AI via Model Context Protocol, enabling generation of 3D assets from natural language and importing them to Blender.


Tripo MCP provides an interface between AI assistants and Tripo AI via Model Context Protocol (MCP).

Note: This project is in alpha. Currently, it supports Tripo Blender Addon integration.

Current Features

  • Generate 3D asset from natural language using Tripo's API and import to Blender
  • Compatible with Claude and other MCP-enabled AI assistants

Quick Start

Prerequisites

Installation

  1. Install Tripo AI Blender Addon from Tripo AI's website

  2. Configure the MCP server in Claude Desktop or Cursor.

  3. Happy creating in 3D! E.g., "Generate a 3D model of a futuristic chair".

Acknowledgements

Special Thanks
Special thanks to Siddharth Ahuja for the blender-mcp project, which provided inspiring ideas for MCP + 3D.

[
  {
    "description": "Get detailed information about the current Blender scene",
    "inputSchema": {
      "properties": {},
      "title": "get_scene_infoArguments",
      "type": "object"
    },
    "name": "get_scene_info"
  },
  {
    "description": "     Get detailed information about a specific object in the Blender scene.      Parameters:     - object_name: The name of the object to get information about     ",
    "inputSchema": {
      "properties": {
        "object_name": {
          "title": "Object Name",
          "type": "string"
        }
      },
      "required": [
        "object_name"
      ],
      "title": "get_object_infoArguments",
      "type": "object"
    },
    "name": "get_object_info"
  },
  {
    "description": "     Create a new object in the Blender scene.      Parameters:     - type: Object type (CUBE, SPHERE, CYLINDER, PLANE, CONE, TORUS, EMPTY, CAMERA, LIGHT)     - name: Optional name for the object     - location: Optional [x, y, z] location coordinates     - rotation: Optional [x, y, z] rotation in radians     - scale: Optional [x, y, z] scale factors     ",
    "inputSchema": {
      "properties": {
        "location": {
          "default": {
            "path": "README.md",
            "type": "blob"
          },
          "items": {
            "type": "number"
          },
          "title": "Location",
          "type": "array"
        },
        "name": {
          "default": {
            "path": "README.md",
            "type": "blob"
          },
          "title": "Name",
          "type": "string"
        },
        "rotation": {
          "default": {
            "path": "README.md",
            "type": "blob"
          },
          "items": {
            "type": "number"
          },
          "title": "Rotation",
          "type": "array"
        },
        "scale": {
          "default": {
            "path": "README.md",
            "type": "blob"
          },
          "items": {
            "type": "number"
          },
          "title": "Scale",
          "type": "array"
        },
        "type": {
          "default": "CUBE",
          "title": "Type",
          "type": "string"
        }
      },
      "title": "create_objectArguments",
      "type": "object"
    },
    "name": "create_object"
  },
  {
    "description": "     Modify an existing object in the Blender scene.      Parameters:     - name: Name of the object to modify     - location: Optional [x, y, z] location coordinates     - rotation: Optional [x, y, z] rotation in radians     - scale: Optional [x, y, z] scale factors     - visible: Optional boolean to set visibility     ",
    "inputSchema": {
      "properties": {
        "location": {
          "default": {
            "path": "README.md",
            "type": "blob"
          },
          "items": {
            "type": "number"
          },
          "title": "Location",
          "type": "array"
        },
        "name": {
          "title": "Name",
          "type": "string"
        },
        "rotation": {
          "default": {
            "path": "README.md",
            "type": "blob"
          },
          "items": {
            "type": "number"
          },
          "title": "Rotation",
          "type": "array"
        },
        "scale": {
          "default": {
            "path": "README.md",
            "type": "blob"
          },
          "items": {
            "type": "number"
          },
          "title": "Scale",
          "type": "array"
        },
        "visible": {
          "default": {
            "path": "README.md",
            "type": "blob"
          },
          "title": "Visible",
          "type": "boolean"
        }
      },
      "required": [
        "name"
      ],
      "title": "modify_objectArguments",
      "type": "object"
    },
    "name": "modify_object"
  },
  {
    "description": "     Delete an object from the Blender scene.      Parameters:     - name: Name of the object to delete     ",
    "inputSchema": {
      "properties": {
        "name": {
          "title": "Name",
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "title": "delete_objectArguments",
      "type": "object"
    },
    "name": "delete_object"
  },
  {
    "description": "     Set or create a material for an object.      Parameters:     - object_name: Name of the object to apply the material to     - material_name: Optional name of the material to use or create     - color: Optional [R, G, B] color values (0.0-1.0)     ",
    "inputSchema": {
      "properties": {
        "color": {
          "default": {
            "path": "README.md",
            "type": "blob"
          },
          "items": {
            "type": "number"
          },
          "title": "Color",
          "type": "array"
        },
        "material_name": {
          "default": {
            "path": "README.md",
            "type": "blob"
          },
          "title": "Material Name",
          "type": "string"
        },
        "object_name": {
          "title": "Object Name",
          "type": "string"
        }
      },
      "required": [
        "object_name"
      ],
      "title": "set_materialArguments",
      "type": "object"
    },
    "name": "set_material"
  },
  {
    "description": "     Execute arbitrary Python code in Blender.      Parameters:     - code: The Python code to execute     ",
    "inputSchema": {
      "properties": {
        "code": {
          "title": "Code",
          "type": "string"
        }
      },
      "required": [
        "code"
      ],
      "title": "execute_blender_codeArguments",
      "type": "object"
    },
    "name": "execute_blender_code"
  },
  {
    "description": "     Get a list of categories for a specific asset type on Polyhaven.      Parameters:     - asset_type: The type of asset to get categories for (hdris, textures, models, all)     ",
    "inputSchema": {
      "properties": {
        "asset_type": {
          "default": "hdris",
          "title": "Asset Type",
          "type": "string"
        }
      },
      "title": "get_polyhaven_categoriesArguments",
      "type": "object"
    },
    "name": "get_polyhaven_categories"
  },
  {
    "description": "     Search for assets on Polyhaven with optional filtering.      Parameters:     - asset_type: Type of assets to search for (hdris, textures, models, all)     - categories: Optional comma-separated list of categories to filter by      Returns a list of matching assets with basic information.     ",
    "inputSchema": {
      "properties": {
        "asset_type": {
          "default": "all",
          "title": "Asset Type",
          "type": "string"
        },
        "categories": {
          "default": {
            "path": "README.md",
            "type": "blob"
          },
          "title": "Categories",
          "type": "string"
        }
      },
      "title": "search_polyhaven_assetsArguments",
      "type": "object"
    },
    "name": "search_polyhaven_assets"
  },
  {
    "description": "     Download and import a Polyhaven asset into Blender.      Parameters:     - asset_id: The ID of the asset to download     - asset_type: The type of asset (hdris, textures, models)     - resolution: The resolution to download (e.g., 1k, 2k, 4k)     - file_format: Optional file format (e.g., hdr, exr for HDRIs; jpg, png for textures; gltf, fbx for models)      Returns a message indicating success or failure.     ",
    "inputSchema": {
      "properties": {
        "asset_id": {
          "title": "Asset Id",
          "type": "string"
        },
        "asset_type": {
          "title": "Asset Type",
          "type": "string"
        },
        "file_format": {
          "default": {
            "path": "README.md",
            "type": "blob"
          },
          "title": "File Format",
          "type": "string"
        },
        "resolution": {
          "default": "1k",
          "title": "Resolution",
          "type": "string"
        }
      },
      "required": [
        "asset_id",
        "asset_type"
      ],
      "title": "download_polyhaven_assetArguments",
      "type": "object"
    },
    "name": "download_polyhaven_asset"
  },
  {
    "description": "     Apply a previously downloaded Polyhaven texture to an object.      Parameters:     - object_name: Name of the object to apply the texture to     - texture_id: ID of the Polyhaven texture to apply (must be downloaded first)      Returns a message indicating success or failure.     ",
    "inputSchema": {
      "properties": {
        "object_name": {
          "title": "Object Name",
          "type": "string"
        },
        "texture_id": {
          "title": "Texture Id",
          "type": "string"
        }
      },
      "required": [
        "object_name",
        "texture_id"
      ],
      "title": "set_textureArguments",
      "type": "object"
    },
    "name": "set_texture"
  },
  {
    "description": "     Check if PolyHaven integration is enabled in Blender.     Returns a message indicating whether PolyHaven features are available.     ",
    "inputSchema": {
      "properties": {},
      "title": "get_polyhaven_statusArguments",
      "type": "object"
    },
    "name": "get_polyhaven_status"
  },
  {
    "description": "     Create a 3D model from a text description using the Tripo API.      IMPORTANT: This tool initiates a 3D model generation task but does NOT wait for completion.     After calling this tool, you MUST repeatedly call the get_task_status tool with the returned     task_id until the task status is SUCCESS or a terminal error state.      Typical workflow:     1. Call create_3d_model_from_text to start the task     2. Get the task_id from the response     3. Call get_task_status with the task_id     4. If status is not SUCCESS, wait a moment and call get_task_status again     5. Repeat until status is SUCCESS or a terminal error state     6. When status is SUCCESS, use the pbr_model_url from the response      Args:         describe_the_look_of_object: A detailed description of the object to generate.         face_limit: The maximum number of faces in the model.         auto_size: Whether to automatically size the model.      Returns:         A dictionary containing the task ID and instructions for checking the status.     ",
    "inputSchema": {
      "properties": {
        "describe_the_look_of_object": {
          "title": "Describe The Look Of Object",
          "type": "string"
        },
        "face_limit": {
          "default": 8000,
          "title": "Face Limit",
          "type": "integer"
        }
      },
      "required": [
        "describe_the_look_of_object"
      ],
      "title": "create_3d_model_from_textArguments",
      "type": "object"
    },
    "name": "create_3d_model_from_text"
  },
  {
    "description": "     Import a GLB model from URL into Blender scene      Parameters:     - glb_url: Download URL of the GLB model file      Returns:     Result message of the import operation     ",
    "inputSchema": {
      "properties": {
        "glb_url": {
          "title": "Glb Url",
          "type": "string"
        }
      },
      "required": [
        "glb_url"
      ],
      "title": "import_tripo_glb_modelArguments",
      "type": "object"
    },
    "name": "import_tripo_glb_model"
  },
  {
    "description": "     Get the status of a 3D model generation task.      IMPORTANT: This tool checks the status of a task started by create_3d_model_from_text.     You may need to call this tool MULTIPLE TIMES until the task completes.      Typical workflow:     1. Call this tool with the task_id from create_3d_model_from_text     2. Check the status in the response:        - If status is SUCCESS, the task is complete and you can use the pbr_model_url        - If status is FAILED, CANCELLED, BANNED, or EXPIRED, the task failed        - If status is anything else, the task is still in progress     3. If the task is still in progress, wait a moment and call this tool again      Args:         task_id: The ID of the task to check (obtained from create_3d_model_from_text).      Returns:         A dictionary containing the task status and other information.     ",
    "inputSchema": {
      "properties": {
        "task_id": {
          "title": "Task Id",
          "type": "string"
        }
      },
      "required": [
        "task_id"
      ],
      "title": "get_task_statusArguments",
      "type": "object"
    },
    "name": "get_task_status"
  }
]