GDSFactory+ MCP Server
Model Context Protocol (MCP) server for GDSFactory+ that enables AI assistants like Claude to design and build photonic integrated circuits.
What is this?
This MCP server connects AI assistants to GDSFactory+, allowing you to design photonic ICs through natural language. Build components, run verification checks, and manage multiple projects directly from Claude Code or Claude Desktop.
Prerequisites
- Python 3.10 or higher
- VSCode with the GDSFactory+ extension installed
Installation
Choose your AI assistant below and follow the instructions.
1. Cursor
One-click install:
Manual setup:
Add to .cursor/mcp.json in your project (or ~/.cursor/mcp.json for global access):
{
"mcpServers": {
"gdsfactoryplus": {
"command": "uvx",
"args": ["--from", "gfp-mcp", "gfp-mcp-serve"]
}
}
}
2. Claude Code
Run the following command:
claude mcp add gdsfactoryplus -- uvx --from gfp-mcp gfp-mcp-serve
Or add to .claude/settings.json manually:
{
"mcpServers": {
"gdsfactoryplus": {
"command": "uvx",
"args": ["--from", "gfp-mcp", "gfp-mcp-serve"]
}
}
}
3. Claude Desktop
Add to your config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"gdsfactoryplus": {
"command": "uvx",
"args": ["--from", "gfp-mcp", "gfp-mcp-serve"]
}
}
}
Restart Claude Desktop after adding the configuration.
4. Other MCP Clients
Install gfp-mcp and run the server:
uvx --from gfp-mcp gfp-mcp-serve
Or install globally first, then reference gfp-mcp-serve in your client's MCP configuration:
uv tool install gfp-mcp
Start Designing
The MCP server automatically discovers running GDSFactory+ servers via the registry (~/.gdsfactory/server-registry.json). On startup, it will log all discovered projects.
Try these commands with your AI assistant:
- "List all available photonic components"
- "Build an MZI interferometer"
- "Show me details about the directional coupler"
- "Build multiple components: mzi, coupler, and bend_euler"
- "List all my GDSFactory+ projects"
Available Tools
| Tool | Description |
|---|---|
| list_projects | List all running GDSFactory+ server instances |
| get_project_info | Get detailed information about a specific project |
| build_cells | Build one or more GDS cells by name (pass a list, can be single-item) |
| list_cells | List all available photonic components |
| get_cell_info | Get detailed component metadata |
| check_drc | Run Design Rule Check verification with structured violation reports |
| check_connectivity | Run connectivity verification |
| check_lvs | Run Layout vs. Schematic verification |
| simulate_component | Run SAX circuit simulations with custom parameters |
| list_samples | List available sample files from GDSFactory+ General PDK projects |
| get_sample_file | Get the content of a specific sample file from a project |
Multi-Project Support
The MCP server automatically discovers all running GDSFactory+ projects via the server registry (~/.gdsfactory/server-registry.json). The registry is the source of truth for available servers. Use the list_projects tool to see all running projects, then specify the project name when building components:
User: "List all my GDSFactory+ projects"
Claude: [Uses list_projects tool to show all running servers]
User: "Build the mzi component in my_photonics_project"
Claude: [Routes request to the correct project]
Troubleshooting
Server not appearing in Claude
- Verify installation:
gfp-mcp-serve --help - Check Claude Code logs:
claude --debug - Restart Claude Desktop/Code
- Ensure the GDSFactory+ VSCode extension is active and a project is open
Connection refused errors
The MCP server uses the registry (~/.gdsfactory/server-registry.json) to discover running servers.
- Use the
list_projectstool in Claude to check available servers - If no servers are found, ensure the GDSFactory+ VSCode extension is running with an active project:
- Open VSCode with the GDSFactory+ extension installed
- Open a GDSFactory+ project folder
- The extension automatically starts the server and registers it
- Check the MCP startup logs for discovered servers
- Verify the registry is accessible at
~/.gdsfactory/server-registry.json - For backward compatibility, you can set a specific server URL:
export GFP_API_URL="http://localhost:YOUR_PORT"
Tool execution timeout
Increase the timeout for long-running operations:
export GFP_MCP_TIMEOUT=600 # 10 minutes
Metadata
Release files for gfp-mcp 0.4.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| gfp_mcp-0.4.1.tar.gz | 74.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| gfp_mcp-0.4.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 131.1 kB
Release files / gfp_mcp-0.4.1.tar.gz
| Download URL | gfp_mcp-0.4.1.tar.gz |
|---|---|
| Size | 74.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c56bb094b092413ba3bf1126a0df7943587b627ff53883c35c3fcdb94c65f546
|
|
BLAKE2b-256 checksum How to use checksums |
bc5695309834470c7b6aa3ead936f75c6443157fea4e942bac9850351319340b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 23, 2026.
Transparency logRelease files / gfp_mcp-0.4.1-py3-none-any.whl
| Download URL | gfp_mcp-0.4.1-py3-none-any.whl |
|---|---|
| Size | 56.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fae75553c37617176127cfd2582b371b29cdf5bba81f848dd7c4711b7358e484
|
|
BLAKE2b-256 checksum How to use checksums |
34d5d1858d18b1678eac65aa551f37f3c7ab54bb3331bdfb12bcbe4b76db345d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 23, 2026.
Transparency log