create_3d_model_from_image
Convert a 2D image into a 3D model using Tripo AI technology. Start the conversion process by providing an image file, then monitor task status to retrieve the completed 3D model.
Instructions
Create a 3D model from an image 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_image 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:
image: The local path or url to the image file.
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.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| image | Yes | ||
| face_limit | No |
Implementation Reference
- src/server.py:783-844 (handler)The @mcp.tool()-decorated asynchronous handler function implementing the 'create_3d_model_from_image' tool. It uses the Tripo API to start a 3D model generation task from an image, returns a task_id, and instructs to poll status with another tool.@mcp.tool() async def create_3d_model_from_image( image: str, face_limit: int = -1 ) -> Dict[str, Any]: """ Create a 3D model from an image 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_image 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: image: The local path or url to the image file. 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. """ # Get the API key from environment variable # api_key = os.environ.get("TRIPO_API_KEY") get_blender_connection() api_key = _tripo_apikey if not api_key: raise ValueError( "It may take some more time to correctly re-enter the tripo function. You can first check the scene and then try the tripo function again later" ) # Create the Tripo client async with TripoClient(api_key=api_key) as client: # Create a text-to-model task task_id = await client.image_to_model( image=image, face_limit=face_limit, ) # Get initial task status task = await client.get_task(task_id) # Return immediately with task ID and status return { "task_id": task_id, "status": str(task.status), "progress": task.progress, "message": "Task created successfully. The 3D model generation is in progress.", "next_step": "You MUST now call get_task_status with this task_id to check progress.", "important_note": "3D model generation takes 3-5 minutes. You need to repeatedly call get_task_status until completion.", "workflow": [ "1. You've completed this step by calling create_3d_model_from_image", "2. Now call get_task_status with task_id: " + task_id, "3. If status is not SUCCESS, wait and call get_task_status again", "4. When status is SUCCESS, use the pbr_model_url from the response", ], }
- src/server.py:783-783 (registration)The @mcp.tool() decorator registers the create_3d_model_from_image function as an MCP tool.@mcp.tool()