Skip to main content

PhysBox: MCP - Model Context Protocol server for local simulation apps

Project description

PhysBox: MCP

PhysBox: MCP is a Model Context Protocol (MCP) server that enables LLMs and MCP clients (such as Claude Code or Claude Desktop) to interact programmatically with the three simulation web applications in the browser:

Application Production URL Description
Flux flux.physbox.io Discrete-event / system-dynamics simulation (interactive React Flow graph)
Volt volt.physbox.io SPICE circuit simulation (powered by NgSpice WASM in browser)
Mesh mesh.physbox.io Rigid-body physics simulation (powered by MuJoCo WASM in browser)

All communication is handled via JSON over WebSockets directly to the web app in your browser—no browser automation or DOM scraping is needed.


How It Works

PhysBox: MCP functions as a local companion server that establishes a WebSocket relay on port 3142.

When you open any of the simulation web apps, they connect directly to this WebSocket relay. When an MCP client executes a tool call, the command flows from the client to the companion server, gets forwarded to the active browser tab, and the results flow back.

MCP Client (e.g. Claude Desktop)
  └── spawns → physbox-mcp (stdio)
                 └── WebSocket Server (ws://localhost:3142)
                                ├── Flux
                                ├── Volt
                                └── Mesh

Installation

Install the companion server directly from PyPI:

pip install physbox-mcp

Usage & Setup

1. Open the Web Applications

Launch or access the simulation web applications in your web browser:

As soon as a page finishes loading, it automatically registers with the companion WebSocket server.

2. Configure Your MCP Client

For Claude Desktop

Add the following block to your Claude Desktop configuration file (typically located at AppData/Roaming/Claude/claude_desktop_config.json on Windows or ~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "physbox-mcp": {
      "command": "physbox-mcp",
      "args": ["--stdio"]
    }
  }
}

For Claude Code

Add a .mcp.json file to your project root (or update your global configuration at ~/.claude/mcp.json):

{
  "mcpServers": {
    "physbox-mcp": {
      "type": "stdio",
      "command": "physbox-mcp",
      "args": ["--stdio"]
    }
  }
}

For Google Antigravity IDE

On Windows/WSL setups, Antigravity IDE reads configuration from the global configuration directory. Because the global directory (~/.gemini/config/) may be write-restricted, you should link it to the writable ~/.gemini/antigravity/ folder:

  1. In PowerShell, create a Hard Link from the global configuration target to the writable user directory:

    # Delete the empty placeholder file if it exists
    Remove-Item -Path "$env:USERPROFILE\.gemini\config\mcp_config.json" -Force -ErrorAction SilentlyContinue
    
    # Create a Hard Link to the writable copy
    New-Item -ItemType HardLink -Path "$env:USERPROFILE\.gemini\config\mcp_config.json" -Target "$env:USERPROFILE\.gemini\antigravity\mcp_config.json"
    
  2. Add the physbox-mcp WSL configuration to your mcp_config.json (which maps automatically to the hard-linked destination):

    {
      "mcpServers": {
        "physbox-mcp": {
          "command": "C:\\Windows\\system32\\wsl.exe",
          "args": [
            "-d",
            "Ubuntu-20.04",
            "/home/boab/physbox_mcp/venv/bin/python",
            "/home/boab/physbox_mcp/physbox_mcp/server.py",
            "--stdio"
          ]
        }
      }
    }
    
  3. Restart the IDE (or close and reload the agent chat session) to register the MCP tools natively.

3. Run the Companion Server Manually (Optional)

If you are running the server in HTTP mode rather than Stdio, you can run:

# Starts HTTP server listening on port 3141 (default)
physbox-mcp

Or configure custom port parameters:

physbox-mcp --port=4000

Development & Contribution

For instructions on local development, modifying schemas, extending tool definitions, and manual builds, please refer to README_DEV.md.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

physbox_mcp-0.2.0.tar.gz (34.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

physbox_mcp-0.2.0-py3-none-any.whl (34.0 kB view details)

Uploaded Python 3

File details

Details for the file physbox_mcp-0.2.0.tar.gz.

File metadata

  • Download URL: physbox_mcp-0.2.0.tar.gz
  • Upload date:
  • Size: 34.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for physbox_mcp-0.2.0.tar.gz
Algorithm Hash digest
SHA256 1d559cfb3cdcaff0deb3a0e644c53141604570f7b9ba8292dc89cbfd965d3d0e
MD5 ff608bb050677a3654ee195a4b7d5b00
BLAKE2b-256 bb949c8b2e7a0d9de9c7a6e74bc45fc5cf27bb3e6dc31e472e6bcbc0985154ac

See more details on using hashes here.

Provenance

The following attestation bundles were made for physbox_mcp-0.2.0.tar.gz:

Publisher: publish.yml on physbox-io/physbox-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file physbox_mcp-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: physbox_mcp-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 34.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for physbox_mcp-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e91f88cf08249fe5b5983657368e6d144e5e17f9f52385507282bd0e3061c6dd
MD5 a98c11e7888910eb6fae7097b05aac6f
BLAKE2b-256 22ce35c174f69c6a03829f1538727c41488177be66820196bacbaf74515806c3

See more details on using hashes here.

Provenance

The following attestation bundles were made for physbox_mcp-0.2.0-py3-none-any.whl:

Publisher: publish.yml on physbox-io/physbox-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page