open-edison 0.1.42__py3-none-any.whl → 0.1.43__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: open-edison
3
- Version: 0.1.42
3
+ Version: 0.1.43
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
@@ -76,7 +76,7 @@ Optionally, import your existing MCP configs from Cursor, VS Code, or Claude Cod
76
76
 
77
77
  ```bash
78
78
  # From source (no install) — quick one-liner (add --dry-run to preview)
79
- uv run python -m mcp_importer.quick_cli --yes
79
+ uv run python -m src.mcp_importer.quick_cli --yes
80
80
  ```
81
81
 
82
82
  <details>
@@ -139,29 +139,29 @@ OPEN_EDISON_CONFIG_DIR=~/edison-config open-edison run
139
139
 
140
140
  ```bash
141
141
  # From source (no install)
142
- uv run python -m mcp_importer.quick_cli --yes
142
+ uv run python -m src.mcp_importer.quick_cli --yes
143
143
  ```
144
144
 
145
145
  - Preview what will be imported (no writes):
146
146
 
147
147
  ```bash
148
- uv run python -m mcp_importer --source cursor --dry-run
148
+ uv run python -m src.mcp_importer --source cursor --dry-run
149
149
  ```
150
150
 
151
151
  - Import servers into Open Edison `config.json` (merge policy defaults to `skip`):
152
152
 
153
153
  ```bash
154
- uv run python -m mcp_importer --source cursor
155
- uv run python -m mcp_importer --source vscode
156
- uv run python -m mcp_importer --source claude-code
154
+ uv run python -m src.mcp_importer --source cursor
155
+ uv run python -m src.mcp_importer --source vscode
156
+ uv run python -m src.mcp_importer --source claude-code
157
157
  ```
158
158
 
159
159
  - Point your editor to Open Edison (backup original config and replace with a single Open Edison server):
160
160
 
161
161
  ```bash
162
- uv run python -m mcp_importer export --target cursor --yes
163
- uv run python -m mcp_importer export --target vscode --yes
164
- uv run python -m mcp_importer export --target claude-code --yes
162
+ uv run python -m src.mcp_importer export --target cursor --yes
163
+ uv run python -m src.mcp_importer export --target vscode --yes
164
+ uv run python -m src.mcp_importer export --target claude-code --yes
165
165
  ```
166
166
 
167
167
  </details>
@@ -1,18 +1,21 @@
1
1
  src/__init__.py,sha256=bEYMwBiuW9jzF07iWhas4Vb30EcpnqfpNfz_Q6yO1jU,209
2
2
  src/__main__.py,sha256=kQsaVyzRa_ESC57JpKDSQJAHExuXme0rM5beJsYxFeA,161
3
- src/cli.py,sha256=P38IWER41S5oAfbd_7p89hBpnjClsNHpmE5pSsJc6uU,9733
3
+ src/cli.py,sha256=fqX-HuRDePRasexpnURQ_pVYeycJuWxllMcwfqDxMQw,8490
4
4
  src/config.py,sha256=RSsAYzl8cj6eaDN1RORMcfKKWBcp4bKTQp2BdhAL9mg,10258
5
5
  src/config.pyi,sha256=FgehEGli8ZXSjGlANBgMGv5497q4XskQciOc1fUcxqM,2033
6
6
  src/events.py,sha256=aFQrVXDIZwt55Dz6OtyoXu2yi9evqo-8jZzo3CR2Tto,4965
7
- src/oauth_manager.py,sha256=qcQa5BDRZr4bjqiXNflCnrXOh9mo9JVjvP2Caseg2Uc,9943
7
+ src/oauth_manager.py,sha256=W9QSo0vfGDQ_i-QWCngkv7YLSL3Rk5jfPmqjU1J2rnU,9911
8
8
  src/permissions.py,sha256=NGAnlG_z59HEiVA-k3cYvwmmiuHzxuNb5Tbd5umbL00,10483
9
9
  src/server.py,sha256=cnO5bgxT-lrfuwk9AIvB_HBV8SWOtFClfGUn5_zFWyo,45652
10
10
  src/single_user_mcp.py,sha256=rJrlqHcIubGkos_24ux5rb3OoKYDzvagCHghhfDeXTI,18535
