open-edison 0.1.19__tar.gz → 0.1.26__tar.gz

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.
Files changed (36) hide show
  1. {open_edison-0.1.19 → open_edison-0.1.26}/.gitignore +2 -1
  2. {open_edison-0.1.19 → open_edison-0.1.26}/PKG-INFO +60 -41
  3. {open_edison-0.1.19 → open_edison-0.1.26}/README.md +59 -40
  4. {open_edison-0.1.19 → open_edison-0.1.26}/config.json +1 -1
  5. {open_edison-0.1.19 → open_edison-0.1.26}/desktop_ext/README.md +3 -3
  6. {open_edison-0.1.19 → open_edison-0.1.26}/docs/deployment/local.md +1 -1
  7. {open_edison-0.1.19 → open_edison-0.1.26}/docs/development/contributing.md +2 -2
  8. {open_edison-0.1.19 → open_edison-0.1.26}/pyproject.toml +1 -1
  9. {open_edison-0.1.19 → open_edison-0.1.26}/src/cli.py +2 -1
  10. {open_edison-0.1.19 → open_edison-0.1.26}/src/config.py +63 -51
  11. open_edison-0.1.26/src/events.py +153 -0
  12. open_edison-0.1.26/src/middleware/data_access_tracker.py +370 -0
  13. {open_edison-0.1.19 → open_edison-0.1.26}/src/middleware/session_tracking.py +93 -29
  14. open_edison-0.1.26/src/oauth_manager.py +281 -0
  15. open_edison-0.1.26/src/permissions.py +292 -0
  16. {open_edison-0.1.19 → open_edison-0.1.26}/src/server.py +484 -132
  17. open_edison-0.1.26/src/single_user_mcp.py +448 -0
  18. {open_edison-0.1.19 → open_edison-0.1.26}/src/telemetry.py +4 -40
  19. {open_edison-0.1.19 → open_edison-0.1.26}/tool_permissions.json +32 -126
  20. open_edison-0.1.19/src/middleware/data_access_tracker.py +0 -640
  21. open_edison-0.1.19/src/single_user_mcp.py +0 -386
  22. {open_edison-0.1.19 → open_edison-0.1.26}/LICENSE +0 -0
  23. {open_edison-0.1.19 → open_edison-0.1.26}/docs/README.md +0 -0
  24. {open_edison-0.1.19 → open_edison-0.1.26}/docs/architecture/single_user_design.md +0 -0
  25. {open_edison-0.1.19 → open_edison-0.1.26}/docs/core/configuration.md +0 -0
  26. {open_edison-0.1.19 → open_edison-0.1.26}/docs/core/project_structure.md +0 -0
  27. {open_edison-0.1.19 → open_edison-0.1.26}/docs/core/proxy_usage.md +0 -0
  28. {open_edison-0.1.19 → open_edison-0.1.26}/docs/deployment/docker.md +0 -0
  29. {open_edison-0.1.19 → open_edison-0.1.26}/docs/development/development_guide.md +0 -0
  30. {open_edison-0.1.19 → open_edison-0.1.26}/docs/development/testing.md +0 -0
  31. {open_edison-0.1.19 → open_edison-0.1.26}/docs/quick-reference/api_reference.md +0 -0
  32. {open_edison-0.1.19 → open_edison-0.1.26}/docs/quick-reference/config_quick_start.md +0 -0
  33. {open_edison-0.1.19 → open_edison-0.1.26}/prompt_permissions.json +0 -0
  34. {open_edison-0.1.19 → open_edison-0.1.26}/resource_permissions.json +0 -0
  35. {open_edison-0.1.19 → open_edison-0.1.26}/src/__init__.py +0 -0
  36. {open_edison-0.1.19 → open_edison-0.1.26}/src/__main__.py +0 -0
@@ -216,4 +216,5 @@ src/frontend_dist/
216
216
  frontend_dist/
217
217
  frontend/node_modules/
218
218
  frontend/package-lock.json
219
- .vscode
219
+ .vscode
220
+ install_id
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: open-edison
3
- Version: 0.1.19
3
+ Version: 0.1.26
4
4
  Summary: Open-source MCP security, aggregation, and monitoring. Single-user, self-hosted MCP proxy.
