MeshLab-mcp

Georges999/MeshLab-mcp

3.2

If you are the rightful owner of MeshLab-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

MeshLab-MCP is a minimal, extensible Model Context Protocol (MCP) bridge for MeshLab, utilizing FastAPI for HTTP communication and a custom TCP backend for mesh operations via `pymeshlab`.

MeshLab-MCP

A minimal, extensible Model Context Protocol (MCP) bridge for MeshLab, using FastAPI (HTTP) and a custom TCP (JSON) backend for mesh operations via pymeshlab.


Features

  • HTTP API for MCP clients (web UIs, orchestrators) using FastAPI
  • TCP (JSON) backend to communicate with a MeshLab process (using pymeshlab)
  • Extensible: Add new mesh tools and protocol commands easily

Project Structure

MeshLab-mcp/
ā”œā”€ā”€ meshlab_tcp_server.py   # TCP server wrapping pymeshlab
ā”œā”€ā”€ meshlab_tcp_client.py   # TCP client for server communication
ā”œā”€ā”€ meshlab_mcp.py          # Core MCP protocol logic (extensible)
ā”œā”€ā”€ mcp_server.py           # FastAPI HTTP server (entrypoint)
ā”œā”€ā”€ mcp_client.py           # HTTP client for testing
ā”œā”€ā”€ requirements.txt
└── README.md

Setup Instructions

  1. Clone the repository and cd into the directory.

  2. Install dependencies:

    pip install -r requirements.txt
    
  3. Add Python Scripts directory to PATH (if not already):

    • Example: C:\Users\<your-username>\AppData\Roaming\Python\Python313\Scripts\
    • Restart your terminal after changing PATH.
  4. Start the MeshLab TCP server (in a terminal):

    python meshlab_tcp_server.py
    
  5. Start the HTTP MCP server (in another terminal):

    python -m uvicorn mcp_server:app --reload
    

    If uvicorn is not recognized, use the full path or the python -m uvicorn ... form as above.

  6. Test with the HTTP client (optional):

    python mcp_client.py
    

    You should see output like:

    {'mesh_loaded': False, 'current_mesh_name': None}
    

MCP Client Configuration Example (for MeshLab integration)

To connect MeshLab (or an orchestrator) to this MCP server, use a configuration like:

{
  "mcpServers": {
    "meshlab": {
      "command": "uvx",
      "args": [
        "meshlab-mcp"
      ],
      "host": "127.0.0.1",
      "port": 8000
    }
  }
}
  • command: The command to launch your MCP HTTP server (e.g., uvx meshlab-mcp or python -m uvicorn mcp_server:app --reload)
  • host/port: Where the HTTP API is reachable.

How It Works

  • MCP clients (web UI, orchestrator) send HTTP requests to the FastAPI server.
  • The FastAPI server bridges these requests to the MeshLab TCP server (which runs mesh operations using pymeshlab).
  • The TCP server responds with JSON results.

Extending

  • Add new mesh tools/commands in meshlab_tcp_server.py and expose them in the protocol.
  • Add corresponding methods in meshlab_tcp_client.py and new HTTP endpoints in mcp_server.py.

Troubleshooting

  • If uvicorn is not recognized, ensure your Python Scripts directory is in PATH or use python -m uvicorn ....
  • Always start the TCP server before the HTTP server.
  • For mesh operations, ensure your mesh files are present in the working directory.

Next Steps

  • Start building new mesh tools and protocol commands!
  • For advanced integration with MeshLab's GUI or other tools, refer to MeshLab's documentation and MCP specs.

If you have questions or want to add new features, just ask!