Skip to main content

Local stdio FastMCP server for Tidy3D

Project description

Tidy3D MCP

A local Model Context Protocol (MCP) server that lets clients drive the Flexcompute Tidy3D viewer and consume viewer artifacts without needing a browser session.

Capabilities

  • Authenticates against the remote FlexAgent MCP endpoint using your Tidy3D API key.
  • Proxies viewer automation commands such as launching the viewer, rotating the camera, toggling structure visibility, running simulation health checks, and capturing screenshots.
  • Returns viewer captures as MCP images so downstream tools can consume them immediately.

Requirements

  • Python 3.10 or newer
  • uv for dependency management
  • Network access to the target FlexAgent MCP deployment (defaults to the hosted https://flexagent.dev-simulation.cloud/ endpoint)

Installation

uv sync

This resolves the project environment and installs the tidy3d-mcp console entry point.

Usage

Start the server from the project root and supply your API key (see Tidy3D installation docs for instructions to obtain it):

uv run tidy3d-mcp -- --api-key YOUR_TIDY3D_API_KEY

The server listens on stdio for MCP requests and forwards them to the remote FlexAgent server using the provided API key for authentication.

Enabling Viewer Automation

Viewer-facing tools are opt-in. Launch the proxy with --enable-viewer to activate them. Pair the flag with --host vscode (default) or --host cursor, depending on which desktop is available to handle the deeplink. When the flag is present the server:

  1. Chooses a free localhost port.
  2. Opens a vscode://Flexcompute.tidy3d/bridge?... or cursor://Flexcompute.tidy3d/bridge?... URI so the desktop extension can own the bridge on that port and expose the HTTP endpoint.
  3. Waits (15s max) for the extension to acknowledge the port by standing up the /viewer/* bridge.

If the deeplink cannot be handled or the bridge never binds, viewer tools are skipped and the proxy continues as a simple API gateway.

Integrating with MCP Hosts

  • VS Code / Cursor: Select the "Tidy3D MCP" binary (uv run tidy3d-mcp) when configuring an stdio MCP provider.
  • Custom hosts: Launch the command above and connect using the Model Context Protocol over the process stdio pipes.

Configuration

Environment variables control the server at startup:

Variable Purpose Default
REMOTE_MCP_URL Target MCP endpoint to proxy. https://flexagent.dev-simulation.cloud/

Pass --api-key whenever you launch the server. Viewer tooling is available only when --enable-viewer is provided and the Tidy3D extension accepts the bridge deeplink. Hosts that wrap the binary must forward both arguments when spawning the process.

Tools Exposed to Clients

Tool Availability Description
validate_simulation Requires --enable-viewer Launches or re-checks a simulation, returning the viewer_id, diagnostic status, warnings, and the evaluated code slice.
rotate_viewer Requires --enable-viewer Rotates the active viewer toward the requested direction (e.g. TOP, BOTTOM).
show_structures Requires --enable-viewer Applies a boolean visibility array to the current viewer structures.
capture Requires --enable-viewer Captures the current frame of the viewer.

Development Tips

  • Run uv run ruff check to lint the project and uv run ruff format to apply formatting.
  • The server relies on fastmcp.as_proxy; consult the upstream FastMCP documentation for advanced configuration such as custom authentication flows or additional transports.
  • When debugging viewer interactions, inspect the returned data_url to confirm that capture payloads reach the client.

Troubleshooting

  • API key rejected: Confirm the key is current by visiting the Tidy3D account page and copying a fresh key. Keys can be regenerated through the web interface if needed.
  • Viewer fails to start: Verify the simulation file exists, the MCP host provides the correct working directory, and the remote FlexAgent endpoint is reachable.

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

tidy3d_mcp-0.13.2.tar.gz (8.7 kB view details)

Uploaded Source

Built Distribution

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

tidy3d_mcp-0.13.2-py3-none-any.whl (12.2 kB view details)

Uploaded Python 3

File details

Details for the file tidy3d_mcp-0.13.2.tar.gz.

File metadata

  • Download URL: tidy3d_mcp-0.13.2.tar.gz
  • Upload date:
  • Size: 8.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.1

File hashes

Hashes for tidy3d_mcp-0.13.2.tar.gz
Algorithm Hash digest
SHA256 160a86910448436a9b628f6d0f2edcb44846384b25fe0d89e3799aaaf53a6e26
MD5 017cc8adbf64ff55b324b5b807fae354
BLAKE2b-256 321b297b85999a4d5caeea5d42b445f4004d375b608f98ca14bbc5b4f7eb005f

See more details on using hashes here.

File details

Details for the file tidy3d_mcp-0.13.2-py3-none-any.whl.

File metadata

File hashes

Hashes for tidy3d_mcp-0.13.2-py3-none-any.whl
Algorithm Hash digest
SHA256 836b17c9b806762dc2736136a42fb4c23f846a84aeaec6b26d9ba3da9dafc8d2
MD5 be3b76b2bbd4ec60094e68ca4d3b9838
BLAKE2b-256 546fa8b2eaec2d13c816dc30c7b739a5fa15ad7562a629db021e2146bb34d6aa

See more details on using hashes here.

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