11
11
  src/telemetry.py,sha256=-RZPIjpI53zbsKmp-63REeZ1JirWHV5WvpSRa2nqZEk,11321
12
- src/frontend_dist/index.html,sha256=rNNHhYAvyDujYAnwut4zIQfkSKEwES491uH4fEOjkIw,259
12
+ src/frontend_dist/index.html,sha256=s95FMkH8VLisvawLH7bZxbLzRUFvMhHkH6ZMzpVBngs,673
13
+ src/frontend_dist/sw.js,sha256=rihX1es-vWwjmtnXyaksJjs2dio6MVAOTAWwQPeJUYw,2164
14
+ src/frontend_dist/assets/index-BUUcUfTt.js,sha256=awoyPI6u0v6ao2iarZdSkrSDUvyU8aNkMLqHMvgVgyY,257666
15
+ src/frontend_dist/assets/index-o6_8mdM8.css,sha256=nwmX_6q55mB9463XN2JM8BdeihjkALpQK83Fc3_iGvE,15936
13
16
  src/mcp_importer/__init__.py,sha256=Mk59pVr7OMGfYGWeSYk8-URfhIcrs3SPLYS7fmJbMII,275
14
17
  src/mcp_importer/__main__.py,sha256=0jVfxKzyr6koVu1ghhWseah5ilKIoGovE6zkEZ-u-Og,515
15
- src/mcp_importer/api.py,sha256=kYhmVHBUekTXPv3xNdt8rJNH1mbWXvs2cTZZGOkVhAk,3383
18
+ src/mcp_importer/api.py,sha256=47tur0xgl1NBI1Vnh3cpScEmDS64bKMYcWjZDuqx7HQ,6644
16
19
  src/mcp_importer/cli.py,sha256=Pe0GLWm1nMd1VuNXOSkxIrFZuGNFc9dNvfBsvf-bdBI,3487
17
20
  src/mcp_importer/export_cli.py,sha256=daEadB6nL8P4OpEGFx0GshuN1a091L7BhiitpV1bPqA,6294
18
21
  src/mcp_importer/exporters.py,sha256=fSgl6seduoXFp7YnKH26UEaC1sFBnd4whSut7CJLBQs,11348
@@ -21,13 +24,12 @@ src/mcp_importer/importers.py,sha256=zGN8lT7qQJ95jDTd-ck09j_w5PSvH-uj33TILoHfHbs
21
24
  src/mcp_importer/merge.py,sha256=KIGT7UgbAm07-LdyoUXEJ7ABSIiPTFlj_qjz669yFxg,1569
22
25
  src/mcp_importer/parsers.py,sha256=JRE7y_Gg-QmlAARvZdrI9CmUyy-ODvDPbS695pb3Aw8,4856
23
26
  src/mcp_importer/paths.py,sha256=4L-cPr7KCM9X9gAUP7Da6ictLNrPWuQ_IM419zqY-2I,2700
24
- src/mcp_importer/quick_cli.py,sha256=24-R77-AuKsbeag0SyADba4Vf9oYHkaOBnRXK2sZt_4,1911
27
+ src/mcp_importer/quick_cli.py,sha256=4mJe10q_lZCYLm75QBt1rYy2j8mGEsRZoAqA0agjfSM,1834
25
28
  src/mcp_importer/types.py,sha256=h03TbAnJbap6OWWd0dT0QcFWNvSaiVFWH9V9PD6x4s0,138
26
29
  src/middleware/data_access_tracker.py,sha256=bArBffWgYmvxOx9z_pgXQhogvnWQcc1m6WvEblDD4gw,15039
27
30
  src/middleware/session_tracking.py,sha256=5W1VH9HNqIZeX0HNxDEm41U4GY6SqKSXtApDEeZK2qo,23084
