gfp-mcp 0.3.2__py3-none-any.whl → 0.3.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
gfp_mcp/__init__.py CHANGED
@@ -41,4 +41,4 @@ __all__ = [
41
41
  "get_resource_content",
42
42
  ]
43
43
 
44
- __version__ = "0.3.2"
44
+ __version__ = "0.3.3"
gfp_mcp/tools/__init__.py CHANGED
@@ -85,10 +85,10 @@ def _create_handler_registry() -> dict[str, ToolHandler]:
85
85
  CheckLvsHandler(),
86
86
  # Advanced tools
87
87
  SimulateComponentHandler(),
88
- GetPortCenterHandler(),
89
- GenerateBboxHandler(),
90
- FreezeCellHandler(),
91
- GetPdkInfoHandler(),
88
+ # GetPortCenterHandler(), # Commented out because so far unused.
89
+ # GenerateBboxHandler(),
90
+ # FreezeCellHandler(),
91
+ # GetPdkInfoHandler(),
92
92
  # Sample project tools
93
93
  ListSamplesHandler(),
94
94
  GetSampleFileHandler(),
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gfp-mcp
3
- Version: 0.3.2
3
+ Version: 0.3.3
4
4
  Summary: Model Context Protocol (MCP) server for GDSFactory+ photonic IC design
5
5
  Author: GDSFactory+ Team
6
6
  License: MIT
@@ -44,7 +44,6 @@ Dynamic: license-file
44
44
 
