open-edison 0.1.19__tar.gz → 0.1.29__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.29}/.gitignore +4 -1
  2. {open_edison-0.1.19 → open_edison-0.1.29}/PKG-INFO +66 -45
  3. {open_edison-0.1.19 → open_edison-0.1.29}/README.md +65 -44
  4. {open_edison-0.1.19 → open_edison-0.1.29}/config.json +1 -1
  5. {open_edison-0.1.19 → open_edison-0.1.29}/desktop_ext/README.md +3 -3
  6. {open_edison-0.1.19 → open_edison-0.1.29}/docs/deployment/local.md +1 -1
  7. {open_edison-0.1.19 → open_edison-0.1.29}/docs/development/contributing.md +2 -2
  8. {open_edison-0.1.19 → open_edison-0.1.29}/pyproject.toml +1 -1
  9. {open_edison-0.1.19 → open_edison-0.1.29}/src/cli.py +2 -1
  10. {open_edison-0.1.19 → open_edison-0.1.29}/src/config.py +71 -71
  11. open_edison-0.1.29/src/events.py +153 -0
  12. open_edison-0.1.29/src/middleware/data_access_tracker.py +370 -0
  13. {open_edison-0.1.19 → open_edison-0.1.29}/src/middleware/session_tracking.py +133 -37
  14. open_edison-0.1.29/src/oauth_manager.py +281 -0
  15. open_edison-0.1.29/src/permissions.py +281 -0
  16. {open_edison-0.1.19 → open_edison-0.1.29}/src/server.py +491 -134
  17. open_edison-0.1.29/src/single_user_mcp.py +458 -0
  18. {open_edison-0.1.19 → open_edison-0.1.29}/src/telemetry.py +4 -40
  19. {open_edison-0.1.19 → open_edison-0.1.29}/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.29}/LICENSE +0 -0
  23. {open_edison-0.1.19 → open_edison-0.1.29}/docs/README.md +0 -0
  24. {open_edison-0.1.19 → open_edison-0.1.29}/docs/architecture/single_user_design.md +0 -0
  25. {open_edison-0.1.19 → open_edison-0.1.29}/docs/core/configuration.md +0 -0
  26. {open_edison-0.1.19 → open_edison-0.1.29}/docs/core/project_structure.md +0 -0
  27. {open_edison-0.1.19 → open_edison-0.1.29}/docs/core/proxy_usage.md +0 -0
  28. {open_edison-0.1.19 → open_edison-0.1.29}/docs/deployment/docker.md +0 -0
  29. {open_edison-0.1.19 → open_edison-0.1.29}/docs/development/development_guide.md +0 -0
  30. {open_edison-0.1.19 → open_edison-0.1.29}/docs/development/testing.md +0 -0
  31. {open_edison-0.1.19 → open_edison-0.1.29}/docs/quick-reference/api_reference.md +0 -0
  32. {open_edison-0.1.19 → open_edison-0.1.29}/docs/quick-reference/config_quick_start.md +0 -0
  33. {open_edison-0.1.19 → open_edison-0.1.29}/prompt_permissions.json +0 -0
  34. {open_edison-0.1.19 → open_edison-0.1.29}/resource_permissions.json +0 -0
  35. {open_edison-0.1.19 → open_edison-0.1.29}/src/__init__.py +0 -0
  36. {open_edison-0.1.19 → open_edison-0.1.29}/src/__main__.py +0 -0