28
- frontend_dist/index.html,sha256=rNNHhYAvyDujYAnwut4zIQfkSKEwES491uH4fEOjkIw,259
29
- open_edison-0.1.42.dist-info/METADATA,sha256=ycCiWJGiiCWyiam8Du-w4YqfUbrIhBPL4mu8HYcd8l4,13152
30
- open_edison-0.1.42.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
31
- open_edison-0.1.42.dist-info/entry_points.txt,sha256=YiGNm9x2I00hgT10HDyB4gxC1LcaV_mu8bXFjolu0Yw,171
32
- open_edison-0.1.42.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
33
- open_edison-0.1.42.dist-info/RECORD,,
31
+ open_edison-0.1.43.dist-info/METADATA,sha256=OO5PDNk7pByRgIShryHaCtp2_7ua9XOwC8eBVdU-b5o,13188
32
+ open_edison-0.1.43.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
33
+ open_edison-0.1.43.dist-info/entry_points.txt,sha256=YiGNm9x2I00hgT10HDyB4gxC1LcaV_mu8bXFjolu0Yw,171
34
+ open_edison-0.1.43.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
35
+ open_edison-0.1.43.dist-info/RECORD,,
src/cli.py CHANGED
@@ -8,15 +8,15 @@ import argparse
8
8
  import asyncio
9
9
  import os
10
10
  import subprocess as _subprocess
11
- import sys
12
11
  from contextlib import suppress
13
12
  from pathlib import Path
14
- from typing import Any, NoReturn, cast
13
+ from typing import Any, NoReturn
15
14
 
16
15
  from loguru import logger as _log # type: ignore[reportMissingImports]
17
16
 
18
- from .config import Config, get_config_dir, get_config_json_path
19
- from .server import OpenEdisonProxy
17
+ from src.config import Config, get_config_dir, get_config_json_path
18
+ from src.mcp_importer.cli import run_cli
19
+ from src.server import OpenEdisonProxy
20
20
 
21
21
  log: Any = _log
22
22
 
@@ -45,7 +45,7 @@ def _parse_args(argv: list[str] | None = None) -> argparse.Namespace:
45
45
  # import-mcp: import MCP servers from other tools into config.json
46
46
  sp_import = subparsers.add_parser(
47
47
  "import-mcp",
48
- help="Import MCP servers from other tools (Cursor, Windsurf, Cline, Claude Desktop, etc.)",
48
+ help="Import MCP servers from other tools (Cursor, VS Code, Claude Code)",
49
49
  description=(
50
50
  "Import MCP server configurations from other tools into Open Edison config.json.\n"
51
51
  "Use --source to choose the tool and optional flags to control merging."
@@ -55,16 +55,10 @@ def _parse_args(argv: list[str] | None = None) -> argparse.Namespace:
55
55
  "--source",
56
56
  choices=[
57
57
  "cursor",
58
- "windsurf",
59
- "cline",
60
- "claude-desktop",
61
58
  "vscode",
62
59
  "claude-code",
63
- "gemini-cli",
64
- "codex",
65
- "interactive",
66
60
  ],
67
- default="interactive",
61
+ default="cursor",
68
62
  help="Source application to import from",
69
63
  )
70
64
  sp_import.add_argument(
@@ -226,35 +220,8 @@ def main(argv: list[str] | None = None) -> NoReturn: # noqa: C901
226
220
  raise SystemExit(exit_code)
227
221
 
228
222
  if getattr(args, "command", None) == "import-mcp":
229
- # Defer-import importer package (lives under repository scripts/)
230
- importer_pkg = Path(__file__).parent.parent / "scripts" / "mcp_importer"
231
- try:
232
- if str(importer_pkg) not in sys.path:
233
- sys.path.insert(0, str(importer_pkg))
234
- from mcp_importer.cli import run_cli # type: ignore
235
- except Exception as imp_exc: # noqa: BLE001
236
- log.error(
237
- "Failed to load MCP importer package from {}: {}",
238
- importer_pkg,
239
- imp_exc,
240
- )
241
- raise SystemExit(1) from imp_exc
242
-
243
- importer_argv: list[str] = []
244
- if args.source:
245
- importer_argv += ["--source", str(args.source)]
246
- if getattr(args, "config_dir", None):
247
- importer_argv += [
248
- "--config-dir",
249
- str(Path(args.config_dir).expanduser().resolve()),
250
- ]
251
- if args.merge:
252
- importer_argv += ["--merge", str(args.merge)]
253
- if bool(getattr(args, "dry_run", False)):
254
- importer_argv += ["--dry-run"]
255
-
256
- rc_val: int = int(cast(Any, run_cli)(importer_argv))
257
- raise SystemExit(rc_val)
223
+ result_code = run_cli(argv)
224
+ raise SystemExit(result_code)
258
225
 
259
226
  # default: run server (top-level flags)
260
227
  try: