mcpower-proxy 0.0.65__tar.gz → 0.0.67__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.

Files changed (49) hide show
  1. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/PKG-INFO +2 -2
  2. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/pyproject.toml +2 -2
  3. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/src/mcpower_proxy.egg-info/PKG-INFO +2 -2
  4. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/src/mcpower_proxy.egg-info/requires.txt +1 -1
  5. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/src/modules/utils/ids.py +5 -3
  6. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/src/wrapper/__version__.py +1 -1
  7. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/src/wrapper/middleware.py +8 -1
  8. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/LICENSE +0 -0
  9. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/README.md +0 -0
  10. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/setup.cfg +0 -0
  11. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/src/LICENSE +0 -0
  12. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/src/main.py +0 -0
  13. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/src/mcpower_proxy.egg-info/SOURCES.txt +0 -0
  14. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/src/mcpower_proxy.egg-info/dependency_links.txt +0 -0
  15. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/src/mcpower_proxy.egg-info/entry_points.txt +0 -0
  16. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/src/mcpower_proxy.egg-info/top_level.txt +0 -0
  17. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/src/modules/__init__.py +0 -0
  18. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/src/modules/apis/__init__.py +0 -0
  19. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/src/modules/apis/security_policy.py +0 -0
  20. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/src/modules/logs/__init__.py +0 -0
  21. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/src/modules/logs/audit_trail.py +0 -0
  22. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/src/modules/logs/logger.py +0 -0
  23. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/src/modules/redaction/__init__.py +0 -0
  24. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/src/modules/redaction/constants.py +0 -0
  25. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/src/modules/redaction/gitleaks_rules.py +0 -0
  26. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/src/modules/redaction/pii_rules.py +0 -0
  27. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/src/modules/redaction/redactor.py +0 -0
  28. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/src/modules/ui/__init__.py +0 -0
  29. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/src/modules/ui/classes.py +0 -0
  30. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/src/modules/ui/confirmation.py +0 -0
  31. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/src/modules/ui/simple_dialog.py +0 -0
  32. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/src/modules/ui/xdialog/__init__.py +0 -0
  33. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/src/modules/ui/xdialog/constants.py +0 -0
  34. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/src/modules/ui/xdialog/mac_dialogs.py +0 -0
  35. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/src/modules/ui/xdialog/tk_dialogs.py +0 -0
  36. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/src/modules/ui/xdialog/windows_custom_dialog.py +0 -0
  37. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/src/modules/ui/xdialog/windows_dialogs.py +0 -0
  38. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/src/modules/ui/xdialog/windows_structs.py +0 -0
  39. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/src/modules/ui/xdialog/yad_dialogs.py +0 -0
  40. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/src/modules/ui/xdialog/zenity_dialogs.py +0 -0
  41. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/src/modules/utils/__init__.py +0 -0
  42. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/src/modules/utils/cli.py +0 -0
  43. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/src/modules/utils/config.py +0 -0
  44. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/src/modules/utils/copy.py +0 -0
  45. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/src/modules/utils/json.py +0 -0
  46. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/src/modules/utils/mcp_configs.py +0 -0
  47. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/src/wrapper/__init__.py +0 -0
  48. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/src/wrapper/schema.py +0 -0
  49. {mcpower_proxy-0.0.65 → mcpower_proxy-0.0.67}/src/wrapper/server.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcpower-proxy
3
- Version: 0.0.65
3
+ Version: 0.0.67
4
4
  Summary: MCPower Security proxy
5
5
  Author-email: MCPower Security <support@mcpower.tech>
6
6
  License: Apache License
@@ -209,7 +209,7 @@ Keywords: mcp,security,proxy,monitoring,audit,redaction,policy-enforcement
209
209
  Requires-Python: ~=3.11.0
210
210
  Description-Content-Type: text/markdown
211
211
  License-File: LICENSE
212
- Requires-Dist: fastmcp>=2.10.5
212
+ Requires-Dist: fastmcp==2.13.0.1
213
213
  Requires-Dist: httpx>=0.25.0
214
214
  Requires-Dist: mcp>=1.0.0
215
215
  Requires-Dist: watchdog>=3.0.0
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "mcpower-proxy"
3
- version = "0.0.65"
3
+ version = "0.0.67"
4
4
  description = "MCPower Security proxy"
5
5
  readme = "README.md"
6
6
  requires-python = "~=3.11.0"
@@ -9,7 +9,7 @@ authors = [
9
9
  { name = "MCPower Security", email = "support@mcpower.tech" }
10
10
  ]
11
11
  dependencies = [
12
- "fastmcp>=2.10.5",
12
+ "fastmcp==2.13.0.1",
13
13
  "httpx>=0.25.0",
14
14
  "mcp>=1.0.0",
15
15
  "watchdog>=3.0.0",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcpower-proxy
3
- Version: 0.0.65
3
+ Version: 0.0.67
4
4
  Summary: MCPower Security proxy
5
5
  Author-email: MCPower Security <support@mcpower.tech>
6
6
  License: Apache License
@@ -209,7 +209,7 @@ Keywords: mcp,security,proxy,monitoring,audit,redaction,policy-enforcement
209
209
  Requires-Python: ~=3.11.0
210
210
  Description-Content-Type: text/markdown
211
211
  License-File: LICENSE
212
- Requires-Dist: fastmcp>=2.10.5
212
+ Requires-Dist: fastmcp==2.13.0.1
213
213
  Requires-Dist: httpx>=0.25.0
214
214
  Requires-Dist: mcp>=1.0.0
215
215
  Requires-Dist: watchdog>=3.0.0
@@ -1,4 +1,4 @@
1
- fastmcp>=2.10.5
1
+ fastmcp==2.13.0.1
2
2
  httpx>=0.25.0
3
3
  mcp>=1.0.0
4
4
  watchdog>=3.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
- fd = os.open(str(file_path), os.O_CREAT | os.O_EXCL | os.O_WRONLY, 0o600)
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})")
@@ -3,4 +3,4 @@
3
3
  Wrapper MCP Server Version
4
4
  """
5
5
 
6
- __version__ = "0.0.65"
6
+ __version__ = "0.0.67"
@@ -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
@@ -115,7 +116,7 @@ class SecurityMiddleware(Middleware):
115
116
  case "tools/list":
116
117
  # Special handling for tools/list - call /init instead of normal inspection
117
118
  return await self._handle_tools_list(context, call_next)
118
- case "resources/list" | "resources/templates/list" | "prompts/list":
119
+ case "initialize" | "resources/list" | "resources/templates/list" | "prompts/list":
119
120
  return await call_next_callback(context)
120
121
 
121
122
  return await self._handle_operation(
@@ -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