5
5
  Author-email: Hugo Berg <hugo@edison.watch>
6
6
  License-File: LICENSE
@@ -25,24 +25,40 @@ Requires-Dist: pytest>=8.3.3; extra == 'dev'
25
25
  Requires-Dist: ruff>=0.12.3; extra == 'dev'
26
26
  Description-Content-Type: text/markdown
27
27
 
28
- # OpenEdison
28
+ # OpenEdison 🔒⚡️
29
29
 
30
- Open-source single-user MCP security gateway that prevents data exfiltration—via direct access or tool chaining—with full monitoring for local single‑user deployments. Provides core functionality of <https://edison.watch> for local use.
30
+ MCP security gateway that prevents data exfiltration—via direct access or tool chaining—with full monitoring for local single‑user deployments. Provides core functionality of <https://edison.watch> for local use.
31
+
32
+ <p align="center">
33
+ <img src="media/trifecta520p.gif" alt="Trifecta Security Risk Animation" width="520">
34
+ </p>
31
35
 
32
36
  <div align="center">
33
- <h2>📧 Interested in connecting AI to your business software with proper access controls? <a href="mailto:hello@edison.watch">Contact us</a> to discuss.</h2>
37
+ <h2>📧 To get visibility, control and exfiltration blocker into AI's interaction with your company software, systems of record, DBs, <a href="mailto:hello@edison.watch">Contact us</a> to discuss.</h2>
34
38
  </div>
35
39
 
36
- ## Features
40
+ <p align="center">
41
+ <img alt="Project Version" src="https://img.shields.io/pypi/v/open-edison?label=version&color=blue">
42
+ <img alt="Python Version" src="https://img.shields.io/badge/python-3.12-blue?logo=python">
43
+ <img src="https://img.shields.io/badge/License-GPLv3-blue" alt="License">
44
+
45
+
46
+ </p>
47
+
48
+ ---
49
+
50
+
51
+ ## Features ✨
37
52
 
38
- - **Single-user MCP proxy** - No multi-user complexity, just a simple proxy for your MCP servers
39
- - **JSON configuration** - Easy to configure and manage your MCP servers
40
- - **Simple local frontend** - Track and monitor your MCP interactions, servers, and sessions.
41
- - **Session tracking** - Track and monitor your MCP interactions
42
- - **Simple API** - REST API for managing MCP servers and proxying requests
43
- - **Docker support** - Run in a container for easy deployment
53
+ - 🛑 **Prevent Data Leaks** - Edison automatically blocks any data leaks, even if your AI gets jailbroken
54
+ - 👤 **Single-user MCP proxy** - No multi-user complexity, just a simple proxy for your MCP servers
55
+ - 🗂️ **JSON configuration** - Easy to configure and manage your MCP servers
56
+ - 🖥️ **Simple local frontend** - Track and monitor your MCP interactions, servers, and sessions.
57
+ - 📊 **Session tracking** - Track and monitor your MCP interactions
58
+ - 🔗 **Simple API** - REST API for managing MCP servers and proxying requests
59
+ - 🐳 **Docker support** - Run in a container for easy deployment
44
60
 
45
- ## Quick Start
61
+ ## Quick Start 🚀
46
62
 
47
63
  The fastest way to get started:
48
64
 
@@ -55,7 +71,7 @@ curl -fsSL https://raw.githubusercontent.com/Edison-Watch/open-edison/main/curl_
55
71
  Run locally with uvx: `uvx open-edison --config-dir ~/edison-config`
56
72
 
57
73
  <details>
58
- <summary>Install Node.js/npm (optional for MCP tools)</summary>
74
+ <summary>⬇️ Install Node.js/npm (optional for MCP tools)</summary>
59
75
 
60
76
  If you need `npx` (for Node-based MCP tools like `mcp-remote`), install Node.js as well:
61
77
 
@@ -75,6 +91,7 @@ If you need `npx` (for Node-based MCP tools like `mcp-remote`), install Node.js
75
91
  - Node/npx: `winget install -e --id OpenJS.NodeJS`
76
92
 
77
93
  After installation, ensure that `npx` is available on PATH.
94
+ </details>
78
95
 
79
96
  <details>
