easyeda-mcp-pro 0.3.0 → 0.3.1
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.
- package/README.md +65 -21
- package/dist/bridge/manager.js +24 -12
- package/dist/bridge/manager.js.map +1 -1
- package/dist/bridge/types.d.ts +8 -0
- package/dist/bridge/types.js +8 -0
- package/dist/bridge/types.js.map +1 -1
- package/dist/cli/local-setup.d.ts +33 -0
- package/dist/cli/local-setup.js +181 -0
- package/dist/cli/local-setup.js.map +1 -0
- package/dist/config/env.js +1 -1
- package/dist/config/profiles.js +7 -7
- package/dist/config/profiles.js.map +1 -1
- package/dist/config/version.d.ts +1 -0
- package/dist/config/version.js +2 -0
- package/dist/config/version.js.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -1
- package/dist/server/factory.js +2 -1
- package/dist/server/factory.js.map +1 -1
- package/dist/server/transports/http.js +2 -1
- package/dist/server/transports/http.js.map +1 -1
- package/dist/tools/L0_diagnostics.js +142 -3
- package/dist/tools/L0_diagnostics.js.map +1 -1
- package/dist/tools/L1_schematic.js +241 -1
- package/dist/tools/L1_schematic.js.map +1 -1
- package/easyeda-bridge-extension.eext +0 -0
- package/package.json +6 -2
package/README.md
CHANGED
|
@@ -17,24 +17,36 @@ npx easyeda-mcp-pro
|
|
|
17
17
|
|
|
18
18
|
Point your MCP client (Claude, Cursor, etc.) to the stdio transport. Create a `.env` file to configure suppliers and AI providers (see [Configuration](#configuration)).
|
|
19
19
|
|
|
20
|
+
For the recommended no-terminal workflow, let your MCP client auto-start the server:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
npx easyeda-mcp-pro --setup-local
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
The setup command prints:
|
|
27
|
+
|
|
28
|
+
- the EasyEDA Pro extension package path (`easyeda-bridge-extension.eext`)
|
|
29
|
+
- a local MCP client config that starts `dist/index.js` automatically
|
|
30
|
+
- an npm/npx MCP client config for published package usage
|
|
31
|
+
|
|
20
32
|
---
|
|
21
33
|
|
|
22
34
|
## Overview
|
|
23
35
|
|
|
24
|
-
easyeda-mcp-pro is a [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server that bridges AI assistants with hardware design workflows in EasyEDA Pro. It exposes
|
|
36
|
+
easyeda-mcp-pro is a [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server that bridges AI assistants with hardware design workflows in EasyEDA Pro. It exposes 34 profile-gated MCP tools for schematic inspection and editing, controlled EasyEDA Pro API calls, BOM management, design rule checks, PCB board analysis, fabrication exports, and supplier integration.
|
|
25
37
|
|
|
26
38
|
The server connects to EasyEDA Pro via a WebSocket bridge extension, enabling real-time access to open project data. It integrates with JLCPCB, LCSC, Mouser, and DigiKey for BOM sourcing and pricing.
|
|
27
39
|
|
|
28
40
|
### Key Capabilities
|
|
29
41
|
|
|
30
|
-
| Area | What you can do
|
|
31
|
-
| --------------- |
|
|
32
|
-
| **Schematic** | List nets and
|
|
33
|
-
| **BOM** | Generate, validate, export, and source bill of materials
|
|
34
|
-
| **DRC/ERC** | Run design rule and electrical rule checks
|
|
35
|
-
| **Board** | Inspect layers, stackup, dimensions, features
|
|
36
|
-
| **Export** | Export Gerbers, pick-and-place, PDF, netlist
|
|
37
|
-
| **Diagnostics** | Health check, bridge status, capabilities, self-test
|
|
42
|
+
| Area | What you can do |
|
|
43
|
+
| --------------- | --------------------------------------------------------------------- |
|
|
44
|
+
| **Schematic** | List nets/components, search and place devices, edit wires/primitives |
|
|
45
|
+
| **BOM** | Generate, validate, export, and source bill of materials |
|
|
46
|
+
| **DRC/ERC** | Run design rule and electrical rule checks |
|
|
47
|
+
| **Board** | Inspect layers, stackup, dimensions, features |
|
|
48
|
+
| **Export** | Export Gerbers, pick-and-place, PDF, netlist |
|
|
49
|
+
| **Diagnostics** | Health check, bridge status, API inventory, capabilities, self-test |
|
|
38
50
|
|
|
39
51
|
---
|
|
40
52
|
|
|
@@ -69,11 +81,19 @@ git clone https://github.com/oaslananka/easyeda-mcp-pro.git
|
|
|
69
81
|
cd easyeda-mcp-pro
|
|
70
82
|
cp .env.example .env
|
|
71
83
|
pnpm install
|
|
72
|
-
pnpm
|
|
73
|
-
pnpm build:extension
|
|
74
|
-
pnpm start
|
|
84
|
+
pnpm setup:local
|
|
75
85
|
```
|
|
76
86
|
|
|
87
|
+
Install or reload the generated `easyeda-bridge-extension.eext` package in EasyEDA Pro. Then add the printed MCP config to your MCP client. After that, your MCP client starts the server automatically; do not keep a separate `node dist/index.js` terminal running.
|
|
88
|
+
|
|
89
|
+
### Local health check
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
pnpm doctor
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
The doctor command checks the Node.js runtime, built server entry, generated EasyEDA extension package, and local bridge port reachability. If the bridge server is offline, that is normal until your MCP client starts `easyeda-mcp-pro`.
|
|
96
|
+
|
|
77
97
|
---
|
|
78
98
|
|
|
79
99
|
## Configuration
|
|
@@ -163,7 +183,7 @@ See `.env.example` for the complete list of configuration variables.
|
|
|
163
183
|
|
|
164
184
|
## MCP Tools
|
|
165
185
|
|
|
166
|
-
|
|
186
|
+
The server currently registers 34 tools. Tools are filtered by the active `TOOL_PROFILE`: `core` exposes the normal workflow tools, `pro` adds manufacturing exports, `full` adds controlled documented EasyEDA API calls, and `dev` adds runtime probes for debugging.
|
|
167
187
|
|
|
168
188
|
### L0 — Diagnostics (core)
|
|
169
189
|
|
|
@@ -176,14 +196,38 @@ All 25 tools are available via the MCP server. Tools are filtered by the active
|
|
|
176
196
|
| `easyeda_get_tool_profiles` | Available tool profiles |
|
|
177
197
|
| `easyeda_get_feature_flags` | Current feature flags |
|
|
178
198
|
| `easyeda_run_self_test` | Internal self-test |
|
|
199
|
+
| `easyeda_api_inventory` | Live EasyEDA API classes, runtime paths, and methods |
|
|
200
|
+
|
|
201
|
+
### L0 — Full-control and dev probes
|
|
202
|
+
|
|
203
|
+
| Tool | Profile | Description |
|
|
204
|
+
| ------------------------------ | ------- | ------------------------------------------------------------------ |
|
|
205
|
+
| `easyeda_api_call` | full | Call a documented EasyEDA `Class.method` path through the bridge |
|
|
206
|
+
| `easyeda_bridge_probe_methods` | dev | Probe bridge method availability |
|
|
207
|
+
| `easyeda_component_probe` | dev | Inspect live schematic component runtime objects and state getters |
|
|
208
|
+
|
|
209
|
+
`easyeda_api_call` is intentionally not raw JavaScript execution. It only accepts documented EasyEDA Pro API class prefixes (`DMT_`, `SCH_`, `PCB_`, `LIB_`) and a direct method name such as `SCH_PrimitiveWire.getAll`. Methods that can mutate project state, such as `create`, `delete`, `modify`, `openProject`, `save`, `import`, or `export`, require `confirmWrite=true`.
|
|
210
|
+
|
|
211
|
+
To enable the controlled full-control API tool in your MCP client, set:
|
|
212
|
+
|
|
213
|
+
```bash
|
|
214
|
+
TOOL_PROFILE=full
|
|
215
|
+
```
|
|
179
216
|
|
|
180
217
|
### L1 — Schematic (core)
|
|
181
218
|
|
|
182
|
-
| Tool
|
|
183
|
-
|
|
|
184
|
-
| `easyeda_schematic_nets`
|
|
185
|
-
| `easyeda_schematic_components`
|
|
186
|
-
| `easyeda_schematic_net_detail`
|
|
219
|
+
| Tool | Description |
|
|
220
|
+
| ------------------------------------ | ----------------------------------------------------------- |
|
|
221
|
+
| `easyeda_schematic_nets` | List all nets with node connections |
|
|
222
|
+
| `easyeda_schematic_components` | List components with ref, value, footprint, LCSC, datasheet |
|
|
223
|
+
| `easyeda_schematic_net_detail` | Full detail for a specific net |
|
|
224
|
+
| `easyeda_schematic_search_device` | Search EasyEDA library devices |
|
|
225
|
+
| `easyeda_schematic_place_component` | Place a library component on the active schematic sheet |
|
|
226
|
+
| `easyeda_schematic_add_wire` | Add a schematic wire segment |
|
|
227
|
+
| `easyeda_schematic_delete_primitive` | Delete schematic components or wires by primitive ID |
|
|
228
|
+
| `easyeda_schematic_modify_primitive` | Modify schematic component or wire properties |
|
|
229
|
+
|
|
230
|
+
The schematic write APIs use EasyEDA Pro extension APIs that EasyEDA currently marks as beta. The bridge checks for the documented API class names at runtime and returns an explicit error when the installed EasyEDA Pro build does not expose a required method.
|
|
187
231
|
|
|
188
232
|
### L1 — BOM (core)
|
|
189
233
|
|
|
@@ -235,7 +279,7 @@ All 25 tools are available via the MCP server. Tools are filtered by the active
|
|
|
235
279
|
│ (via Plugin) │ Protocol │ └───────────────┘ │
|
|
236
280
|
└─────────────────┘ │ ┌───────────────┐ │
|
|
237
281
|
│ │ ToolRegistry │ │
|
|
238
|
-
│ │ (
|
|
282
|
+
│ │ (34 tools) │ │
|
|
239
283
|
│ └───────────────┘ │
|
|
240
284
|
│ ┌───────────────┐ │
|
|
241
285
|
│ │ Storage │──┼──► SQLite
|
|
@@ -281,7 +325,7 @@ pnpm typecheck # TypeScript
|
|
|
281
325
|
pnpm lint # ESLint
|
|
282
326
|
|
|
283
327
|
# Test
|
|
284
|
-
pnpm test # Vitest (
|
|
328
|
+
pnpm test # Vitest (97 tests across 13 files)
|
|
285
329
|
pnpm test:coverage # With coverage report
|
|
286
330
|
|
|
287
331
|
# Build & run
|
|
@@ -310,7 +354,7 @@ src/
|
|
|
310
354
|
│ └── transports/
|
|
311
355
|
│ └── http.ts # HTTP/Streamable HTTP transport
|
|
312
356
|
├── storage/ # Node.js sqlite storage (cache, artifacts)
|
|
313
|
-
├── tools/ #
|
|
357
|
+
├── tools/ # 34 MCP tool definitions (6 groups)
|
|
314
358
|
│ ├── register.ts, registry.ts, types.ts
|
|
315
359
|
│ ├── L0_diagnostics.ts, L1_schematic.ts, L1_bom.ts
|
|
316
360
|
│ ├── L1_drc_erc.ts, L1_board.ts, L1_export.ts
|
package/dist/bridge/manager.js
CHANGED
|
@@ -68,28 +68,24 @@ export class BridgeManager extends EventEmitter {
|
|
|
68
68
|
});
|
|
69
69
|
this.wss = wss;
|
|
70
70
|
this._activePort = port;
|
|
71
|
-
wss.once('listening', () =>
|
|
71
|
+
wss.once('listening', () => {
|
|
72
|
+
wss.on('error', (err) => {
|
|
73
|
+
getLogger().error({ err }, 'bridge server error');
|
|
74
|
+
this.emit('error', err);
|
|
75
|
+
});
|
|
76
|
+
resolve();
|
|
77
|
+
});
|
|
72
78
|
wss.once('error', (err) => {
|
|
73
79
|
this.wss = null;
|
|
74
80
|
this._activePort = 0;
|
|
75
81
|
reject(err);
|
|
76
82
|
});
|
|
77
|
-
wss.on('error', (err) => {
|
|
78
|
-
getLogger().error({ err }, 'bridge server error');
|
|
79
|
-
this.emit('error', err);
|
|
80
|
-
});
|
|
81
83
|
wss.on('connection', (ws) => this.handleConnection(ws));
|
|
82
84
|
});
|
|
83
85
|
}
|
|
84
86
|
handleConnection(ws) {
|
|
85
87
|
const logger = getLogger();
|
|
86
88
|
logger.info('new bridge client connection');
|
|
87
|
-
// Only allow one connected client at a time
|
|
88
|
-
if (this.ws) {
|
|
89
|
-
logger.warn('rejecting concurrent bridge connection');
|
|
90
|
-
ws.close(4000, 'Only one client allowed');
|
|
91
|
-
return;
|
|
92
|
-
}
|
|
93
89
|
ws.on('message', (raw) => {
|
|
94
90
|
try {
|
|
95
91
|
const data = JSON.parse(raw.toString());
|
|
@@ -105,6 +101,14 @@ export class BridgeManager extends EventEmitter {
|
|
|
105
101
|
ws.close(4001, 'Invalid session token');
|
|
106
102
|
return;
|
|
107
103
|
}
|
|
104
|
+
const previousWs = this.ws;
|
|
105
|
+
const prevState = this.state;
|
|
106
|
+
if (previousWs && previousWs !== ws) {
|
|
107
|
+
logger.info('replacing existing bridge client connection');
|
|
108
|
+
this.rejectPending(new Error('Bridge connection replaced by a new client.'));
|
|
109
|
+
previousWs.close(4000, 'Replaced by new bridge client');
|
|
110
|
+
this.stopHeartbeat();
|
|
111
|
+
}
|
|
108
112
|
this.ws = ws;
|
|
109
113
|
this.state = 'connected';
|
|
110
114
|
this._connectedAtMs = Date.now();
|
|
@@ -118,7 +122,9 @@ export class BridgeManager extends EventEmitter {
|
|
|
118
122
|
};
|
|
119
123
|
// Reply with hello
|
|
120
124
|
ws.send(JSON.stringify(this.hello));
|
|
121
|
-
|
|
125
|
+
if (prevState !== 'connected') {
|
|
126
|
+
this.emit('stateChanged', 'connected', prevState);
|
|
127
|
+
}
|
|
122
128
|
this.emit('connected', this.hello);
|
|
123
129
|
this.startHeartbeat();
|
|
124
130
|
}
|
|
@@ -135,10 +141,16 @@ export class BridgeManager extends EventEmitter {
|
|
|
135
141
|
}
|
|
136
142
|
});
|
|
137
143
|
ws.on('close', (code, reason) => {
|
|
144
|
+
if (this.ws !== ws) {
|
|
145
|
+
logger.debug({ code, reason: reason.toString() }, 'stale bridge client disconnected');
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
138
148
|
logger.info({ code, reason: reason.toString() }, 'bridge client disconnected');
|
|
139
149
|
this.ws = null;
|
|
140
150
|
const prevState = this.state;
|
|
141
151
|
this.state = 'connecting';
|
|
152
|
+
this._connectedAtMs = 0;
|
|
153
|
+
this.hello = null;
|
|
142
154
|
this.rejectPending(new Error(`Bridge disconnected: ${reason.toString() || 'connection closed'}`));
|
|
143
155
|
this.emit('stateChanged', this.state, prevState);
|
|
144
156
|
this.emit('disconnected', reason.toString() || 'connection closed');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/bridge/manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/bridge/manager.ts"],"names":[],"mappings":"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"}
|
package/dist/bridge/types.d.ts
CHANGED
|
@@ -5,6 +5,14 @@ export declare const EasyedaApiMethodSchema: z.ZodEnum<{
|
|
|
5
5
|
"project.export": "project.export";
|
|
6
6
|
"schematic.listNets": "schematic.listNets";
|
|
7
7
|
"schematic.listComponents": "schematic.listComponents";
|
|
8
|
+
"schematic.searchDevice": "schematic.searchDevice";
|
|
9
|
+
"schematic.placeComponent": "schematic.placeComponent";
|
|
10
|
+
"schematic.addWire": "schematic.addWire";
|
|
11
|
+
"schematic.deletePrimitive": "schematic.deletePrimitive";
|
|
12
|
+
"schematic.modifyPrimitive": "schematic.modifyPrimitive";
|
|
13
|
+
"system.apiInventory": "system.apiInventory";
|
|
14
|
+
"system.inspectComponents": "system.inspectComponents";
|
|
15
|
+
"api.call": "api.call";
|
|
8
16
|
"board.listLayers": "board.listLayers";
|
|
9
17
|
"board.getStackup": "board.getStackup";
|
|
10
18
|
"board.getDimensions": "board.getDimensions";
|
package/dist/bridge/types.js
CHANGED
|
@@ -5,6 +5,14 @@ export const EasyedaApiMethodSchema = z.enum([
|
|
|
5
5
|
'project.export',
|
|
6
6
|
'schematic.listNets',
|
|
7
7
|
'schematic.listComponents',
|
|
8
|
+
'schematic.searchDevice',
|
|
9
|
+
'schematic.placeComponent',
|
|
10
|
+
'schematic.addWire',
|
|
11
|
+
'schematic.deletePrimitive',
|
|
12
|
+
'schematic.modifyPrimitive',
|
|
13
|
+
'system.apiInventory',
|
|
14
|
+
'system.inspectComponents',
|
|
15
|
+
'api.call',
|
|
8
16
|
'board.listLayers',
|
|
9
17
|
'board.getStackup',
|
|
10
18
|
'board.getDimensions',
|
package/dist/bridge/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/bridge/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,IAAI,CAAC;IAC3C,cAAc;IACd,cAAc;IACd,gBAAgB;IAChB,oBAAoB;IACpB,0BAA0B;IAC1B,kBAAkB;IAClB,kBAAkB;IAClB,qBAAqB;IACrB,mBAAmB;IACnB,qBAAqB;IACrB,cAAc;IACd,cAAc;IACd,kBAAkB;IAClB,oBAAoB;IACpB,kBAAkB;IAClB,YAAY;IACZ,YAAY;IACZ,kBAAkB;CACnB,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/bridge/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,IAAI,CAAC;IAC3C,cAAc;IACd,cAAc;IACd,gBAAgB;IAChB,oBAAoB;IACpB,0BAA0B;IAC1B,wBAAwB;IACxB,0BAA0B;IAC1B,mBAAmB;IACnB,2BAA2B;IAC3B,2BAA2B;IAC3B,qBAAqB;IACrB,0BAA0B;IAC1B,UAAU;IACV,kBAAkB;IAClB,kBAAkB;IAClB,qBAAqB;IACrB,mBAAmB;IACnB,qBAAqB;IACrB,cAAc;IACd,cAAc;IACd,kBAAkB;IAClB,oBAAoB;IACpB,kBAAkB;IAClB,YAAY;IACZ,YAAY;IACZ,kBAAkB;CACnB,CAAC,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
type CliCommand = 'server' | 'setup-local' | 'doctor' | 'help' | 'version';
|
|
2
|
+
export interface ParsedCliArgs {
|
|
3
|
+
command: CliCommand;
|
|
4
|
+
}
|
|
5
|
+
export interface LocalSetupInfo {
|
|
6
|
+
packageName: string;
|
|
7
|
+
packageVersion: string;
|
|
8
|
+
packageRoot: string;
|
|
9
|
+
serverEntryPath: string;
|
|
10
|
+
extensionPackagePath: string;
|
|
11
|
+
serverEntryExists: boolean;
|
|
12
|
+
extensionPackageExists: boolean;
|
|
13
|
+
}
|
|
14
|
+
interface DoctorPortResult {
|
|
15
|
+
port: number;
|
|
16
|
+
reachable: boolean;
|
|
17
|
+
}
|
|
18
|
+
export interface DoctorReport {
|
|
19
|
+
setup: LocalSetupInfo;
|
|
20
|
+
nodeVersion: string;
|
|
21
|
+
nodeSupported: boolean;
|
|
22
|
+
envValid: boolean;
|
|
23
|
+
envIssues: string[];
|
|
24
|
+
bridgeHost: string;
|
|
25
|
+
bridgePorts: DoctorPortResult[];
|
|
26
|
+
}
|
|
27
|
+
export declare function parseCliArgs(args: string[]): ParsedCliArgs;
|
|
28
|
+
export declare function formatSetupLocalReport(setup?: LocalSetupInfo): string;
|
|
29
|
+
export declare function createDoctorReport(packageRoot?: string): Promise<DoctorReport>;
|
|
30
|
+
export declare function formatDoctorReport(report: DoctorReport): string;
|
|
31
|
+
export declare function formatHelp(): string;
|
|
32
|
+
export declare function formatVersion(packageRoot?: string): string;
|
|
33
|
+
export {};
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
2
|
+
import { connect as createConnection } from 'node:net';
|
|
3
|
+
import { join } from 'node:path';
|
|
4
|
+
import { fileURLToPath } from 'node:url';
|
|
5
|
+
import { EnvSchema } from '../config/env.js';
|
|
6
|
+
import { parsePortScanSpec } from '../bridge/manager.js';
|
|
7
|
+
export function parseCliArgs(args) {
|
|
8
|
+
const first = args[0];
|
|
9
|
+
if (!first)
|
|
10
|
+
return { command: 'server' };
|
|
11
|
+
switch (first) {
|
|
12
|
+
case '--setup-local':
|
|
13
|
+
case 'setup-local':
|
|
14
|
+
return { command: 'setup-local' };
|
|
15
|
+
case '--doctor':
|
|
16
|
+
case 'doctor':
|
|
17
|
+
return { command: 'doctor' };
|
|
18
|
+
case '--help':
|
|
19
|
+
case '-h':
|
|
20
|
+
case 'help':
|
|
21
|
+
return { command: 'help' };
|
|
22
|
+
case '--version':
|
|
23
|
+
case '-v':
|
|
24
|
+
case 'version':
|
|
25
|
+
return { command: 'version' };
|
|
26
|
+
default:
|
|
27
|
+
return { command: 'server' };
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function resolvePackageRoot(metaUrl = import.meta.url) {
|
|
31
|
+
return fileURLToPath(new URL('../../', metaUrl));
|
|
32
|
+
}
|
|
33
|
+
function getLocalSetupInfo(packageRoot = resolvePackageRoot()) {
|
|
34
|
+
const packageInfo = readPackageInfo(packageRoot);
|
|
35
|
+
const serverEntryPath = join(packageRoot, 'dist', 'index.js');
|
|
36
|
+
const extensionPackagePath = join(packageRoot, 'easyeda-bridge-extension.eext');
|
|
37
|
+
return {
|
|
38
|
+
packageName: packageInfo.name,
|
|
39
|
+
packageVersion: packageInfo.version,
|
|
40
|
+
packageRoot,
|
|
41
|
+
serverEntryPath,
|
|
42
|
+
extensionPackagePath,
|
|
43
|
+
serverEntryExists: existsSync(serverEntryPath),
|
|
44
|
+
extensionPackageExists: existsSync(extensionPackagePath),
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
export function formatSetupLocalReport(setup = getLocalSetupInfo()) {
|
|
48
|
+
return [
|
|
49
|
+
'easyeda-mcp-pro local setup',
|
|
50
|
+
'',
|
|
51
|
+
`Package: ${setup.packageName}@${setup.packageVersion}`,
|
|
52
|
+
`MCP server entry: ${status(setup.serverEntryExists)} ${setup.serverEntryPath}`,
|
|
53
|
+
`EasyEDA extension package: ${status(setup.extensionPackageExists)} ${setup.extensionPackagePath}`,
|
|
54
|
+
'',
|
|
55
|
+
'MCP client config (local build, auto-starts the server):',
|
|
56
|
+
stringifyConfig({
|
|
57
|
+
mcpServers: {
|
|
58
|
+
'easyeda-mcp-pro': {
|
|
59
|
+
command: 'node',
|
|
60
|
+
args: [setup.serverEntryPath],
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
}),
|
|
64
|
+
'',
|
|
65
|
+
'MCP client config (npm/npx, after package publish):',
|
|
66
|
+
stringifyConfig({
|
|
67
|
+
mcpServers: {
|
|
68
|
+
'easyeda-mcp-pro': {
|
|
69
|
+
command: 'npx',
|
|
70
|
+
args: ['-y', `${setup.packageName}@latest`],
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
}),
|
|
74
|
+
'',
|
|
75
|
+
'Next steps:',
|
|
76
|
+
'1. Install or reload the EasyEDA extension package above.',
|
|
77
|
+
'2. Add one MCP config block to your MCP client.',
|
|
78
|
+
'3. Open an EasyEDA Pro project, then use MCP Bridge > Connect.',
|
|
79
|
+
'4. Do not run node dist/index.js manually when your MCP client auto-starts it.',
|
|
80
|
+
].join('\n');
|
|
81
|
+
}
|
|
82
|
+
export async function createDoctorReport(packageRoot = resolvePackageRoot()) {
|
|
83
|
+
const setup = getLocalSetupInfo(packageRoot);
|
|
84
|
+
const env = parseCliEnv();
|
|
85
|
+
const bridgeHost = env.config?.BRIDGE_HOST ?? '127.0.0.1';
|
|
86
|
+
const ports = parsePortScanSpec(env.config?.BRIDGE_PORT_SCAN ?? '18601');
|
|
87
|
+
const bridgePorts = [];
|
|
88
|
+
for (const port of ports.slice(0, 20)) {
|
|
89
|
+
bridgePorts.push({
|
|
90
|
+
port,
|
|
91
|
+
reachable: await checkTcpPort(bridgeHost, port),
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
return {
|
|
95
|
+
setup,
|
|
96
|
+
nodeVersion: process.versions.node,
|
|
97
|
+
nodeSupported: isSupportedNodeVersion(process.versions.node),
|
|
98
|
+
envValid: env.issues.length === 0,
|
|
99
|
+
envIssues: env.issues,
|
|
100
|
+
bridgeHost,
|
|
101
|
+
bridgePorts,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
export function formatDoctorReport(report) {
|
|
105
|
+
const reachable = report.bridgePorts.find((port) => port.reachable);
|
|
106
|
+
const bridgeStatus = reachable
|
|
107
|
+
? `reachable on ${report.bridgeHost}:${reachable.port}`
|
|
108
|
+
: `offline on ${report.bridgeHost}:${report.bridgePorts.map((port) => port.port).join(',')}`;
|
|
109
|
+
return [
|
|
110
|
+
'easyeda-mcp-pro doctor',
|
|
111
|
+
'',
|
|
112
|
+
`Node.js: ${status(report.nodeSupported)} ${report.nodeVersion} (supported: >=24 <27)`,
|
|
113
|
+
`Environment: ${status(report.envValid)}${report.envIssues.length ? ` ${report.envIssues.join('; ')}` : ''}`,
|
|
114
|
+
`MCP server entry: ${status(report.setup.serverEntryExists)} ${report.setup.serverEntryPath}`,
|
|
115
|
+
`EasyEDA extension package: ${status(report.setup.extensionPackageExists)} ${report.setup.extensionPackagePath}`,
|
|
116
|
+
`Bridge server: ${reachable ? 'OK' : 'INFO'} ${bridgeStatus}`,
|
|
117
|
+
'',
|
|
118
|
+
reachable
|
|
119
|
+
? 'Bridge server is running. If EasyEDA is not connected, reload the extension and click MCP Bridge > Connect.'
|
|
120
|
+
: 'Bridge server is not running yet. This is normal until your MCP client starts easyeda-mcp-pro.',
|
|
121
|
+
].join('\n');
|
|
122
|
+
}
|
|
123
|
+
export function formatHelp() {
|
|
124
|
+
return [
|
|
125
|
+
'easyeda-mcp-pro',
|
|
126
|
+
'',
|
|
127
|
+
'Usage:',
|
|
128
|
+
' easyeda-mcp-pro Start the MCP server using stdio/http config',
|
|
129
|
+
' easyeda-mcp-pro --setup-local Print MCP client config and extension package path',
|
|
130
|
+
' easyeda-mcp-pro --doctor Check local runtime, package, and bridge status',
|
|
131
|
+
' easyeda-mcp-pro --version Print package version',
|
|
132
|
+
].join('\n');
|
|
133
|
+
}
|
|
134
|
+
export function formatVersion(packageRoot = resolvePackageRoot()) {
|
|
135
|
+
const packageInfo = readPackageInfo(packageRoot);
|
|
136
|
+
return `${packageInfo.name}@${packageInfo.version}`;
|
|
137
|
+
}
|
|
138
|
+
async function checkTcpPort(host, port, timeoutMs = 750) {
|
|
139
|
+
return new Promise((resolve) => {
|
|
140
|
+
const socket = createConnection({ host, port });
|
|
141
|
+
let settled = false;
|
|
142
|
+
const finish = (reachable) => {
|
|
143
|
+
if (settled)
|
|
144
|
+
return;
|
|
145
|
+
settled = true;
|
|
146
|
+
socket.destroy();
|
|
147
|
+
resolve(reachable);
|
|
148
|
+
};
|
|
149
|
+
socket.setTimeout(timeoutMs);
|
|
150
|
+
socket.once('connect', () => finish(true));
|
|
151
|
+
socket.once('timeout', () => finish(false));
|
|
152
|
+
socket.once('error', () => finish(false));
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
function parseCliEnv() {
|
|
156
|
+
const result = EnvSchema.safeParse(process.env);
|
|
157
|
+
if (result.success)
|
|
158
|
+
return { config: result.data, issues: [] };
|
|
159
|
+
return {
|
|
160
|
+
issues: result.error.issues.map((issue) => `${issue.path.join('.')}: ${issue.message}`),
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
function readPackageInfo(packageRoot) {
|
|
164
|
+
const raw = readFileSync(join(packageRoot, 'package.json'), 'utf8');
|
|
165
|
+
const parsed = JSON.parse(raw);
|
|
166
|
+
return {
|
|
167
|
+
name: parsed.name ?? 'easyeda-mcp-pro',
|
|
168
|
+
version: parsed.version ?? '0.0.0',
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
function isSupportedNodeVersion(version) {
|
|
172
|
+
const major = Number(version.split('.')[0]);
|
|
173
|
+
return Number.isInteger(major) && major >= 24 && major < 27;
|
|
174
|
+
}
|
|
175
|
+
function status(ok) {
|
|
176
|
+
return ok ? 'OK' : 'MISSING';
|
|
177
|
+
}
|
|
178
|
+
function stringifyConfig(value) {
|
|
179
|
+
return JSON.stringify(value, null, 2);
|
|
180
|
+
}
|
|
181
|
+
//# sourceMappingURL=local-setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-setup.js","sourceRoot":"","sources":["../../src/cli/local-setup.ts"],"names":[],"mappings":"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"}
|
package/dist/config/env.js
CHANGED
|
@@ -26,7 +26,7 @@ export const EnvSchema = z.object({
|
|
|
26
26
|
MCP_V2_EXPERIMENTAL: envBoolean().default(false),
|
|
27
27
|
BRIDGE_HOST: z.string().default('127.0.0.1'),
|
|
28
28
|
BRIDGE_PORT: z.coerce.number().int().min(1).max(65535).default(18601),
|
|
29
|
-
BRIDGE_PORT_SCAN: z.string().default('18601,
|
|
29
|
+
BRIDGE_PORT_SCAN: z.string().default('18601,50100-50110'),
|
|
30
30
|
BRIDGE_TIMEOUT_MS: z.coerce.number().int().min(1000).max(120000).default(15000),
|
|
31
31
|
BRIDGE_HEARTBEAT_MS: z.coerce.number().int().min(1000).max(60000).default(10000),
|
|
32
32
|
BRIDGE_RECONNECT_INTERVAL_MS: z.coerce.number().int().min(1000).max(30000).default(3000),
|
package/dist/config/profiles.js
CHANGED
|
@@ -2,29 +2,29 @@ export const PROFILE_DEFINITIONS = {
|
|
|
2
2
|
core: {
|
|
3
3
|
name: 'core',
|
|
4
4
|
label: 'Core',
|
|
5
|
-
description: 'High-confidence tools: diagnostics, schematic, BOM, DRC/ERC, board layers/stackup, Gerber export',
|
|
6
|
-
approxToolCount: '
|
|
5
|
+
description: 'High-confidence tools: diagnostics, EasyEDA API inventory, schematic, BOM, DRC/ERC, board layers/stackup, Gerber export',
|
|
6
|
+
approxToolCount: '28',
|
|
7
7
|
isDefault: true,
|
|
8
8
|
},
|
|
9
9
|
pro: {
|
|
10
10
|
name: 'pro',
|
|
11
11
|
label: 'Pro',
|
|
12
12
|
description: 'Adds pick-and-place, PDF, netlist export for manufacturing workflows',
|
|
13
|
-
approxToolCount: '
|
|
13
|
+
approxToolCount: '31',
|
|
14
14
|
isDefault: false,
|
|
15
15
|
},
|
|
16
16
|
full: {
|
|
17
17
|
name: 'full',
|
|
18
18
|
label: 'Full',
|
|
19
|
-
description: '
|
|
20
|
-
approxToolCount: '
|
|
19
|
+
description: 'Adds controlled documented EasyEDA API method calls for full runtime control without raw JavaScript execution',
|
|
20
|
+
approxToolCount: '32',
|
|
21
21
|
isDefault: false,
|
|
22
22
|
},
|
|
23
23
|
dev: {
|
|
24
24
|
name: 'dev',
|
|
25
25
|
label: 'Dev',
|
|
26
|
-
description: '
|
|
27
|
-
approxToolCount: '
|
|
26
|
+
description: 'Adds diagnostics probes for bridge methods and live component runtime shape inspection',
|
|
27
|
+
approxToolCount: '34',
|
|
28
28
|
isDefault: false,
|
|
29
29
|
},
|
|
30
30
|
experimental: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../src/config/profiles.ts"],"names":[],"mappings":"AAUA,MAAM,CAAC,MAAM,mBAAmB,GAA2C;IACzE,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,MAAM;QACb,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../src/config/profiles.ts"],"names":[],"mappings":"AAUA,MAAM,CAAC,MAAM,mBAAmB,GAA2C;IACzE,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,MAAM;QACb,WAAW,EACT,yHAAyH;QAC3H,eAAe,EAAE,IAAI;QACrB,SAAS,EAAE,IAAI;KAChB;IACD,GAAG,EAAE;QACH,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,KAAK;QACZ,WAAW,EAAE,sEAAsE;QACnF,eAAe,EAAE,IAAI;QACrB,SAAS,EAAE,KAAK;KACjB;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,MAAM;QACb,WAAW,EACT,+GAA+G;QACjH,eAAe,EAAE,IAAI;QACrB,SAAS,EAAE,KAAK;KACjB;IACD,GAAG,EAAE;QACH,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,KAAK;QACZ,WAAW,EACT,wFAAwF;QAC1F,eAAe,EAAE,IAAI;QACrB,SAAS,EAAE,KAAK;KACjB;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,0DAA0D;QACvE,eAAe,EAAE,UAAU;QAC3B,SAAS,EAAE,KAAK;KACjB;CACF,CAAC;AAEF,MAAM,UAAU,kBAAkB,CAAC,MAAmB;IACpD,MAAM,KAAK,GAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;IAC5E,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,IAAI,GAAG,KAAK,CAAC,CAAC;QAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;AACjC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const SERVER_VERSION = "0.3.1";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/config/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,26 @@
|
|
|
1
1
|
import 'dotenv/config';
|
|
2
|
+
import { createDoctorReport, formatDoctorReport, formatHelp, formatSetupLocalReport, formatVersion, parseCliArgs, } from './cli/local-setup.js';
|
|
2
3
|
import { loadEnvConfig } from './config/env.js';
|
|
3
4
|
import { createServer } from './server/factory.js';
|
|
4
5
|
import { createHttpTransport } from './server/transports/http.js';
|
|
5
6
|
async function main() {
|
|
7
|
+
const cli = parseCliArgs(process.argv.slice(2));
|
|
8
|
+
if (cli.command === 'setup-local') {
|
|
9
|
+
process.stdout.write(`${formatSetupLocalReport()}\n`);
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
if (cli.command === 'doctor') {
|
|
13
|
+
process.stdout.write(`${formatDoctorReport(await createDoctorReport())}\n`);
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
if (cli.command === 'help') {
|
|
17
|
+
process.stdout.write(`${formatHelp()}\n`);
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
if (cli.command === 'version') {
|
|
21
|
+
process.stdout.write(`${formatVersion()}\n`);
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
6
24
|
const config = loadEnvConfig();
|
|
7
25
|
const instance = await createServer(config);
|
|
8
26
|
if (config.TRANSPORT === 'http') {
|