mcp-proxy-adapter 4.1.0__py3-none-any.whl → 4.1.1__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.
- mcp_proxy_adapter/commands/command_registry.py +15 -4
- mcp_proxy_adapter/config.py +1 -1
- mcp_proxy_adapter/examples/basic_server/server.py +5 -0
- mcp_proxy_adapter/examples/custom_commands/config.json +7 -34
- mcp_proxy_adapter/examples/custom_commands/server.py +5 -0
- mcp_proxy_adapter/version.py +1 -1
- {mcp_proxy_adapter-4.1.0.dist-info → mcp_proxy_adapter-4.1.1.dist-info}/METADATA +1 -1
- {mcp_proxy_adapter-4.1.0.dist-info → mcp_proxy_adapter-4.1.1.dist-info}/RECORD +11 -11
- {mcp_proxy_adapter-4.1.0.dist-info → mcp_proxy_adapter-4.1.1.dist-info}/WHEEL +0 -0
- {mcp_proxy_adapter-4.1.0.dist-info → mcp_proxy_adapter-4.1.1.dist-info}/licenses/LICENSE +0 -0
- {mcp_proxy_adapter-4.1.0.dist-info → mcp_proxy_adapter-4.1.1.dist-info}/top_level.txt +0 -0
@@ -257,16 +257,27 @@ class CommandRegistry:
|
|
257
257
|
commands_info[name] = self.get_command_info(name)
|
258
258
|
return commands_info
|
259
259
|
|
260
|
-
def discover_commands(self, package_path: str =
|
260
|
+
def discover_commands(self, package_path: Optional[str] = None) -> int:
|
261
261
|
"""
|
262
262
|
Automatically discovers and registers commands in the specified package.
|
263
|
+
If package_path is not provided, uses configuration settings.
|
263
264
|
|
264
265
|
Args:
|
265
|
-
package_path: Path to package with commands.
|
266
|
+
package_path: Path to package with commands. If None, uses config.
|
266
267
|
|
267
268
|
Returns:
|
268
269
|
Number of commands discovered and registered.
|
269
270
|
"""
|
271
|
+
# Get package path from config if not provided
|
272
|
+
if package_path is None:
|
273
|
+
try:
|
274
|
+
from mcp_proxy_adapter.config import config
|
275
|
+
package_path = config.get("commands.discovery_path", "mcp_proxy_adapter.commands")
|
276
|
+
logger.info(f"Using commands discovery path from config: {package_path}")
|
277
|
+
except Exception as e:
|
278
|
+
logger.warning(f"Failed to get discovery path from config, using default: {e}")
|
279
|
+
package_path = "mcp_proxy_adapter.commands"
|
280
|
+
|
270
281
|
logger.info(f"Discovering commands in package: {package_path}")
|
271
282
|
|
272
283
|
commands_discovered = 0
|
@@ -480,12 +491,12 @@ class CommandRegistry:
|
|
480
491
|
self._instances.clear()
|
481
492
|
self._custom_commands.clear()
|
482
493
|
|
483
|
-
def reload_config_and_commands(self, package_path: str =
|
494
|
+
def reload_config_and_commands(self, package_path: Optional[str] = None) -> Dict[str, Any]:
|
484
495
|
"""
|
485
496
|
Reload configuration and rediscover commands.
|
486
497
|
|
487
498
|
Args:
|
488
|
-
package_path: Path to package with commands.
|
499
|
+
package_path: Path to package with commands. If None, uses config.
|
489
500
|
|
490
501
|
Returns:
|
491
502
|
Dictionary with reload information including:
|
mcp_proxy_adapter/config.py
CHANGED
@@ -53,7 +53,7 @@ class Config:
|
|
53
53
|
},
|
54
54
|
"commands": {
|
55
55
|
"auto_discovery": True,
|
56
|
-
"discovery_path": "mcp_proxy_adapter.commands",
|
56
|
+
"discovery_path": "mcp_proxy_adapter.commands", # Path to package with commands (e.g., "myproject.commands")
|
57
57
|
"custom_commands_path": None
|
58
58
|
}
|
59
59
|
}
|
@@ -57,6 +57,7 @@ def main():
|
|
57
57
|
print(f" • Log Level: {logging_settings['level']}")
|
58
58
|
print(f" • Log Directory: {logging_settings['log_dir']}")
|
59
59
|
print(f" • Auto Discovery: {commands_settings['auto_discovery']}")
|
60
|
+
print(f" • Discovery Path: {commands_settings['discovery_path']}")
|
60
61
|
print()
|
61
62
|
print("🔧 Available Commands:")
|
62
63
|
print(" • help - Built-in help command")
|
@@ -64,6 +65,10 @@ def main():
|
|
64
65
|
print(" • config - Built-in config command")
|
65
66
|
print(" • reload - Built-in reload command")
|
66
67
|
print()
|
68
|
+
print("📁 Command Discovery:")
|
69
|
+
print(f" • Commands will be discovered from: {commands_settings['discovery_path']}")
|
70
|
+
print(" • This path is configured in config.json under 'commands.discovery_path'")
|
71
|
+
print()
|
67
72
|
print("🎯 Features:")
|
68
73
|
print(" • Standard JSON-RPC API")
|
69
74
|
print(" • Built-in command discovery")
|
@@ -11,8 +11,8 @@
|
|
11
11
|
"log_file": "custom_commands.log",
|
12
12
|
"error_log_file": "custom_commands_error.log",
|
13
13
|
"access_log_file": "custom_commands_access.log",
|
14
|
-
"max_file_size": "
|
15
|
-
"backup_count":
|
14
|
+
"max_file_size": "5MB",
|
15
|
+
"backup_count": 3,
|
16
16
|
"format": "%(asctime)s - %(name)s - %(levelname)s - %(message)s",
|
17
17
|
"date_format": "%Y-%m-%d %H:%M:%S",
|
18
18
|
"console_output": true,
|
@@ -20,43 +20,16 @@
|
|
20
20
|
},
|
21
21
|
"commands": {
|
22
22
|
"auto_discovery": true,
|
23
|
-
"discovery_path": "mcp_proxy_adapter.
|
24
|
-
"custom_commands_path":
|
25
|
-
"auto_commands_path": "mcp_proxy_adapter.examples.custom_commands.auto_commands"
|
23
|
+
"discovery_path": "mcp_proxy_adapter.examples.custom_commands.auto_commands",
|
24
|
+
"custom_commands_path": null
|
26
25
|
},
|
27
26
|
"custom": {
|
28
|
-
"server_name": "
|
29
|
-
"description": "
|
27
|
+
"server_name": "Custom Commands MCP Proxy Server",
|
28
|
+
"description": "Example server with custom commands",
|
30
29
|
"features": {
|
31
30
|
"hooks_enabled": true,
|
32
31
|
"custom_commands_enabled": true,
|
33
|
-
"advanced_logging": true
|
34
|
-
"data_transformation": true,
|
35
|
-
"command_interception": true
|
36
|
-
},
|
37
|
-
"hooks": {
|
38
|
-
"data_transform": {
|
39
|
-
"enabled": true,
|
40
|
-
"transform_types": ["uppercase", "lowercase", "reverse"]
|
41
|
-
},
|
42
|
-
"intercept": {
|
43
|
-
"enabled": true,
|
44
|
-
"bypass_conditions": ["input_value == 0"]
|
45
|
-
}
|
46
|
-
},
|
47
|
-
"custom_commands": {
|
48
|
-
"manual_echo": {
|
49
|
-
"enabled": true,
|
50
|
-
"description": "Manually registered echo command"
|
51
|
-
},
|
52
|
-
"data_transform": {
|
53
|
-
"enabled": true,
|
54
|
-
"description": "Data transformation command"
|
55
|
-
},
|
56
|
-
"intercept": {
|
57
|
-
"enabled": true,
|
58
|
-
"description": "Command interception example"
|
59
|
-
}
|
32
|
+
"advanced_logging": true
|
60
33
|
}
|
61
34
|
}
|
62
35
|
}
|
@@ -195,6 +195,11 @@ def main():
|
|
195
195
|
# Register custom commands
|
196
196
|
register_custom_commands()
|
197
197
|
|
198
|
+
# Discover standard commands first
|
199
|
+
logger.info("Discovering standard commands...")
|
200
|
+
standard_commands_path = commands_settings.get("discovery_path", "mcp_proxy_adapter.commands")
|
201
|
+
registry.discover_commands(standard_commands_path)
|
202
|
+
|
198
203
|
# Discover auto-registered commands
|
199
204
|
logger.info("Discovering auto-registered commands...")
|
200
205
|
auto_commands_path = commands_settings.get("auto_commands_path", "mcp_proxy_adapter.examples.custom_commands.auto_commands")
|
mcp_proxy_adapter/version.py
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
mcp_proxy_adapter/__init__.py,sha256=B7m1YWyv_Wb87-Q-JqVpHQgwajnfIgDyZ_iIxzdTbBY,1021
|
2
|
-
mcp_proxy_adapter/config.py,sha256=
|
2
|
+
mcp_proxy_adapter/config.py,sha256=snoninhOygGDitA5zFZTS7KRcLao5SZNUbVp9R_hXlI,6509
|
3
3
|
mcp_proxy_adapter/custom_openapi.py,sha256=1A7y8r65WfZSqhhzhJyEIpwqwV-qbTXzRrRX04amluk,14472
|
4
4
|
mcp_proxy_adapter/openapi.py,sha256=36vOEbJjGnVZR6hUhl6mHCD29HYOEFKo2bL0JdGSm-4,13952
|
5
|
-
mcp_proxy_adapter/version.py,sha256=
|
5
|
+
mcp_proxy_adapter/version.py,sha256=MvxgbADLVcTNg6BxI1LaFYcWytWx20UzR7OsZk5uSRo,71
|
6
6
|
mcp_proxy_adapter/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
7
7
|
mcp_proxy_adapter/api/app.py,sha256=Haj0ogy70KRMyAAwU2PQhQFPf28On9ynnUX2FPk0l94,16602
|
8
8
|
mcp_proxy_adapter/api/handlers.py,sha256=LqPMRMGYtepoZUoJiKjjycRE2fJxsE545osoEsgHKQg,7208
|
@@ -18,7 +18,7 @@ mcp_proxy_adapter/api/middleware/performance.py,sha256=dHBxTF43LEGXMKHMH3A8ybKmw
|
|
18
18
|
mcp_proxy_adapter/api/middleware/rate_limit.py,sha256=DIv_-ZUVmL-jEo_A5BlfnasZf25zT84AiIJDUUnXkpM,5041
|
19
19
|
mcp_proxy_adapter/commands/__init__.py,sha256=bHZZcVYkXVL9g-YZOnWkHOxSP2WzT-I4_OleYycQhbw,610
|
20
20
|
mcp_proxy_adapter/commands/base.py,sha256=-OwzKXVwt9Ov4BLmHE6CAu9966__RgMOl1bkstlWCuE,14719
|
21
|
-
mcp_proxy_adapter/commands/command_registry.py,sha256=
|
21
|
+
mcp_proxy_adapter/commands/command_registry.py,sha256=6bOxSc2Vz93wHxD_8_kFzYoAURMtAg338sDIYR9MpLE,21134
|
22
22
|
mcp_proxy_adapter/commands/config_command.py,sha256=-Z6BGaEQTf859l56zZpHYBeZFeIVdpMYybDrd7LOPIg,3553
|
23
23
|
mcp_proxy_adapter/commands/dependency_container.py,sha256=Uz9OPRAUZN7tsVrMVgXgPQcsRD2N-e2Ixg9XarPOlnY,3410
|
24
24
|
mcp_proxy_adapter/commands/health_command.py,sha256=_tzxHwB_8vo53VBC6HnBv5fSfZL1pEuwlbrCcy_K78c,4087
|
@@ -40,11 +40,11 @@ mcp_proxy_adapter/examples/basic_server/__init__.py,sha256=63tFue2XfrlkNpIMC3foQ
|
|
40
40
|
mcp_proxy_adapter/examples/basic_server/basic_custom_settings.json,sha256=OQGAT2TUERhnznpOV0IsUix5JM-am7VCEvG97BWUxos,1003
|
41
41
|
mcp_proxy_adapter/examples/basic_server/config.json,sha256=wz0niZ2Q8zr1XPeNZBGsAXOZgciYnEn3XDW5FrOEqzQ,929
|
42
42
|
mcp_proxy_adapter/examples/basic_server/custom_settings_example.py,sha256=9VM7_D5OzSZ-eezH17gthsLo3DvklOtzkx-3QM9j8RU,8218
|
43
|
-
mcp_proxy_adapter/examples/basic_server/server.py,sha256=
|
43
|
+
mcp_proxy_adapter/examples/basic_server/server.py,sha256=6APjF7-1J_I_0kPVwkkxM1UBEvABjxVlZWYErPQaQOY,3732
|
44
44
|
mcp_proxy_adapter/examples/custom_commands/README.md,sha256=nkrZ-mbz0AfnYUVb57hPsO4jUadWvDaUTWkIDUwY0VY,3881
|
45
45
|
mcp_proxy_adapter/examples/custom_commands/__init__.py,sha256=vqAm7c4crDMupwh0hAGPC8XE2inu0o-tAG5GHW04ZkE,684
|
46
46
|
mcp_proxy_adapter/examples/custom_commands/advanced_hooks.py,sha256=MCL7OkkrOMc8zEt9qlZ_dV9YIGnB_fe4Ge6mjVq6qPE,9516
|
47
|
-
mcp_proxy_adapter/examples/custom_commands/config.json,sha256=
|
47
|
+
mcp_proxy_adapter/examples/custom_commands/config.json,sha256=GMpSxQH8AoW4OGShhkgeKPfsT9k4_erkYNBUg_dGr4k,965
|
48
48
|
mcp_proxy_adapter/examples/custom_commands/custom_health_command.py,sha256=V7qqFRgFQAxriEnUtkJ_sHjIOCjGjeqgsHjcfZrd26w,5473
|
49
49
|
mcp_proxy_adapter/examples/custom_commands/custom_help_command.py,sha256=3HPj4peKcwbwSfXW2ATQ4vFGvbsXLxfZXfxjjPYiowU,7486
|
50
50
|
mcp_proxy_adapter/examples/custom_commands/custom_openapi_generator.py,sha256=txm6oC8jP-nOHNgWlB2B0_YIYf2YQFSqLYpObNyDDq4,2408
|
@@ -55,7 +55,7 @@ mcp_proxy_adapter/examples/custom_commands/echo_command.py,sha256=5cP0MQiTcpEiix
|
|
55
55
|
mcp_proxy_adapter/examples/custom_commands/hooks.py,sha256=Zfd-9T2XYJF7XMgQmEGdzWtM8Gz2EF8dn-jNJbYOgb4,7486
|
56
56
|
mcp_proxy_adapter/examples/custom_commands/intercept_command.py,sha256=06xPpS-9kC6Lu-b6anES1ah8gLtP0sgFL4N1JkDkOrk,3716
|
57
57
|
mcp_proxy_adapter/examples/custom_commands/manual_echo_command.py,sha256=4Bma586HU17IpuVuCuG-_rk-kycDx_oN6gKJ-q3DQr4,2787
|
58
|
-
mcp_proxy_adapter/examples/custom_commands/server.py,sha256=
|
58
|
+
mcp_proxy_adapter/examples/custom_commands/server.py,sha256=4tFPJSMrYK3WhqHSzMa7mGjhinWcPxEO7Qff03EdSMA,9459
|
59
59
|
mcp_proxy_adapter/examples/custom_commands/test_hooks.py,sha256=0VUwENRAAYGDYMUxXVEA_EByKiHQiqJmdkul1LvebQE,5288
|
60
60
|
mcp_proxy_adapter/examples/custom_commands/auto_commands/__init__.py,sha256=AN5b9FNYobhDL5MWaftVy0imcAlbEuLIxwRQYX1U-_o,161
|
61
61
|
mcp_proxy_adapter/examples/custom_commands/auto_commands/auto_echo_command.py,sha256=M0QlkCdSY9rD1b88JdZLlVMo2zU9iCnWC4DeSWCtU44,2725
|
@@ -103,8 +103,8 @@ mcp_proxy_adapter/tests/stubs/echo_command.py,sha256=Y7SA4IB5Lo_ncn78SDm9iRZvJSK
|
|
103
103
|
mcp_proxy_adapter/tests/unit/__init__.py,sha256=RS-5UoSCcLKtr2jrAaZw_NG9MquA6BZmxq-P6cTw9ok,53
|
104
104
|
mcp_proxy_adapter/tests/unit/test_base_command.py,sha256=iCJzmfcvknS6pnzqu9TSkpgKBGoYCLWu0aQekcj1AME,18183
|
105
105
|
mcp_proxy_adapter/tests/unit/test_config.py,sha256=SZ62LXFOv_fsV0fmSIBdHWvapEyexKrioFRQo0I4pkg,5900
|
106
|
-
mcp_proxy_adapter-4.1.
|
107
|
-
mcp_proxy_adapter-4.1.
|
108
|
-
mcp_proxy_adapter-4.1.
|
109
|
-
mcp_proxy_adapter-4.1.
|
110
|
-
mcp_proxy_adapter-4.1.
|
106
|
+
mcp_proxy_adapter-4.1.1.dist-info/licenses/LICENSE,sha256=OkApFEwdgMCt_mbvUI-eIwKMSTe38K3XnU2DT5ub-wI,1072
|
107
|
+
mcp_proxy_adapter-4.1.1.dist-info/METADATA,sha256=pGeDYfEOP0H005Twd8INFo7TWfyAFpScB4tLXZcd23Q,7544
|
108
|
+
mcp_proxy_adapter-4.1.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
109
|
+
mcp_proxy_adapter-4.1.1.dist-info/top_level.txt,sha256=JZT7vPLBYrtroX-ij68JBhJYbjDdghcV-DFySRy-Nnw,18
|
110
|
+
mcp_proxy_adapter-4.1.1.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|