80
97
  <summary><img src="https://img.shields.io/badge/pypi-3775A9?style=for-the-badge&logo=pypi&logoColor=white" alt="PyPI"> Install from PyPI</summary>
@@ -109,18 +126,18 @@ There is a dockerfile for simple local setup.
109
126
 
110
127
  ```bash
111
128
  # Single-line:
112
- git clone https://github.com/GatlingX/open-edison.git && cd open-edison && make docker_run
129
+ git clone https://github.com/Edison-Watch/open-edison.git && cd open-edison && make docker_run
113
130
 
114
131
  # Or
115
132
  # Clone repo
116
- git clone https://github.com/GatlingX/open-edison.git
133
+ git clone https://github.com/Edison-Watch/open-edison.git
117
134
  # Enter repo
118
135
  cd open-edison
119
136
  # Build and run
120
137
  make docker_run
121
138
  ```
122
139
 
123
- The MCP server will be available at `http://localhost:3000` and the api + frontend at `http://localhost:3001`.
140
+ The MCP server will be available at `http://localhost:3000` and the api + frontend at `http://localhost:3001`. 🌐
124
141
 
125
142
  </details>
126
143
 
@@ -130,7 +147,7 @@ The MCP server will be available at `http://localhost:3000` and the api + fronte
130
147
  1. Clone the repository:
131
148
 
132
149
  ```bash
133
- git clone https://github.com/GatlingX/open-edison.git
150
+ git clone https://github.com/Edison-Watch/open-edison.git
134
151
  cd open-edison
135
152
  ```
136
153
 
@@ -161,12 +178,12 @@ make run
161
178
  open-edison run
162
179
  ```
163
180
 
164
- The server will be available at `http://localhost:3000`.
181
+ The server will be available at `http://localhost:3000`. 🌐
165
182
 
166
183
  </details>
167
184
 
168
185
  <details>
169
- <summary>MCP Connection</summary>
186
+ <summary>🔌 MCP Connection</summary>
170
187
 
171
188
  Connect any MCP client to Open Edison (requires Node.js/npm for `npx`):
172
189
 
@@ -190,20 +207,20 @@ Or add to your MCP client config:
190
207
  </details>
191
208
 
192
209
  <details>
193
- <summary>Usage</summary>
210
+ <summary>🧭 Usage</summary>
194
211
 
195
212
  ### API Endpoints
196
213
 
197
214
  See [API Reference](docs/quick-reference/api_reference.md) for full API documentation.
198
215
 
199
216
  <details>
200
- <summary>Development</summary>
217
+ <summary>🛠️ Development</summary>
201
218
 
202
- ### Setup
219
+ ### Setup 🧰
203
220
 
204
221
  Setup from source as above.
205
222
 
206
- ### Run
223
+ ### Run ▶️
207
224
 
208
225
  Server doesn't have any auto-reload at the moment, so you'll need to run & ctrl-c this during development.
209
226
 
@@ -211,7 +228,7 @@ Server doesn't have any auto-reload at the moment, so you'll need to run & ctrl-
211
228
  make run
