easyeda-mcp-pro 0.17.0 → 0.17.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 +80 -13
- package/dist/config/version.d.ts +1 -1
- package/dist/config/version.js +1 -1
- package/easyeda-bridge-extension.eext +0 -0
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -1,19 +1,49 @@
|
|
|
1
|
-
|
|
1
|
+
<div align="center">
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
# easyeda-mcp-pro
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
[](https://www.bestpractices.dev/projects/13406)
|
|
9
|
-
[](https://deepwiki.com/oaslananka/easyeda-mcp-pro)
|
|
5
|
+
<p>
|
|
6
|
+
Production-grade MCP server for EasyEDA Pro: safe PCB design inspection, BOM sourcing, manufacturing export, and AI-assisted hardware review.
|
|
7
|
+
</p>
|
|
10
8
|
|
|
11
|
-
<p
|
|
12
|
-
<a href="https://
|
|
13
|
-
<img src="https://
|
|
9
|
+
<p>
|
|
10
|
+
<a href="https://github.com/oaslananka/easyeda-mcp-pro/actions/workflows/ci.yml">
|
|
11
|
+
<img src="https://github.com/oaslananka/easyeda-mcp-pro/actions/workflows/ci.yml/badge.svg" alt="CI status" />
|
|
12
|
+
</a>
|
|
13
|
+
<a href="https://www.npmjs.com/package/easyeda-mcp-pro">
|
|
14
|
+
<img src="https://img.shields.io/npm/v/easyeda-mcp-pro.svg?logo=npm" alt="npm version" />
|
|
15
|
+
</a>
|
|
16
|
+
<a href="https://www.npmjs.com/package/easyeda-mcp-pro">
|
|
17
|
+
<img src="https://img.shields.io/npm/dt/easyeda-mcp-pro?logo=npm&label=total%20downloads" alt="npm total downloads" />
|
|
18
|
+
</a>
|
|
19
|
+
<a href="https://www.npmjs.com/package/easyeda-mcp-pro">
|
|
20
|
+
<img src="https://img.shields.io/node/v/easyeda-mcp-pro" alt="supported Node.js version" />
|
|
21
|
+
</a>
|
|
22
|
+
<a href="https://opensource.org/licenses/MIT">
|
|
23
|
+
<img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT" />
|
|
24
|
+
</a>
|
|
25
|
+
<a href="https://www.bestpractices.dev/projects/13406">
|
|
26
|
+
<img src="https://www.bestpractices.dev/projects/13406/badge" alt="OpenSSF Best Practices" />
|
|
27
|
+
</a>
|
|
28
|
+
<a href="https://github.com/oaslananka/easyeda-mcp-pro/security/policy">
|
|
29
|
+
<img src="https://img.shields.io/badge/security-policy-blue" alt="Security policy" />
|
|
30
|
+
</a>
|
|
31
|
+
<a href="https://deepwiki.com/oaslananka/easyeda-mcp-pro">
|
|
32
|
+
<img src="https://deepwiki.com/badge.svg" alt="Ask DeepWiki" />
|
|
14
33
|
</a>
|
|
15
34
|
</p>
|
|
16
35
|
|
|
36
|
+
<p>
|
|
37
|
+
<strong>Compliance docs:</strong>
|
|
38
|
+
<a href="THIRD_PARTY_NOTICES.md">Third-Party Notices</a>
|
|
39
|
+
·
|
|
40
|
+
<a href="docs/vendor-terms.md">Vendor Terms and Unsupported Workflows</a>
|
|
41
|
+
·
|
|
42
|
+
<a href="docs/OPENSSF_BEST_PRACTICES.md">OpenSSF Best Practices</a>
|
|
43
|
+
</p>
|
|
44
|
+
|
|
45
|
+
</div>
|
|
46
|
+
|
|
17
47
|
---
|
|
18
48
|
|
|
19
49
|
## Quick Start
|
|
@@ -46,7 +76,7 @@ For advanced configurations, manual instructions, and specific clients, see [Ins
|
|
|
46
76
|
|
|
47
77
|
## Overview
|
|
48
78
|
|
|
49
|
-
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
|
|
79
|
+
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 up to 60 profile-gated MCP tools for schematic inspection and editing, controlled EasyEDA Pro API calls, BOM management, design rule checks, PCB board analysis, fabrication exports, diagnostics, and supplier integration.
|
|
50
80
|
|
|
51
81
|
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.
|
|
52
82
|
|
|
@@ -456,6 +486,24 @@ When `OAUTH_ENABLED=true`, every request to `/mcp` must include an `Authorizatio
|
|
|
456
486
|
|
|
457
487
|
The server enforces startup safety checks: **non-loopback `HTTP_HOST` without OAuth is rejected**, and `HTTP_AUTH_DISABLED=true` is rejected outside non-production loopback deployments.
|
|
458
488
|
|
|
489
|
+
### Docker defaults
|
|
490
|
+
|
|
491
|
+
The Docker image starts in HTTP mode with `HTTP_HOST=127.0.0.1` so the default container boot path is safe and passes the same startup safety checks as local HTTP mode. For an externally reachable container, override the bind address and configure OAuth plus an explicit origin allowlist:
|
|
492
|
+
|
|
493
|
+
```bash
|
|
494
|
+
docker run --rm \
|
|
495
|
+
-e HTTP_HOST=0.0.0.0 \
|
|
496
|
+
-e ALLOWED_ORIGINS=https://your-client.example.com \
|
|
497
|
+
-e OAUTH_ENABLED=true \
|
|
498
|
+
-e OAUTH_ISSUER=https://issuer.example.com/ \
|
|
499
|
+
-e OAUTH_JWKS_URI=https://issuer.example.com/.well-known/jwks.json \
|
|
500
|
+
-e OAUTH_AUDIENCE=easyeda-mcp-pro \
|
|
501
|
+
-p 127.0.0.1:3000:3000 \
|
|
502
|
+
ghcr.io/oaslananka/easyeda-mcp-pro:latest
|
|
503
|
+
```
|
|
504
|
+
|
|
505
|
+
Do not expose non-loopback HTTP without OAuth. Use a reverse proxy or platform gateway for TLS termination and external access.
|
|
506
|
+
|
|
459
507
|
#### HTTP Security Features
|
|
460
508
|
|
|
461
509
|
- **Rate limiting**: Per-IP sliding window (configurable via `HTTP_RATE_LIMIT_MAX`), returns `429 Too Many Requests` with retry-after header
|
|
@@ -468,7 +516,14 @@ See `.env.example` for the complete list of configuration variables.
|
|
|
468
516
|
|
|
469
517
|
## MCP Tools
|
|
470
518
|
|
|
471
|
-
The server currently registers
|
|
519
|
+
The server currently registers up to 60 profile-gated tools. Tools are filtered by the active `TOOL_PROFILE`:
|
|
520
|
+
|
|
521
|
+
- `core`: 42 tools
|
|
522
|
+
- `pro`: 47 tools
|
|
523
|
+
- `full`: 56 tools
|
|
524
|
+
- `dev`: 60 tools
|
|
525
|
+
|
|
526
|
+
`core` exposes the standard workflow tools, `pro` adds manufacturing exports, `full` adds controlled documented EasyEDA API calls, and `dev` adds runtime probes for debugging.
|
|
472
527
|
|
|
473
528
|
Capability scopes add a second authorization layer when `TOOL_SCOPES` is set. Leave it empty for the default local all-capabilities mode, or restrict it with comma/space separated scopes such as `diagnostics:read`, `schematic:read`, `schematic:write`, `bom:read`, `bom:source`, `checks:read`, `pcb:read`, `pcb:write`, `export:write`, `api:read`, `api:write`, and `bridge:execute`.
|
|
474
529
|
|
|
@@ -568,7 +623,7 @@ The schematic write APIs use EasyEDA Pro extension APIs that EasyEDA currently m
|
|
|
568
623
|
│ (via Plugin) │ Protocol │ └───────────────┘ │
|
|
569
624
|
└─────────────────┘ │ ┌───────────────┐ │
|
|
570
625
|
│ │ ToolRegistry │ │
|
|
571
|
-
│ │
|
|
626
|
+
│ │ (up to 60 tools) │ │
|
|
572
627
|
│ └───────────────┘ │
|
|
573
628
|
│ ┌───────────────┐ │
|
|
574
629
|
│ │ Storage │──┼──► SQLite
|
|
@@ -712,6 +767,18 @@ This repository uses automated workflows to manage dependencies and releases:
|
|
|
712
767
|
|
|
713
768
|
---
|
|
714
769
|
|
|
770
|
+
## Support the project
|
|
771
|
+
|
|
772
|
+
If this project helps you save time while working with EasyEDA Pro, BOM workflows, or MCP integrations, you can support ongoing development here:
|
|
773
|
+
|
|
774
|
+
<p align="left">
|
|
775
|
+
<a href="https://www.buymeacoffee.com/oaslananka">
|
|
776
|
+
<img src="https://img.buymeacoffee.com/button-api/?text=Buy%20me%20a%20coffee&emoji=%E2%98%95&slug=oaslananka&button_colour=FFDD00&font_colour=000000&font_family=Inter&outline_colour=000000&coffee_colour=ffffff" alt="Buy me a coffee" />
|
|
777
|
+
</a>
|
|
778
|
+
</p>
|
|
779
|
+
|
|
780
|
+
---
|
|
781
|
+
|
|
715
782
|
## License
|
|
716
783
|
|
|
717
784
|
[MIT](LICENSE)
|
package/dist/config/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const SERVER_VERSION = "0.17.
|
|
1
|
+
export declare const SERVER_VERSION = "0.17.1";
|
package/dist/config/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const SERVER_VERSION = '0.17.
|
|
1
|
+
export const SERVER_VERSION = '0.17.1'; // x-release-please-version
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "easyeda-mcp-pro",
|
|
3
|
-
"version": "0.17.
|
|
3
|
+
"version": "0.17.1",
|
|
4
4
|
"mcpName": "io.github.oaslananka/easyeda-mcp-pro",
|
|
5
5
|
"description": "MCP server for EasyEDA Pro: PCB inspection, BOM, exports, and hardware review.",
|
|
6
6
|
"keywords": [
|
|
@@ -72,7 +72,8 @@
|
|
|
72
72
|
"check:metadata": "node scripts/check-metadata.mjs",
|
|
73
73
|
"inventory:capture": "tsx scripts/capture-runtime-inventory.mts",
|
|
74
74
|
"inventory:diff": "tsx scripts/diff-runtime-inventory.mts",
|
|
75
|
-
"eval:golden": "tsx scripts/run-evals.mts"
|
|
75
|
+
"eval:golden": "tsx scripts/run-evals.mts",
|
|
76
|
+
"eval:golden:update": "tsx scripts/run-evals.mts --update-baseline"
|
|
76
77
|
},
|
|
77
78
|
"dependencies": {
|
|
78
79
|
"@modelcontextprotocol/sdk": "^1.29.0",
|