mcpower-proxy 0.0.65__tar.gz → 0.0.66__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.
Potentially problematic release.
This version of mcpower-proxy might be problematic. Click here for more details.
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/PKG-INFO +1 -1
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/pyproject.toml +1 -1
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/src/mcpower_proxy.egg-info/PKG-INFO +1 -1
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/src/modules/utils/ids.py +5 -3
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/src/wrapper/__version__.py +1 -1
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/src/wrapper/middleware.py +7 -0
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/LICENSE +0 -0
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/README.md +0 -0
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/setup.cfg +0 -0
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/src/LICENSE +0 -0
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/src/main.py +0 -0
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/src/mcpower_proxy.egg-info/SOURCES.txt +0 -0
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/src/mcpower_proxy.egg-info/dependency_links.txt +0 -0
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/src/mcpower_proxy.egg-info/entry_points.txt +0 -0
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/src/mcpower_proxy.egg-info/requires.txt +0 -0
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/src/mcpower_proxy.egg-info/top_level.txt +0 -0
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/src/modules/__init__.py +0 -0
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/src/modules/apis/__init__.py +0 -0
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/src/modules/apis/security_policy.py +0 -0
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/src/modules/logs/__init__.py +0 -0
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/src/modules/logs/audit_trail.py +0 -0
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/src/modules/logs/logger.py +0 -0
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/src/modules/redaction/__init__.py +0 -0
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/src/modules/redaction/constants.py +0 -0
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/src/modules/redaction/gitleaks_rules.py +0 -0
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/src/modules/redaction/pii_rules.py +0 -0
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/src/modules/redaction/redactor.py +0 -0
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/src/modules/ui/__init__.py +0 -0
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/src/modules/ui/classes.py +0 -0
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/src/modules/ui/confirmation.py +0 -0
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/src/modules/ui/simple_dialog.py +0 -0
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/src/modules/ui/xdialog/__init__.py +0 -0
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/src/modules/ui/xdialog/constants.py +0 -0
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/src/modules/ui/xdialog/mac_dialogs.py +0 -0
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/src/modules/ui/xdialog/tk_dialogs.py +0 -0
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/src/modules/ui/xdialog/windows_custom_dialog.py +0 -0
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/src/modules/ui/xdialog/windows_dialogs.py +0 -0
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/src/modules/ui/xdialog/windows_structs.py +0 -0
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/src/modules/ui/xdialog/yad_dialogs.py +0 -0
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/src/modules/ui/xdialog/zenity_dialogs.py +0 -0
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/src/modules/utils/__init__.py +0 -0
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/src/modules/utils/cli.py +0 -0
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/src/modules/utils/config.py +0 -0
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/src/modules/utils/copy.py +0 -0
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/src/modules/utils/json.py +0 -0
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/src/modules/utils/mcp_configs.py +0 -0
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/src/wrapper/__init__.py +0 -0
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/src/wrapper/schema.py +0 -0
- {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/src/wrapper/server.py +0 -0
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Utilities for generating event IDs, session IDs, app UIDs, and timing helpers
|
|
3
3
|
"""
|
|
4
4
|
import os
|
|
5
|
+
import sys
|
|
5
6
|
import time
|
|
6
7
|
import uuid
|
|
7
8
|
from pathlib import Path
|
|
@@ -67,7 +68,8 @@ def _atomic_write_uuid(file_path: Path, new_uuid: str) -> bool:
|
|
|
67
68
|
True if write succeeded, False if file exists
|
|
68
69
|
"""
|
|
69
70
|
try:
|
|
70
|
-
|
|
71
|
+
mode = 0o666 if sys.platform == 'win32' else 0o600
|
|
72
|
+
fd = os.open(str(file_path), os.O_CREAT | os.O_EXCL | os.O_WRONLY, mode)
|
|
71
73
|
try:
|
|
72
74
|
os.write(fd, new_uuid.encode('utf-8'))
|
|
73
75
|
finally:
|
|
@@ -91,7 +93,7 @@ def _get_or_create_uuid(uid_path: Path, logger, id_type: str) -> str:
|
|
|
91
93
|
UUID string
|
|
92
94
|
"""
|
|
93
95
|
uid_path.parent.mkdir(parents=True, exist_ok=True)
|
|
94
|
-
|
|
96
|
+
|
|
95
97
|
max_attempts = 3
|
|
96
98
|
for attempt in range(max_attempts):
|
|
97
99
|
if uid_path.exists():
|
|
@@ -111,7 +113,7 @@ def _get_or_create_uuid(uid_path: Path, logger, id_type: str) -> str:
|
|
|
111
113
|
new_uid = str(uuid.uuid4())
|
|
112
114
|
|
|
113
115
|
if _atomic_write_uuid(uid_path, new_uid):
|
|
114
|
-
logger.info(f"Generated {id_type}: {new_uid}")
|
|
116
|
+
logger.info(f"Generated {id_type}: {new_uid} at {uid_path}")
|
|
115
117
|
return new_uid
|
|
116
118
|
|
|
117
119
|
logger.debug(f"{id_type.title()} file created by another process, reading (attempt {attempt + 1}/{max_attempts})")
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
FastMCP middleware for security policy enforcement
|
|
3
3
|
Implements pre/post interception for all MCP operations
|
|
4
4
|
"""
|
|
5
|
+
import sys
|
|
5
6
|
import time
|
|
6
7
|
import urllib.parse
|
|
7
8
|
from datetime import datetime, timezone
|
|
@@ -481,6 +482,12 @@ class SecurityMiddleware(Middleware):
|
|
|
481
482
|
file_path_prefix = 'file://'
|
|
482
483
|
if uri.startswith(file_path_prefix):
|
|
483
484
|
path = urllib.parse.unquote(uri[len(file_path_prefix):])
|
|
485
|
+
|
|
486
|
+
# Windows fix: remove leading slash before drive letter
|
|
487
|
+
# file:///C:/path becomes /C:/path, should be C:/path
|
|
488
|
+
if sys.platform == 'win32' and len(path) >= 3 and path[0] == '/' and path[2] == ':':
|
|
489
|
+
path = path[1:]
|
|
490
|
+
|
|
484
491
|
try:
|
|
485
492
|
resolved_path = str(Path(path).resolve())
|
|
486
493
|
workspace_roots.append(resolved_path)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/src/mcpower_proxy.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcpower_proxy-0.0.65 → mcpower_proxy-0.0.66}/src/modules/ui/xdialog/windows_custom_dialog.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|