212
229
  ```
213
230
 
214
- ### Tests/code quality
231
+ ### Tests/code quality
215
232
 
216
233
  We expect `make ci` to return cleanly.
217
234
 
@@ -224,7 +241,7 @@ make ci
224
241
  <details>
225
242
  <summary>⚙️ Configuration (config.json)</summary>
226
243
 
227
- ## Configuration
244
+ ## Configuration ⚙️
228
245
 
229
246
  The `config.json` file contains all configuration:
230
247
 
@@ -246,18 +263,20 @@ Each MCP server configuration includes:
246
263
 
247
264
  </details>
248
265
 
266
+ ## 🔐 How Edison prevents data leakages
267
+
249
268
  <details>
250
- <summary>Security & Permissions System</summary>
269
+ <summary>🔱 The lethal trifecta, agent lifecycle management</summary>
251
270
 
252
271
  Open Edison includes a comprehensive security monitoring system that tracks the "lethal trifecta" of AI agent risks, as described in [Simon Willison's blog post](https://simonwillison.net/2025/Jun/16/the-lethal-trifecta/):
253
272
 
254
- <img src="media/lethal-trifecta.png" alt="The lethal trifecta diagram showing the three key AI agent security risks" width="30%">
273
+ <img src="media/lethal-trifecta.png" alt="The lethal trifecta diagram showing the three key AI agent security risks" width="70%">
255
274
 
256
275
  1. **Private data access** - Access to sensitive local files/data
257
276
  2. **Untrusted content exposure** - Exposure to external/web content
258
277
  3. **External communication** - Ability to write/send data externally
259
278
 
260
- <img src="media/pam-diagram.png" alt="Privileged Access Management (PAM) example showing the lethal trifecta in action" width="60%">
279
+ <img src="media/pam-diagram.png" alt="Privileged Access Management (PAM) example showing the lethal trifecta in action" width="90%">
261
280
 
262
281
  The configuration allows you to classify these risks across **tools**, **resources**, and **prompts** using separate configuration files.
263
282
 
@@ -265,7 +284,7 @@ In addition to trifecta, we track Access Control Level (ACL) for each tool call,
265
284
  that is, each tool has an ACL level (one of PUBLIC, PRIVATE, or SECRET), and we track the highest ACL level for each session.
266
285
  If a write operation is attempted to a lower ACL level, it is blocked.
267
286
 
268
- ### Tool Permissions (`tool_permissions.json`)
287
+ ### 🧰 Tool Permissions (`tool_permissions.json`)
269
288
 
270
289
  Defines security classifications for MCP tools. See full file: [tool_permissions.json](tool_permissions.json), it looks like:
271
290
 
@@ -283,7 +302,7 @@ Defines security classifications for MCP tools. See full file: [tool_permissions
283
302
  ```
284
303
 
285
304
  <details>
286
- <summary>Resource Permissions (`resource_permissions.json`)</summary>
305
+ <summary>📁 Resource Permissions (`resource_permissions.json`)</summary>
287
306
 
288
307
  ### Resource Permissions (`resource_permissions.json`)
289
308
 