45
45
  [![PyPI version](https://img.shields.io/pypi/v/gfp-mcp.svg)](https://pypi.org/project/gfp-mcp/)
46
46
  [![Python versions](https://img.shields.io/pypi/pyversions/gfp-mcp.svg)](https://pypi.org/project/gfp-mcp/)
47
- [![Tests](https://github.com/doplaydo/gfp-mcp/actions/workflows/test.yml/badge.svg)](https://github.com/doplaydo/gfp-mcp/actions)
48
47
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
49
48
 
50
49
  Model Context Protocol (MCP) server for GDSFactory+ that enables AI assistants like Claude to design and build photonic integrated circuits.
@@ -53,88 +52,71 @@ Model Context Protocol (MCP) server for GDSFactory+ that enables AI assistants l
53
52
 
54
53
  This MCP server connects AI assistants to [GDSFactory+](https://gdsfactory.com), 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.
55
54
 
56
- ## Quick Start
57
-
58
- ### 1. Install Prerequisites
55
+ ## Prerequisites
59
56
 
60
57
  - Python 3.10 or higher
61
58
  - VSCode with the [GDSFactory+ extension](https://marketplace.visualstudio.com/items?itemName=gdsfactory.gdsfactoryplus) installed
62
59
 
63
- ### 2. Install the MCP Server
60
+ ## Installation
64
61
 
65
- **With uv (recommended):**
62
+ Choose your AI assistant below and follow the instructions.
66
63
 
67
- If you don't have `uv` installed, see the [uv installation guide](https://docs.astral.sh/uv/getting-started/installation/).
64
+ ### 1. Cursor
68
65
 
69
- ```bash
70
- uv tool install gfp-mcp
71
- ```
66
+ **One-click install:**
72
67
 
73
- <details>
74
- <summary>Ephemeral approach</summary>
68
+ [![Install MCP Server](https://cursor.com/deeplink/mcp-install-dark.svg)](cursor://anysphere.cursor-deeplink/mcp/install?name=gdsfactoryplus&config=eyJjb21tYW5kIjoidXZ4IiwiYXJncyI6WyItLWZyb20iLCJnZnAtbWNwIiwiZ2ZwLW1jcC1zZXJ2ZSJdfQ%3D%3D)
75
69
 
76
- Run without installing:
70
+ **Manual setup:**
77
71
 
78
- ```bash
79
- uvx --from gfp-mcp gfp-mcp-serve
80
- ```
81
- </details>
82
-
83
- <details>
84
- <summary><strong>Alternative: pip install</strong></summary>
72
+ Add to `.cursor/mcp.json` in your project (or `~/.cursor/mcp.json` for global access):
85
73
 
86
- ```bash
87
- pip install gfp-mcp
74
+ ```json
75
+ {
76
+ "mcpServers": {
77
+ "gdsfactoryplus": {
78
+ "command": "uvx",
79
+ "args": ["--from", "gfp-mcp", "gfp-mcp-serve"]
80
+ }
81
+ }
82
+ }
88
83
  ```
89
84
 
90
- </details>
85
+ ### 2. Claude Code
91
86
 
92
- ### 3. Connect to Your AI Assistant
87
+ Run the following command:
93
88
 
94
- <details>
95
- <summary><strong>Claude Code</strong></summary>
89
+ ```bash
90
+ claude mcp add gdsfactoryplus -- uvx --from gfp-mcp gfp-mcp-serve
91
+ ```
96
92
 
97
- Add to `.claude/settings.json`:
93
+ Or add to `.claude/settings.json` manually:
98
94
 
99
95
  ```json
100
96
  {
101
97
  "mcpServers": {
102
98
  "gdsfactoryplus": {
103
- "command": "gfp-mcp-serve",
104
- "args": [],
105
- "env": {
106
- "GFP_API_URL": "http://localhost:8787"
107
- }
99
+ "command": "uvx",
100
+ "args": ["--from", "gfp-mcp", "gfp-mcp-serve"]
108
101
  }
109
102
  }
110
103
  }
111
104
  ```
112
105
 
113
- Or use the CLI:
114
-
115
- ```bash
116
- claude mcp add gdsfactoryplus -- gfp-mcp-serve
117
- ```
118
-
119
- </details>
120
-
121
- <details>
122
- <summary><strong>Claude Desktop</strong></summary>
106
+ ### 3. Claude Desktop
123
107
 
124
108
  Add to your config file:
125
109
 
126
- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
127
-
128
- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
129
-
130
- **Linux**: `~/.config/Claude/claude_desktop_config.json`
110
+ - **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
111
+ - **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
112
+ - **Linux**: `~/.config/Claude/claude_desktop_config.json`
131
113
 
132
114
  ```json
133
115
  {
134
116
  "mcpServers": {
135
117
  "gdsfactoryplus": {
136
- "command": "gfp-mcp-serve",
137
- "args": []
118
+ "command": "uvx",
119
+ "args": ["--from", "gfp-mcp", "gfp-mcp-serve"]
138
120
  }
139
121
  }
140
122
  }
@@ -142,16 +124,21 @@ Add to your config file:
142
124
 
143
125
  Restart Claude Desktop after adding the configuration.
144
126
 
145
- </details>
127
+ ### 4. Other MCP Clients
146
128
 
147
- <details>
148
- <summary><strong>Cursor</strong></summary>
129
+ Install `gfp-mcp` and run the server:
130
+
131
+ ```bash
132
+ uvx --from gfp-mcp gfp-mcp-serve
133
+ ```
149
134
 
150
- Coming soon. Follow the MCP integration instructions for Cursor when available.
135
+ Or install globally first, then reference `gfp-mcp-serve` in your client's MCP configuration:
151
136
 
152
- </details>
137
+ ```bash
138
+ uv tool install gfp-mcp
139
+ ```
153
140
 
154
- ### 4. Start Designing
141
+ ## Start Designing
155
142
 
156
143
  The MCP server automatically discovers running GDSFactory+ servers via the registry (`~/.gdsfactory/server-registry.json`). On startup, it will log all discovered projects.
157
144
 
@@ -165,23 +152,19 @@ Try these commands with your AI assistant:
165
152
 
166
153
  ## Available Tools
167
154
 
168
- - **build_cells** - Build one or more GDS cells by name (pass a list, can be single-item)
169
- - **list_cells** - List all available photonic components
170
- - **get_cell_info** - Get detailed component metadata
171
- - **list_projects** - List all running GDSFactory+ server instances
172
- - **get_project_info** - Get detailed information about a specific project
173
- - **check_drc** - Run Design Rule Check verification (returns structured format with all violations including simplified location data for LLM-friendly troubleshooting)
174
- - **check_connectivity** - Run connectivity verification
175
- - **check_lvs** - Run Layout vs. Schematic verification
176
- - **simulate_component** - Run SAX circuit simulations with custom parameters
177
- - Basic: `{"name": "mzi"}` - Simulate with default parameters
178
- - Custom layout: `{"name": "mzi", "layout": {"length_mmi": 12, "gap_mmi": 0.3}}` - Customize component geometry
179
- - Wavelength sweep: `{"name": "coupler", "model": {"wl": [1.5, 1.55, 1.6]}}` - Simulate at multiple wavelengths
180
- - Full example: `{"name": "mzi", "layout": {"length": 100}, "model": {"wl": [1.5, 1.55, 1.6], "loss": 0.2}, "how": "from_layout"}`
181
- - **get_port_center** - Get physical coordinates of component ports
182
- - **generate_bbox** - Generate bounding box GDS from layout
183
- - **freeze_cell** - Freeze parametric cell as static netlist
184
- - **get_pdk_info** - Get current PDK information
155
+ | Tool | Description |
156
+ |------|-------------|
157
+ | **list_projects** | List all running GDSFactory+ server instances |
158
+ | **get_project_info** | Get detailed information about a specific project |
159
+ | **build_cells** | Build one or more GDS cells by name (pass a list, can be single-item) |
160
+ | **list_cells** | List all available photonic components |
161
+ | **get_cell_info** | Get detailed component metadata |
162
+ | **check_drc** | Run Design Rule Check verification with structured violation reports |
163
+ | **check_connectivity** | Run connectivity verification |
164
+ | **check_lvs** | Run Layout vs. Schematic verification |
165
+ | **simulate_component** | Run SAX circuit simulations with custom parameters |
166
+ | **list_samples** | List available sample files from GDSFactory+ General PDK projects |
167
+ | **get_sample_file** | Get the content of a specific sample file from a project |
185
168
 
186
169
  ## Multi-Project Support
187
170
 
@@ -1,4 +1,4 @@
1
- gfp_mcp/__init__.py,sha256=7q7olhYHIRXAfT1rSsgTW0duRoQf_uRpFx4yFjSwXSk,1127
1
+ gfp_mcp/__init__.py,sha256=t9tjKObgd0j_dctA1rgR22crYUrQNWLuyh0ujXR3YVI,1127
2
2
  gfp_mcp/client.py,sha256=2-b_FZSC_8576qNLhVUrGT-oYWqr1RLTuz6BRrT0kak,9488
3
3
  gfp_mcp/config.py,sha256=lrfg98VZDnIBlmPQD2V5sqw9aVZf7vsdPkOOsgqcqe0,4471
4
4
  gfp_mcp/registry.py,sha256=ozDrMPksWoyKAkNd9MH2g8FRoN0XEQKWnLwZsgDxWLc,6127
@@ -7,7 +7,7 @@ gfp_mcp/resources.py,sha256=upY93XVemc5ezx1p_YML57O6HYVahCs2RsYXn4Dw_X0,3517
7
7
  gfp_mcp/samples.py,sha256=cJRho3G7RKeX7X9fIjJBpjUEGLAHuwHvPbYI5OZphTg,5610
8
8
  gfp_mcp/server.py,sha256=dGhnKFKfoB4dBzk3MJ5aSVpeBFD1xQueLgCMdTYh8u8,7540
9
9
  gfp_mcp/utils.py,sha256=awyJqKFlyIMIvM-8N0XT3S2vG_FYXkfpHJSAJCp-WcA,1719
10
- gfp_mcp/tools/__init__.py,sha256=TwgWlw1fMyJKHYifjtESBQ21JmyGZ0pv9b2lmXU44r0,3557
10
+ gfp_mcp/tools/__init__.py,sha256=IX1lDFSMcbFJhioybiDgVVe7rNDLTSeN8FwULbR4TgQ,3604
11
11
  gfp_mcp/tools/base.py,sha256=kNci7NdIKdY_qUWGgrARJk3KAS3PqzqzKiSNYNJ96Ks,7381
12
12
  gfp_mcp/tools/bbox.py,sha256=P7PF0s4ykXfvaUtTNdPV7_WNOQZu76RXf85cXH70SIw,4296
13
13
  gfp_mcp/tools/build.py,sha256=hW55JzNw3QL8RXDz8Yx0VJB-vq3WzZ9exwScSNcIYiA,5575
@@ -21,9 +21,9 @@ gfp_mcp/tools/port.py,sha256=Ldm2l771S3h_lEjZOoC1CMexdbk9nvrbU5tmbwkNFiY,2567
21
21
  gfp_mcp/tools/project.py,sha256=ULqsMcnMDE9hJAxWTh9abWytkr0jhqLaqu9_2PgcMyg,4984
22
22
  gfp_mcp/tools/samples.py,sha256=H-rwOtcqInTA9lmCMvuh8ZpLcVsa_fiZw1BPsxEDBI8,6819
23
23
  gfp_mcp/tools/simulation.py,sha256=VtCq2gLloPeikFCNbn2Fvq9yngCSdXgz6kt32_0RUmI,5999
24
- gfp_mcp-0.3.2.dist-info/licenses/LICENSE,sha256=ixSuHdKKXzNJw_eTgAxHzaCNIds8k48hytA_eJgA8gQ,225
25
- gfp_mcp-0.3.2.dist-info/METADATA,sha256=fTeePDc3kjuicIEMJi-7wiIB3Nq2OrRMUpWJ17Nk9mY,8236
26
- gfp_mcp-0.3.2.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
27
- gfp_mcp-0.3.2.dist-info/entry_points.txt,sha256=Fbd4_16Giw-_y6piVlbk8sHDgvZbE3oqAfeYl21Xx98,54
28
- gfp_mcp-0.3.2.dist-info/top_level.txt,sha256=F7RvvaMcHgg7J_fNBN77ZMt7r32U7ZbVrn4zM1odUSs,8
29
- gfp_mcp-0.3.2.dist-info/RECORD,,
24
+ gfp_mcp-0.3.3.dist-info/licenses/LICENSE,sha256=ixSuHdKKXzNJw_eTgAxHzaCNIds8k48hytA_eJgA8gQ,225
25
+ gfp_mcp-0.3.3.dist-info/METADATA,sha256=PiZeTSMrJicj5P8SNPgUJyAaAkQuSBkYv4-stW3-st4,7693
26
+ gfp_mcp-0.3.3.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
27
+ gfp_mcp-0.3.3.dist-info/entry_points.txt,sha256=Fbd4_16Giw-_y6piVlbk8sHDgvZbE3oqAfeYl21Xx98,54
28
+ gfp_mcp-0.3.3.dist-info/top_level.txt,sha256=F7RvvaMcHgg7J_fNBN77ZMt7r32U7ZbVrn4zM1odUSs,8
29
+ gfp_mcp-0.3.3.dist-info/RECORD,,