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 +1 -1
- gfp_mcp/tools/__init__.py +4 -4
- {gfp_mcp-0.3.2.dist-info → gfp_mcp-0.3.3.dist-info}/METADATA +56 -73
- {gfp_mcp-0.3.2.dist-info → gfp_mcp-0.3.3.dist-info}/RECORD +8 -8
- {gfp_mcp-0.3.2.dist-info → gfp_mcp-0.3.3.dist-info}/WHEEL +0 -0
- {gfp_mcp-0.3.2.dist-info → gfp_mcp-0.3.3.dist-info}/entry_points.txt +0 -0
- {gfp_mcp-0.3.2.dist-info → gfp_mcp-0.3.3.dist-info}/licenses/LICENSE +0 -0
- {gfp_mcp-0.3.2.dist-info → gfp_mcp-0.3.3.dist-info}/top_level.txt +0 -0
gfp_mcp/__init__.py
CHANGED
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.
|
|
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
|
[](https://pypi.org/project/gfp-mcp/)
|
|
46
46
|
[](https://pypi.org/project/gfp-mcp/)
|
|
47
|
-
[](https://github.com/doplaydo/gfp-mcp/actions)
|
|
48
47
|
[](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
|
-
##
|
|
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
|
-
|
|
60
|
+
## Installation
|
|
64
61
|
|
|
65
|
-
|
|
62
|
+
Choose your AI assistant below and follow the instructions.
|
|
66
63
|
|
|
67
|
-
|
|
64
|
+
### 1. Cursor
|
|
68
65
|
|
|
69
|
-
|
|
70
|
-
uv tool install gfp-mcp
|
|
71
|
-
```
|
|
66
|
+
**One-click install:**
|
|
72
67
|
|
|
73
|
-
|
|
74
|
-
<summary>Ephemeral approach</summary>
|
|
68
|
+
[](cursor://anysphere.cursor-deeplink/mcp/install?name=gdsfactoryplus&config=eyJjb21tYW5kIjoidXZ4IiwiYXJncyI6WyItLWZyb20iLCJnZnAtbWNwIiwiZ2ZwLW1jcC1zZXJ2ZSJdfQ%3D%3D)
|
|
75
69
|
|
|
76
|
-
|
|
70
|
+
**Manual setup:**
|
|
77
71
|
|
|
78
|
-
|
|
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
|
-
```
|
|
87
|
-
|
|
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
|
-
|
|
85
|
+
### 2. Claude Code
|
|
91
86
|
|
|
92
|
-
|
|
87
|
+
Run the following command:
|
|
93
88
|
|
|
94
|
-
|
|
95
|
-
|
|
89
|
+
```bash
|
|
90
|
+
claude mcp add gdsfactoryplus -- uvx --from gfp-mcp gfp-mcp-serve
|
|
91
|
+
```
|
|
96
92
|
|
|
97
|
-
|
|
93
|
+
Or add to `.claude/settings.json` manually:
|
|
98
94
|
|
|
99
95
|
```json
|
|
100
96
|
{
|
|
101
97
|
"mcpServers": {
|
|
102
98
|
"gdsfactoryplus": {
|
|
103
|
-
"command": "
|
|
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
|
-
|
|
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
|
-
**
|
|
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": "
|
|
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
|
-
|
|
127
|
+
### 4. Other MCP Clients
|
|
146
128
|
|
|
147
|
-
|
|
148
|
-
|
|
129
|
+
Install `gfp-mcp` and run the server:
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
uvx --from gfp-mcp gfp-mcp-serve
|
|
133
|
+
```
|
|
149
134
|
|
|
150
|
-
|
|
135
|
+
Or install globally first, then reference `gfp-mcp-serve` in your client's MCP configuration:
|
|
151
136
|
|
|
152
|
-
|
|
137
|
+
```bash
|
|
138
|
+
uv tool install gfp-mcp
|
|
139
|
+
```
|
|
153
140
|
|
|
154
|
-
|
|
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
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
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=
|
|
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=
|
|
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.
|
|
25
|
-
gfp_mcp-0.3.
|
|
26
|
-
gfp_mcp-0.3.
|
|
27
|
-
gfp_mcp-0.3.
|
|
28
|
-
gfp_mcp-0.3.
|
|
29
|
-
gfp_mcp-0.3.
|
|
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,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|