@@ -216,4 +216,7 @@ 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
221
+ dev_config_dir/
222
+ sessions.db
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: open-edison
3
- Version: 0.1.19
3
+ Version: 0.1.29
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,45 @@ 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
+ > The secure MCP proxy gateway
31
+
32
+ Connect AI to your data/software securely without risk of data exfiltration. Gain visibility, block threats, and get alerts on the data your agent is reading/writing. No more "approve fatigue" with the MCP tool-call approvals.
33
+
34
+ OpenEdison solves the [lethal trifecta problem](https://simonwillison.net/2025/Jun/16/the-lethal-trifecta/), which can cause agent hijacking & data exfiltration by malicious actors.
35
+
36
+ <p align="center">
37
+ <img src="media/trifecta520p.gif" alt="Trifecta Security Risk Animation" width="520">
38
+ </p>
31
39
 
32
40
  <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>
41
+ <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
42
  </div>
35
43
 
36
- ## Features
44
+ <p align="center">
45
+ <img alt="Project Version" src="https://img.shields.io/pypi/v/open-edison?label=version&color=blue">
46
+ <img alt="Python Version" src="https://img.shields.io/badge/python-3.12-blue?logo=python">
47
+ <img src="https://img.shields.io/badge/License-GPLv3-blue" alt="License">
48
+
49
+ </p>
50
+
51
+ ---
52
+
53
+ ## Features ✨
54
+
55
+ - 🛑 **Data leak blocker** - Edison automatically blocks any data leaks, even if your AI gets jailbroken
56
+ - 🕰️ **Deterministic execution** - Deterministic execution. Guaranteed data exfiltration blocker.
57
+ - 🗂️ **Easily configurable** - Easy to configure and manage your MCP servers
58
+ - 📊 **Visibility into agent interactions** - Track and monitor your agents and their interactions with connected software/data via MCP calls
59
+ - 🔗 **Simple API** - REST API for managing MCP servers and proxying requests
60
+ - 🐳 **Docker support** - Run in a container for easy deployment
37
61
 
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
62
+ ## About Edison.watch 🏢
44
63
 
45
- ## Quick Start
64
+ Edison helps you gain observability, control, and policy enforcement for all AI interactions with systems of records, existing company software and data. Prevent AI from causing data leakage, lightning-fast setup for cross-system governance.
65
+
66
+ ## Quick Start 🚀
46
67
 
47
68
  The fastest way to get started:
48
69
 
@@ -52,10 +73,10 @@ The fastest way to get started:
52
73
  curl -fsSL https://raw.githubusercontent.com/Edison-Watch/open-edison/main/curl_pipe_bash.sh | bash
53
74
  ```
54
75
 
55
- Run locally with uvx: `uvx open-edison --config-dir ~/edison-config`
76
+ Run locally with uvx: `uvx open-edison`
56
77
 
57
78
  <details>
58
- <summary>Install Node.js/npm (optional for MCP tools)</summary>
79
+ <summary>⬇️ Install Node.js/npm (optional for MCP tools)</summary>
59
80
 
60
81
  If you need `npx` (for Node-based MCP tools like `mcp-remote`), install Node.js as well:
61
82
 
@@ -75,6 +96,7 @@ If you need `npx` (for Node-based MCP tools like `mcp-remote`), install Node.js
75
96
  - Node/npx: `winget install -e --id OpenJS.NodeJS`
76
97
 
77
98
  After installation, ensure that `npx` is available on PATH.
99
+ </details>
78
100
 
79
101
  <details>
80
102
  <summary><img src="https://img.shields.io/badge/pypi-3775A9?style=for-the-badge&logo=pypi&logoColor=white" alt="PyPI"> Install from PyPI</summary>
@@ -85,11 +107,11 @@ After installation, ensure that `npx` is available on PATH.
85
107
 
86
108
  ```bash
87
109
  # Using uvx
88
- uvx open-edison --help
110
+ uvx open-edison
89
111
 
90
112
  # Using pipx
91
113
  pipx install open-edison
92
- open-edison --help
114
+ open-edison
93
115
  ```
94
116
 
95
117
  Run with a custom config directory:
@@ -109,18 +131,18 @@ There is a dockerfile for simple local setup.
109
131
 
110
132
  ```bash
111
133
  # Single-line:
112
- git clone https://github.com/GatlingX/open-edison.git && cd open-edison && make docker_run
134
+ git clone https://github.com/Edison-Watch/open-edison.git && cd open-edison && make docker_run
113
135
 
114
136
  # Or
115
137
  # Clone repo
116
- git clone https://github.com/GatlingX/open-edison.git
138
+ git clone https://github.com/Edison-Watch/open-edison.git
117
139
  # Enter repo
118
140
  cd open-edison
119
141
  # Build and run
120
142
  make docker_run
121
143
  ```
122
144
 
123
- The MCP server will be available at `http://localhost:3000` and the api + frontend at `http://localhost:3001`.
145
+ The MCP server will be available at `http://localhost:3000` and the api + frontend at `http://localhost:3001`. 🌐
124
146
 
125
147
  </details>
126
148
 
@@ -130,7 +152,7 @@ The MCP server will be available at `http://localhost:3000` and the api + fronte
130
152
  1. Clone the repository:
131
153
 
132
154
  ```bash
133
- git clone https://github.com/GatlingX/open-edison.git
155
+ git clone https://github.com/Edison-Watch/open-edison.git
134
156
  cd open-edison
135
157
  ```
136
158
 
@@ -161,12 +183,12 @@ make run
161
183
  open-edison run
162
184
  ```
163
185
 
164
- The server will be available at `http://localhost:3000`.
186
+ The server will be available at `http://localhost:3000`. 🌐
165
187
 
166
188
  </details>
167
189
 
168
190
  <details>
169
- <summary>MCP Connection</summary>
191
+ <summary>🔌 MCP Connection</summary>
170
192
 
171
193
  Connect any MCP client to Open Edison (requires Node.js/npm for `npx`):
172
194
 
@@ -190,20 +212,20 @@ Or add to your MCP client config:
190
212
  </details>
191
213
 
192
214
  <details>
193
- <summary>Usage</summary>
215
+ <summary>🧭 Usage</summary>
194
216
 
195
217
  ### API Endpoints
196
218
 
197
219
  See [API Reference](docs/quick-reference/api_reference.md) for full API documentation.
198
220
 
199
221
  <details>
200
- <summary>Development</summary>
222
+ <summary>🛠️ Development</summary>
201
223
 
202
- ### Setup
224
+ ### Setup 🧰
203
225
 
204
226
  Setup from source as above.
205
227
 
206
- ### Run
228
+ ### Run ▶️
207
229
 
208
230
  Server doesn't have any auto-reload at the moment, so you'll need to run & ctrl-c this during development.
209
231
 
@@ -211,7 +233,7 @@ Server doesn't have any auto-reload at the moment, so you'll need to run & ctrl-
211
233
  make run
212
234
  ```
213
235
 
214
- ### Tests/code quality
236
+ ### Tests/code quality
215
237
 
216
238
  We expect `make ci` to return cleanly.
217
239
 
@@ -224,7 +246,7 @@ make ci
224
246
  <details>
225
247
  <summary>⚙️ Configuration (config.json)</summary>
226
248
 
227
- ## Configuration
249
+ ## Configuration ⚙️
228
250
 
229
251
  The `config.json` file contains all configuration:
230
252
 
@@ -246,18 +268,20 @@ Each MCP server configuration includes:
246
268
 
247
269
  </details>
248
270
 
271
+ ## 🔐 How Edison prevents data leakages
272
+
249
273
  <details>
250
- <summary>Security & Permissions System</summary>
274
+ <summary>🔱 The lethal trifecta, agent lifecycle management</summary>
251
275
 
252
276
  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
277
 
254
- <img src="media/lethal-trifecta.png" alt="The lethal trifecta diagram showing the three key AI agent security risks" width="30%">
278
+ <img src="media/lethal-trifecta.png" alt="The lethal trifecta diagram showing the three key AI agent security risks" width="70%">
255
279
 
256
280
  1. **Private data access** - Access to sensitive local files/data
257
281
  2. **Untrusted content exposure** - Exposure to external/web content
258
282
  3. **External communication** - Ability to write/send data externally
259
283
 
260
- <img src="media/pam-diagram.png" alt="Privileged Access Management (PAM) example showing the lethal trifecta in action" width="60%">
284
+ <img src="media/pam-diagram.png" alt="Privileged Access Management (PAM) example showing the lethal trifecta in action" width="90%">
261
285
 
262
286
  The configuration allows you to classify these risks across **tools**, **resources**, and **prompts** using separate configuration files.
263
287
 
@@ -265,7 +289,7 @@ In addition to trifecta, we track Access Control Level (ACL) for each tool call,
265
289
  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
290
  If a write operation is attempted to a lower ACL level, it is blocked.
267
291
 
268
- ### Tool Permissions (`tool_permissions.json`)
292
+ ### 🧰 Tool Permissions (`tool_permissions.json`)
269
293
 
270
294
  Defines security classifications for MCP tools. See full file: [tool_permissions.json](tool_permissions.json), it looks like:
271
295
 
@@ -283,7 +307,7 @@ Defines security classifications for MCP tools. See full file: [tool_permissions
283
307
  ```
284
308
 
285
309
  <details>
286
- <summary>Resource Permissions (`resource_permissions.json`)</summary>
310
+ <summary>📁 Resource Permissions (`resource_permissions.json`)</summary>
287
311
 
288
312
  ### Resource Permissions (`resource_permissions.json`)
289
313
 
@@ -299,7 +323,7 @@ Defines security classifications for resource access patterns. See full file: [r
299
323
  </details>
300
324
 
301
325
  <details>
302
- <summary>Prompt Permissions (`prompt_permissions.json`)</summary>
326
+ <summary>💬 Prompt Permissions (`prompt_permissions.json`)</summary>
303
327
 
304
328
  ### Prompt Permissions (`prompt_permissions.json`)
305
329
 
@@ -314,7 +338,7 @@ Defines security classifications for prompt types. See full file: [prompt_permis
314
338
 
315
339
  </details>
316
340
 
317
- ### Wildcard Patterns
341
+ ### Wildcard Patterns
318
342
 
319
343
  All permission types support wildcard patterns:
320
344
 
@@ -322,7 +346,7 @@ All permission types support wildcard patterns:
322
346
  - **Resources**: `scheme:*` (e.g., `file:*` matches all file resources)
323
347
  - **Prompts**: `type:*` (e.g., `template:*` matches all template prompts)
324
348
 
325
- ### Security Monitoring
349
+ ### Security Monitoring 🕵️
326
350
 
327
351
  **All items must be explicitly configured** - unknown tools/resources/prompts will be rejected for security.
328
352
 
@@ -330,20 +354,17 @@ Use the `get_security_status` tool to monitor your session's current risk level
330
354
 
331
355
  </details>
332
356
 
333
- <details>
334
- <summary>Documentation</summary>
357
+ ## Documentation 📚
335
358
 
336
359
  📚 **Complete documentation available in [`docs/`](docs/)**
337
360
 
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
342
-
343
- </details>
361
+ - 🚀 **[Getting Started](docs/quick-reference/config_quick_start.md)** - Quick setup guide
362
+ - ⚙️ **[Configuration](docs/core/configuration.md)** - Complete configuration reference
363
+ - 📡 **[API Reference](docs/quick-reference/api_reference.md)** - REST API documentation
364
+ - 🧑‍💻 **[Development Guide](docs/development/development_guide.md)** - Contributing and development
344
365
 
345
366
  <details>
346
- <summary>License</summary>
367
+ <summary>📄 License</summary>
347
368
 
348
369
  GPL-3.0 License - see [LICENSE](LICENSE) for details.
349
370
 
@@ -1,21 +1,42 @@
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
+ > The secure MCP proxy gateway
4
+
5
+ Connect AI to your data/software securely without risk of data exfiltration. Gain visibility, block threats, and get alerts on the data your agent is reading/writing. No more "approve fatigue" with the MCP tool-call approvals.
6
+
7
+ OpenEdison solves the [lethal trifecta problem](https://simonwillison.net/2025/Jun/16/the-lethal-trifecta/), which can cause agent hijacking & data exfiltration by malicious actors.
8
+
9
+ <p align="center">
10
+ <img src="media/trifecta520p.gif" alt="Trifecta Security Risk Animation" width="520">
11
+ </p>
4
12
 
5
13
  <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>
14
+ <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
15
  </div>
8
16
 
9
- ## Features
17
+ <p align="center">
18
+ <img alt="Project Version" src="https://img.shields.io/pypi/v/open-edison?label=version&color=blue">
19
+ <img alt="Python Version" src="https://img.shields.io/badge/python-3.12-blue?logo=python">
20
+ <img src="https://img.shields.io/badge/License-GPLv3-blue" alt="License">
21
+
22
+ </p>
23
+
24
+ ---
25
+
26
+ ## Features ✨
27
+
28
+ - 🛑 **Data leak blocker** - Edison automatically blocks any data leaks, even if your AI gets jailbroken
29
+ - 🕰️ **Deterministic execution** - Deterministic execution. Guaranteed data exfiltration blocker.
30
+ - 🗂️ **Easily configurable** - Easy to configure and manage your MCP servers
31
+ - 📊 **Visibility into agent interactions** - Track and monitor your agents and their interactions with connected software/data via MCP calls
32
+ - 🔗 **Simple API** - REST API for managing MCP servers and proxying requests
33
+ - 🐳 **Docker support** - Run in a container for easy deployment
10
34
 
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
35
+ ## About Edison.watch 🏢
17
36
 
18
- ## Quick Start
37
+ Edison helps you gain observability, control, and policy enforcement for all AI interactions with systems of records, existing company software and data. Prevent AI from causing data leakage, lightning-fast setup for cross-system governance.
38
+
39
+ ## Quick Start 🚀
19
40
 
20
41
  The fastest way to get started:
21
42
 
@@ -25,10 +46,10 @@ The fastest way to get started:
25
46
  curl -fsSL https://raw.githubusercontent.com/Edison-Watch/open-edison/main/curl_pipe_bash.sh | bash
26
47
  ```
27
48
 
28
- Run locally with uvx: `uvx open-edison --config-dir ~/edison-config`
49
+ Run locally with uvx: `uvx open-edison`
29
50
 
30
51
  <details>
31
- <summary>Install Node.js/npm (optional for MCP tools)</summary>
52
+ <summary>⬇️ Install Node.js/npm (optional for MCP tools)</summary>
32
53
 
33
54
  If you need `npx` (for Node-based MCP tools like `mcp-remote`), install Node.js as well:
34
55
 
@@ -48,6 +69,7 @@ If you need `npx` (for Node-based MCP tools like `mcp-remote`), install Node.js
48
69
  - Node/npx: `winget install -e --id OpenJS.NodeJS`
49
70
 
50
71
  After installation, ensure that `npx` is available on PATH.
72
+ </details>
51
73
 
52
74
  <details>
53
75
  <summary><img src="https://img.shields.io/badge/pypi-3775A9?style=for-the-badge&logo=pypi&logoColor=white" alt="PyPI"> Install from PyPI</summary>
@@ -58,11 +80,11 @@ After installation, ensure that `npx` is available on PATH.
58
80
 
59
81
  ```bash
60
82
  # Using uvx
61
- uvx open-edison --help
83
+ uvx open-edison
62
84
 
63
85
  # Using pipx
64
86
  pipx install open-edison
65
- open-edison --help
87
+ open-edison
66
88
  ```
67
89
 
68
90
  Run with a custom config directory:
@@ -82,18 +104,18 @@ There is a dockerfile for simple local setup.
82
104
 
83
105
  ```bash
84
106
  # Single-line:
85
- git clone https://github.com/GatlingX/open-edison.git && cd open-edison && make docker_run
107
+ git clone https://github.com/Edison-Watch/open-edison.git && cd open-edison && make docker_run
86
108
 
87
109
  # Or
88
110
  # Clone repo
89
- git clone https://github.com/GatlingX/open-edison.git
111
+ git clone https://github.com/Edison-Watch/open-edison.git
90
112
  # Enter repo
91
113
  cd open-edison
92
114
  # Build and run
93
115
  make docker_run
94
116
  ```
95
117
 
96
- The MCP server will be available at `http://localhost:3000` and the api + frontend at `http://localhost:3001`.
118
+ The MCP server will be available at `http://localhost:3000` and the api + frontend at `http://localhost:3001`. 🌐
97
119
 
98
120
  </details>
99
121
 
@@ -103,7 +125,7 @@ The MCP server will be available at `http://localhost:3000` and the api + fronte
103
125
  1. Clone the repository:
104
126
 
105
127
  ```bash
106
- git clone https://github.com/GatlingX/open-edison.git
128
+ git clone https://github.com/Edison-Watch/open-edison.git
107
129
  cd open-edison
108
130
  ```
109
131
 
@@ -134,12 +156,12 @@ make run
134
156
  open-edison run
135
157
  ```
136
158
 
137
- The server will be available at `http://localhost:3000`.
159
+ The server will be available at `http://localhost:3000`. 🌐
138
160
 
139
161
  </details>
140
162
 
141
163
  <details>
142
- <summary>MCP Connection</summary>
164
+ <summary>🔌 MCP Connection</summary>
143
165
 
144
166
  Connect any MCP client to Open Edison (requires Node.js/npm for `npx`):
145
167
 
@@ -163,20 +185,20 @@ Or add to your MCP client config:
163
185
  </details>
164
186
 
165
187
  <details>
166
- <summary>Usage</summary>
188
+ <summary>🧭 Usage</summary>
167
189
 
168
190
  ### API Endpoints
169
191
 
170
192
  See [API Reference](docs/quick-reference/api_reference.md) for full API documentation.
171
193
 
172
194
  <details>
173
- <summary>Development</summary>
195
+ <summary>🛠️ Development</summary>
174
196
 
175
- ### Setup
197
+ ### Setup 🧰
176
198
 
177
199
  Setup from source as above.
178
200
 
179
- ### Run
201
+ ### Run ▶️
180
202
 
181
203
  Server doesn't have any auto-reload at the moment, so you'll need to run & ctrl-c this during development.
182
204
 
@@ -184,7 +206,7 @@ Server doesn't have any auto-reload at the moment, so you'll need to run & ctrl-
184
206
  make run
185
207
  ```
186
208
 
187
- ### Tests/code quality
209
+ ### Tests/code quality
188
210
 
189
211
  We expect `make ci` to return cleanly.
190
212
 
@@ -197,7 +219,7 @@ make ci
197
219
  <details>
198
220
  <summary>⚙️ Configuration (config.json)</summary>
199
221
 
200
- ## Configuration
222
+ ## Configuration ⚙️
201
223
 
202
224
  The `config.json` file contains all configuration:
203
225
 
@@ -219,18 +241,20 @@ Each MCP server configuration includes:
219
241
 
220
242
  </details>
221
243
 
244
+ ## 🔐 How Edison prevents data leakages
245
+
222
246
  <details>
223
- <summary>Security & Permissions System</summary>
247
+ <summary>🔱 The lethal trifecta, agent lifecycle management</summary>
224
248
 
225
249
  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
250
 
227
- <img src="media/lethal-trifecta.png" alt="The lethal trifecta diagram showing the three key AI agent security risks" width="30%">
251
+ <img src="media/lethal-trifecta.png" alt="The lethal trifecta diagram showing the three key AI agent security risks" width="70%">
228
252
 
229
253
  1. **Private data access** - Access to sensitive local files/data
230
254
  2. **Untrusted content exposure** - Exposure to external/web content
231
255
  3. **External communication** - Ability to write/send data externally
232
256
 
233
- <img src="media/pam-diagram.png" alt="Privileged Access Management (PAM) example showing the lethal trifecta in action" width="60%">
257
+ <img src="media/pam-diagram.png" alt="Privileged Access Management (PAM) example showing the lethal trifecta in action" width="90%">
234
258
 
235
259
  The configuration allows you to classify these risks across **tools**, **resources**, and **prompts** using separate configuration files.
236
260
 
@@ -238,7 +262,7 @@ In addition to trifecta, we track Access Control Level (ACL) for each tool call,
238
262
  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
263
  If a write operation is attempted to a lower ACL level, it is blocked.
240
264
 
241
- ### Tool Permissions (`tool_permissions.json`)
265
+ ### 🧰 Tool Permissions (`tool_permissions.json`)
242
266
 
243
267
  Defines security classifications for MCP tools. See full file: [tool_permissions.json](tool_permissions.json), it looks like:
244
268
 
@@ -256,7 +280,7 @@ Defines security classifications for MCP tools. See full file: [tool_permissions
256
280
  ```
257
281
 
258
282
  <details>
259
- <summary>Resource Permissions (`resource_permissions.json`)</summary>
283
+ <summary>📁 Resource Permissions (`resource_permissions.json`)</summary>
260
284
 
261
285
  ### Resource Permissions (`resource_permissions.json`)
262
286
 
@@ -272,7 +296,7 @@ Defines security classifications for resource access patterns. See full file: [r
272
296
  </details>
273
297
 
274
298
  <details>
275
- <summary>Prompt Permissions (`prompt_permissions.json`)</summary>
299
+ <summary>💬 Prompt Permissions (`prompt_permissions.json`)</summary>
276
300
 
277
301
  ### Prompt Permissions (`prompt_permissions.json`)
278
302
 
@@ -287,7 +311,7 @@ Defines security classifications for prompt types. See full file: [prompt_permis
287
311
 
288
312
  </details>
289
313
 
290
- ### Wildcard Patterns
314
+ ### Wildcard Patterns
291
315
 
292
316
  All permission types support wildcard patterns:
293
317
 
@@ -295,7 +319,7 @@ All permission types support wildcard patterns:
295
319
  - **Resources**: `scheme:*` (e.g., `file:*` matches all file resources)
296
320
  - **Prompts**: `type:*` (e.g., `template:*` matches all template prompts)
297
321
 
298
- ### Security Monitoring
322
+ ### Security Monitoring 🕵️
299
323
 
300
324
  **All items must be explicitly configured** - unknown tools/resources/prompts will be rejected for security.
301
325
 
@@ -303,20 +327,17 @@ Use the `get_security_status` tool to monitor your session's current risk level
303
327
 
304
328
  </details>
305
329
 
306
- <details>
307
- <summary>Documentation</summary>
330
+ ## Documentation 📚
308
331
 
309
332
  📚 **Complete documentation available in [`docs/`](docs/)**
310
333
 
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
315
-
316
- </details>
334
+ - 🚀 **[Getting Started](docs/quick-reference/config_quick_start.md)** - Quick setup guide
335
+ - ⚙️ **[Configuration](docs/core/configuration.md)** - Complete configuration reference
336
+ - 📡 **[API Reference](docs/quick-reference/api_reference.md)** - REST API documentation
337
+ - 🧑‍💻 **[Development Guide](docs/development/development_guide.md)** - Contributing and development
317
338
 
318
339
  <details>
319
- <summary>License</summary>
340
+ <summary>📄 License</summary>
320
341
 
321
342
  GPL-3.0 License - see [LICENSE](LICENSE) for details.
322
343
 
@@ -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.29"
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