@@ -299,7 +318,7 @@ Defines security classifications for resource access patterns. See full file: [r
299
318
  </details>
300
319
 
301
320
  <details>
302
- <summary>Prompt Permissions (`prompt_permissions.json`)</summary>
321
+ <summary>💬 Prompt Permissions (`prompt_permissions.json`)</summary>
303
322
 
304
323
  ### Prompt Permissions (`prompt_permissions.json`)
305
324
 
@@ -314,7 +333,7 @@ Defines security classifications for prompt types. See full file: [prompt_permis
314
333
 
315
334
  </details>
316
335
 
317
- ### Wildcard Patterns
336
+ ### Wildcard Patterns
318
337
 
319
338
  All permission types support wildcard patterns:
320
339
 
@@ -322,7 +341,7 @@ All permission types support wildcard patterns:
322
341
  - **Resources**: `scheme:*` (e.g., `file:*` matches all file resources)
323
342
  - **Prompts**: `type:*` (e.g., `template:*` matches all template prompts)
324
343
 
325
- ### Security Monitoring
344
+ ### Security Monitoring 🕵️
326
345
 
327
346
  **All items must be explicitly configured** - unknown tools/resources/prompts will be rejected for security.
328
347
 
@@ -330,20 +349,20 @@ Use the `get_security_status` tool to monitor your session's current risk level
330
349
 
331
350
  </details>
332
351
 
333
- <details>
334
- <summary>Documentation</summary>
352
+
353
+
354
+ ## Documentation 📚
335
355
 
336
356
  📚 **Complete documentation available in [`docs/`](docs/)**
337
357
 
338
- - **[Getting Started](docs/quick-reference/config_quick_start.md)** - Quick setup guide
339
- - **[Configuration](docs/core/configuration.md)** - Complete configuration reference
340
- - **[API Reference](docs/quick-reference/api_reference.md)** - REST API documentation
341
- - **[Development Guide](docs/development/development_guide.md)** - Contributing and development
358
+ - 🚀 **[Getting Started](docs/quick-reference/config_quick_start.md)** - Quick setup guide
359
+ - ⚙️ **[Configuration](docs/core/configuration.md)** - Complete configuration reference
360
+ - 📡 **[API Reference](docs/quick-reference/api_reference.md)** - REST API documentation
361
+ - 🧑‍💻 **[Development Guide](docs/development/development_guide.md)** - Contributing and development
342
362
 
343
- </details>
344
363
 
345
364
  <details>
346
- <summary>License</summary>
365
+ <summary>📄 License</summary>
347
366
 
348
367
  GPL-3.0 License - see [LICENSE](LICENSE) for details.
349
368
 
@@ -1,21 +1,37 @@
1
- # OpenEdison
1
+ # OpenEdison 🔒⚡️
2
2
 
3
- Open-source single-user MCP security gateway that prevents data exfiltration—via direct access or tool chaining—with full monitoring for local single‑user deployments. Provides core functionality of <https://edison.watch> for local use.
3
+ MCP security gateway that prevents data exfiltration—via direct access or tool chaining—with full monitoring for local single‑user deployments. Provides core functionality of <https://edison.watch> for local use.
4
+
5
+ <p align="center">
6
+ <img src="media/trifecta520p.gif" alt="Trifecta Security Risk Animation" width="520">
7
+ </p>
4
8
 
5
9
  <div align="center">
6
- <h2>📧 Interested in connecting AI to your business software with proper access controls? <a href="mailto:hello@edison.watch">Contact us</a> to discuss.</h2>
10
+ <h2>📧 To get visibility, control and exfiltration blocker into AI's interaction with your company software, systems of record, DBs, <a href="mailto:hello@edison.watch">Contact us</a> to discuss.</h2>
7
11
  </div>
8
12
 
9
- ## Features
13
+ <p align="center">
14
+ <img alt="Project Version" src="https://img.shields.io/pypi/v/open-edison?label=version&color=blue">
15
+ <img alt="Python Version" src="https://img.shields.io/badge/python-3.12-blue?logo=python">
16
+ <img src="https://img.shields.io/badge/License-GPLv3-blue" alt="License">
17
+
18
+
19
+ </p>
20
+
21
+ ---
22
+
23
+
24
+ ## Features ✨
10
25
 
11
- - **Single-user MCP proxy** - No multi-user complexity, just a simple proxy for your MCP servers
12
- - **JSON configuration** - Easy to configure and manage your MCP servers
13
- - **Simple local frontend** - Track and monitor your MCP interactions, servers, and sessions.
14
- - **Session tracking** - Track and monitor your MCP interactions
15
- - **Simple API** - REST API for managing MCP servers and proxying requests
16
- - **Docker support** - Run in a container for easy deployment
26
+ - 🛑 **Prevent Data Leaks** - Edison automatically blocks any data leaks, even if your AI gets jailbroken
27
+ - 👤 **Single-user MCP proxy** - No multi-user complexity, just a simple proxy for your MCP servers
28
+ - 🗂️ **JSON configuration** - Easy to configure and manage your MCP servers
29
+ - 🖥️ **Simple local frontend** - Track and monitor your MCP interactions, servers, and sessions.
30
+ - 📊 **Session tracking** - Track and monitor your MCP interactions
31
+ - 🔗 **Simple API** - REST API for managing MCP servers and proxying requests
32
+ - 🐳 **Docker support** - Run in a container for easy deployment
17
33
 
18
- ## Quick Start
34
+ ## Quick Start 🚀
19
35
 
20
36
  The fastest way to get started:
21
37
 
@@ -28,7 +44,7 @@ curl -fsSL https://raw.githubusercontent.com/Edison-Watch/open-edison/main/curl_
28
44
  Run locally with uvx: `uvx open-edison --config-dir ~/edison-config`
29
45
 
30
46
  <details>
31
- <summary>Install Node.js/npm (optional for MCP tools)</summary>
47
+ <summary>⬇️ Install Node.js/npm (optional for MCP tools)</summary>
32
48
 
33
49
  If you need `npx` (for Node-based MCP tools like `mcp-remote`), install Node.js as well:
34
50
 
@@ -48,6 +64,7 @@ If you need `npx` (for Node-based MCP tools like `mcp-remote`), install Node.js
48
64
  - Node/npx: `winget install -e --id OpenJS.NodeJS`
49
65
 
50
66
  After installation, ensure that `npx` is available on PATH.
67
+ </details>
51
68
 
52
69
  <details>
53
70
  <summary><img src="https://img.shields.io/badge/pypi-3775A9?style=for-the-badge&logo=pypi&logoColor=white" alt="PyPI"> Install from PyPI</summary>
@@ -82,18 +99,18 @@ There is a dockerfile for simple local setup.
82
99
 
83
100
  ```bash
84
101
  # Single-line:
85
- git clone https://github.com/GatlingX/open-edison.git && cd open-edison && make docker_run
102
+ git clone https://github.com/Edison-Watch/open-edison.git && cd open-edison && make docker_run
86
103
 
87
104
  # Or
88
105
  # Clone repo
89
- git clone https://github.com/GatlingX/open-edison.git
106
+ git clone https://github.com/Edison-Watch/open-edison.git
90
107
  # Enter repo
91
108
  cd open-edison
92
109
  # Build and run
93
110
  make docker_run
94
111
  ```
95
112
 
96
- The MCP server will be available at `http://localhost:3000` and the api + frontend at `http://localhost:3001`.
113
+ The MCP server will be available at `http://localhost:3000` and the api + frontend at `http://localhost:3001`. 🌐
97
114
 
98
115
  </details>
99
116
 
@@ -103,7 +120,7 @@ The MCP server will be available at `http://localhost:3000` and the api + fronte
103
120
  1. Clone the repository:
104
121
 
105
122
  ```bash
106
- git clone https://github.com/GatlingX/open-edison.git
123
+ git clone https://github.com/Edison-Watch/open-edison.git
107
124
  cd open-edison
108
125
  ```
109
126
 
@@ -134,12 +151,12 @@ make run
134
151
  open-edison run
135
152
  ```
136
153
 
137
- The server will be available at `http://localhost:3000`.
154
+ The server will be available at `http://localhost:3000`. 🌐
138
155
 
139
156
  </details>
140
157
 
141
158
  <details>
142
- <summary>MCP Connection</summary>
159
+ <summary>🔌 MCP Connection</summary>
143
160
 
144
161
  Connect any MCP client to Open Edison (requires Node.js/npm for `npx`):
145
162
 
@@ -163,20 +180,20 @@ Or add to your MCP client config:
163
180
  </details>
164
181
 
165
182
  <details>
166
- <summary>Usage</summary>
183
+ <summary>🧭 Usage</summary>
167
184
 
168
185
  ### API Endpoints
169
186
 
170
187
  See [API Reference](docs/quick-reference/api_reference.md) for full API documentation.
171
188
 
172
189
  <details>
173
- <summary>Development</summary>
190
+ <summary>🛠️ Development</summary>
174
191
 
175
- ### Setup
192
+ ### Setup 🧰
176
193
 
177
194
  Setup from source as above.
178
195
 
179
- ### Run
196
+ ### Run ▶️
180
197
 
181
198
  Server doesn't have any auto-reload at the moment, so you'll need to run & ctrl-c this during development.
182
199
 
@@ -184,7 +201,7 @@ Server doesn't have any auto-reload at the moment, so you'll need to run & ctrl-
184
201
  make run
185
202
  ```
186
203
 
187
- ### Tests/code quality
204
+ ### Tests/code quality
188
205
 
189
206
  We expect `make ci` to return cleanly.
190
207
 
@@ -197,7 +214,7 @@ make ci
197
214
  <details>
198
215
  <summary>⚙️ Configuration (config.json)</summary>
199
216
 
200
- ## Configuration
217
+ ## Configuration ⚙️
201
218
 
202
219
  The `config.json` file contains all configuration:
203
220
 
@@ -219,18 +236,20 @@ Each MCP server configuration includes:
219
236
 
220
237
  </details>
221
238
 
239
+ ## 🔐 How Edison prevents data leakages
240
+
222
241
  <details>
223
- <summary>Security & Permissions System</summary>
242
+ <summary>🔱 The lethal trifecta, agent lifecycle management</summary>
224
243
 
225
244
  Open Edison includes a comprehensive security monitoring system that tracks the "lethal trifecta" of AI agent risks, as described in [Simon Willison's blog post](https://simonwillison.net/2025/Jun/16/the-lethal-trifecta/):
226
245
 
227
- <img src="media/lethal-trifecta.png" alt="The lethal trifecta diagram showing the three key AI agent security risks" width="30%">
246
+ <img src="media/lethal-trifecta.png" alt="The lethal trifecta diagram showing the three key AI agent security risks" width="70%">
228
247
 
229
248
  1. **Private data access** - Access to sensitive local files/data
230
249
  2. **Untrusted content exposure** - Exposure to external/web content
231
250
  3. **External communication** - Ability to write/send data externally
232
251
 
233
- <img src="media/pam-diagram.png" alt="Privileged Access Management (PAM) example showing the lethal trifecta in action" width="60%">
252
+ <img src="media/pam-diagram.png" alt="Privileged Access Management (PAM) example showing the lethal trifecta in action" width="90%">
234
253
 
235
254
  The configuration allows you to classify these risks across **tools**, **resources**, and **prompts** using separate configuration files.
236
255
 
@@ -238,7 +257,7 @@ In addition to trifecta, we track Access Control Level (ACL) for each tool call,
238
257
  that is, each tool has an ACL level (one of PUBLIC, PRIVATE, or SECRET), and we track the highest ACL level for each session.
239
258
  If a write operation is attempted to a lower ACL level, it is blocked.
240
259
 
241
- ### Tool Permissions (`tool_permissions.json`)
260
+ ### 🧰 Tool Permissions (`tool_permissions.json`)
242
261
 
243
262
  Defines security classifications for MCP tools. See full file: [tool_permissions.json](tool_permissions.json), it looks like:
244
263
 
@@ -256,7 +275,7 @@ Defines security classifications for MCP tools. See full file: [tool_permissions
256
275
  ```
257
276
 
258
277
  <details>
259
- <summary>Resource Permissions (`resource_permissions.json`)</summary>
278
+ <summary>📁 Resource Permissions (`resource_permissions.json`)</summary>
260
279
 
261
280
  ### Resource Permissions (`resource_permissions.json`)
262
281
 
@@ -272,7 +291,7 @@ Defines security classifications for resource access patterns. See full file: [r
272
291
  </details>
273
292
 
274
293
  <details>
275
- <summary>Prompt Permissions (`prompt_permissions.json`)</summary>
294
+ <summary>💬 Prompt Permissions (`prompt_permissions.json`)</summary>
276
295
 
277
296
  ### Prompt Permissions (`prompt_permissions.json`)
278
297
 
@@ -287,7 +306,7 @@ Defines security classifications for prompt types. See full file: [prompt_permis
287
306
 
288
307
  </details>
289
308
 
290
- ### Wildcard Patterns
309
+ ### Wildcard Patterns
291
310
 
292
311
  All permission types support wildcard patterns:
293
312
 
@@ -295,7 +314,7 @@ All permission types support wildcard patterns:
295
314
  - **Resources**: `scheme:*` (e.g., `file:*` matches all file resources)
296
315
  - **Prompts**: `type:*` (e.g., `template:*` matches all template prompts)
297
316
 
298
- ### Security Monitoring
317
+ ### Security Monitoring 🕵️
299
318
 
300
319
  **All items must be explicitly configured** - unknown tools/resources/prompts will be rejected for security.
301
320
 
@@ -303,20 +322,20 @@ Use the `get_security_status` tool to monitor your session's current risk level
303
322
 
304
323
  </details>
305
324
 
306
- <details>
307
- <summary>Documentation</summary>
325
+
326
+
327
+ ## Documentation 📚
308
328
 
309
329
  📚 **Complete documentation available in [`docs/`](docs/)**
310
330
 
311
- - **[Getting Started](docs/quick-reference/config_quick_start.md)** - Quick setup guide
312
- - **[Configuration](docs/core/configuration.md)** - Complete configuration reference
313
- - **[API Reference](docs/quick-reference/api_reference.md)** - REST API documentation
314
- - **[Development Guide](docs/development/development_guide.md)** - Contributing and development
331
+ - 🚀 **[Getting Started](docs/quick-reference/config_quick_start.md)** - Quick setup guide
332
+ - ⚙️ **[Configuration](docs/core/configuration.md)** - Complete configuration reference
333
+ - 📡 **[API Reference](docs/quick-reference/api_reference.md)** - REST API documentation
334
+ - 🧑‍💻 **[Development Guide](docs/development/development_guide.md)** - Contributing and development
315
335
 
316
- </details>
317
336
 
318
337
  <details>
319
- <summary>License</summary>
338
+ <summary>📄 License</summary>
320
339
 
321
340
  GPL-3.0 License - see [LICENSE](LICENSE) for details.
322
341
 
@@ -54,7 +54,7 @@
54
54
  "./test.db"
55
55
  ],
56
56
  "env": {},
57
- "enabled": false,
57
+ "enabled": true,
58
58
  "roots": []
59
59
  },
60
60
  {
@@ -146,7 +146,7 @@ This extension operates securely:
146
146
  1. **Clone the repository**:
147
147
 
148
148
  ```bash
149
- git clone https://github.com/GatlingX/open-edison
149
+ git clone https://github.com/Edison-Watch/open-edison
150
150
  cd open-edison/desktop_ext
151
151
  ```
152
152
 
@@ -181,11 +181,11 @@ desktop_ext/
181
181
  ## Contributing
182
182
 
183
183
  This extension is part of the Open Edison project. See the main repository for contribution guidelines:
184
- <https://github.com/GatlingX/open-edison>
184
+ <https://github.com/Edison-Watch/open-edison>
185
185
 
186
186
  ## Related Resources
187
187
 
188
- - [Open Edison Main Repository](https://github.com/GatlingX/open-edison)
188
+ - [Open Edison Main Repository](https://github.com/Edison-Watch/open-edison)
189
189
  - [mcp-remote Package](https://www.npmjs.com/package/mcp-remote)
190
190
  - [Model Context Protocol](https://modelcontextprotocol.io/)
191
191
  - [Anthropic Desktop Extensions](https://support.anthropic.com/en/articles/10949351-getting-started-with-local-mcp-servers-on-claude-desktop)
@@ -24,7 +24,7 @@ This guide covers installing and running Open Edison directly on your local mach
24
24
 
25
25
  ```bash
26
26
  # Clone the repository
27
- git clone https://github.com/GatlingX/open-edison.git
27
+ git clone https://github.com/Edison-Watch/open-edison.git
28
28
  cd open-edison
29
29
  ```
30
30
 
@@ -24,7 +24,7 @@ Open Edison is designed to be:
24
24
 
25
25
  ```bash
26
26
  # Clone the repository
27
- git clone https://github.com/GatlingX/open-edison.git
27
+ git clone https://github.com/Edison-Watch/open-edison.git
28
28
  cd open-edison
29
29
 
30
30
  # Install dependencies
@@ -177,7 +177,7 @@ git clone https://github.com/your-username/open-edison.git
177
177
  cd open-edison
178
178
 
179
179
  # Add upstream remote
180
- git remote add upstream https://github.com/GatlingX/open-edison.git
180
+ git remote add upstream https://github.com/Edison-Watch/open-edison.git
181
181
  ```
182
182
 
183
183
  ### 2. **Create Feature Branch**
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "open-edison"
3
- version = "0.1.19"
3
+ version = "0.1.26"
4
4
  description = "Open-source MCP security, aggregation, and monitoring. Single-user, self-hosted MCP proxy."
5
5
  readme = "README.md"
6
6
  authors = [
@@ -177,6 +177,7 @@ def _spawn_frontend_dev( # noqa: C901 - pragmatic complexity for env probing
177
177
 
178
178
 
179
179
  async def _run_server(args: Any) -> None:
180
+ # TODO check this works as we want it to
180
181
  # Resolve config dir and expose via env for the rest of the app
181
182
  config_dir_arg = getattr(args, "config_dir", None)
182
183
  if config_dir_arg is not None:
@@ -184,7 +185,7 @@ async def _run_server(args: Any) -> None:
184
185
  config_dir = get_config_dir()
185
186
 
186
187
  # Load config after setting env override
187
- cfg = Config.load()
188
+ cfg = Config(config_dir)
188
189
 
189
190
  host = getattr(args, "host", None) or cfg.server.host
190
191
  port = getattr(args, "port", None) or cfg.server.port