vmware-debug 2.1.0__tar.gz → 2.2.0__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 (96) hide show
  1. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/.claude-plugin/plugin.json +1 -1
  2. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/.mcp.json +1 -1
  3. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/PKG-INFO +3 -3
  4. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/RELEASE_NOTES.md +19 -0
  5. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/openclaw.plugin.json +1 -1
  6. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/package.json +1 -1
  7. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/pyproject.toml +3 -3
  8. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/server.json +2 -2
  9. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/skills/vmware-debug/SKILL.md +1 -1
  10. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/skills/vmware-debug/references/setup-guide.md +2 -2
  11. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/uv.lock +6 -6
  12. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/vmware_debug/__init__.py +1 -1
  13. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/vmware_debug/cli.py +23 -2
  14. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/vmware_debug/mcp_server/server.py +18 -4
  15. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/.clawhubignore +0 -0
  16. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/.gitignore +0 -0
  17. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/README-CN.md +0 -0
  18. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/README.md +0 -0
  19. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/SECURITY.md +0 -0
  20. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/docs/plans/2026-08-28-investigation-layer-design.md +0 -0
  21. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/skills/vmware-debug/references/agent-guardrails.md +0 -0
  22. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/skills/vmware-debug/references/capabilities.md +0 -0
  23. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/skills/vmware-debug/references/cli-reference.md +0 -0
  24. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/skills/vmware-debug/references/event-envelope.md +0 -0
  25. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/skills/vmware-debug/references/routing.md +0 -0
  26. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/tests/__init__.py +0 -0
  27. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/tests/conftest.py +0 -0
  28. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/tests/eval/__init__.py +0 -0
  29. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/tests/eval/capability/__init__.py +0 -0
  30. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/tests/eval/capability/_family.py +0 -0
  31. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/tests/eval/capability/_scores.json +0 -0
  32. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/tests/eval/capability/_scoring.py +0 -0
  33. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/tests/eval/capability/_skill.py +0 -0
  34. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/tests/eval/capability/conftest.py +0 -0
  35. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/tests/eval/capability/test_entity_reachability.py +0 -0
  36. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/tests/eval/capability/test_error_actionability.py +0 -0
  37. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/tests/eval/capability/test_tool_description_quality.py +0 -0
  38. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/tests/eval/capability/test_tool_manifest_budget.py +0 -0
  39. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/tests/eval/regression/__init__.py +0 -0
  40. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/tests/eval/regression/_vsphere_event_vocabulary.py +0 -0
  41. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/tests/eval/regression/test_audit_isolation.py +0 -0
  42. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/tests/eval/regression/test_capability_grader.py +0 -0
  43. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/tests/eval/regression/test_case_id_non_ascii.py +0 -0
  44. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/tests/eval/regression/test_case_plan_max_steps.py +0 -0
  45. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/tests/eval/regression/test_classification_against_vsphere_vocabulary.py +0 -0
  46. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/tests/eval/regression/test_debug_regressions.py +0 -0
  47. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/tests/eval/regression/test_environment_resolver_isolation.py +0 -0
  48. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/tests/eval/regression/test_every_tool_parameter_is_documented.py +0 -0
  49. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/tests/eval/regression/test_evidence_payload_contract.py +0 -0
  50. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/tests/eval/regression/test_host_lifecycle_classification.py +0 -0
  51. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/tests/eval/regression/test_investigation_metrics.py +0 -0
  52. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/tests/eval/regression/test_real_alert_titles_classify.py +0 -0
  53. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/tests/eval/regression/test_result_envelope.py +0 -0
  54. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/tests/eval/regression/test_skill_name_aliases.py +0 -0
  55. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/tests/eval/regression/test_spike_resolution.py +0 -0
  56. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/tests/eval/regression/test_tool_annotations.py +0 -0
  57. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/tests/test_case_conclusion.py +0 -0
  58. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/tests/test_case_evidence.py +0 -0
  59. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/tests/test_case_grading.py +0 -0
  60. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/tests/test_case_grading_per_hypothesis.py +0 -0
  61. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/tests/test_case_hypotheses.py +0 -0
  62. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/tests/test_case_ids.py +0 -0
  63. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/tests/test_case_ledger_concurrency.py +0 -0
  64. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/tests/test_case_plan.py +0 -0
  65. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/tests/test_case_readiness.py +0 -0
  66. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/tests/test_case_store.py +0 -0
  67. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/tests/test_case_timeline_close.py +0 -0
  68. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/tests/test_case_tools.py +0 -0
  69. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/tests/test_knowledge.py +0 -0
  70. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/tests/test_mcp_audit.py +0 -0
  71. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/tests/test_safe_error_passthrough.py +0 -0
  72. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/tests/test_timeline.py +0 -0
  73. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/vmware_debug/envelope.py +0 -0
  74. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/vmware_debug/mcp/__init__.py +0 -0
  75. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/vmware_debug/mcp/tools.py +0 -0
  76. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/vmware_debug/mcp_server/__init__.py +0 -0
  77. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/vmware_debug/ops/__init__.py +0 -0
  78. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/vmware_debug/ops/cases/__init__.py +0 -0
  79. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/vmware_debug/ops/cases/api.py +0 -0
  80. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/vmware_debug/ops/cases/conclusion.py +0 -0
  81. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/vmware_debug/ops/cases/evidence.py +0 -0
  82. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/vmware_debug/ops/cases/grading.py +0 -0
  83. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/vmware_debug/ops/cases/hypotheses.py +0 -0
  84. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/vmware_debug/ops/cases/ids.py +0 -0
  85. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/vmware_debug/ops/cases/knowledge.py +0 -0
  86. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/vmware_debug/ops/cases/model.py +0 -0
  87. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/vmware_debug/ops/cases/payloads.py +0 -0
  88. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/vmware_debug/ops/cases/plan.py +0 -0
  89. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/vmware_debug/ops/cases/readiness.py +0 -0
  90. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/vmware_debug/ops/cases/sources.py +0 -0
  91. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/vmware_debug/ops/cases/store.py +0 -0
  92. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/vmware_debug/ops/cases/timeline.py +0 -0
  93. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/vmware_debug/ops/skill_names.py +0 -0
  94. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/vmware_debug/ops/timeline.py +0 -0
  95. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/vmware_debug/rules/evidence_sources.yaml +0 -0
  96. {vmware_debug-2.1.0 → vmware_debug-2.2.0}/vmware_debug/rules/grading_rules.yaml +0 -0
@@ -2,7 +2,7 @@
2
2
  "$schema": "https://anthropic.com/claude-code/plugin.schema.json",
3
3
  "name": "vmware-debug",
4
4
  "displayName": "VMware Debug",
5
- "version": "2.1.0",
5
+ "version": "2.2.0",
6
6
  "description": "VMware incident timeline, root-cause routing, local case ledger; no vSphere access. 14 MCP tools.",
7
7
  "author": {
8
8
  "name": "Wei Zhou",
@@ -5,7 +5,7 @@
5
5
  "command": "uvx",
6
6
  "args": [
7
7
  "--from",
8
- "vmware-debug==2.1.0",
8
+ "vmware-debug==2.2.0",
9
9
  "vmware-debug-mcp"
10
10
  ]
11
11
  }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: vmware-debug
3
- Version: 2.1.0
3
+ Version: 2.2.0
4
4
  Summary: VMware diagnostic brain — offline incident triage, log/event correlation, and root-cause routing across the VMware skill family
5
5
  Project-URL: Homepage, https://github.com/vmware-skills/VMware-Debug
6
6
  Project-URL: Repository, https://github.com/vmware-skills/VMware-Debug
@@ -14,11 +14,11 @@ Classifier: License :: OSI Approved :: MIT License
14
14
  Classifier: Programming Language :: Python :: 3
15
15
  Classifier: Topic :: System :: Monitoring
16
16
  Requires-Python: >=3.10
17
- Requires-Dist: mcp[cli]<2.0,>=1.10
17
+ Requires-Dist: mcp[cli]<2.0,>=1.28
18
18
  Requires-Dist: pyyaml<7.0,>=6.0
19
19
  Requires-Dist: rich<15.0,>=13.0
20
20
  Requires-Dist: typer<1.0,>=0.12
21
- Requires-Dist: vmware-policy<2.0,>=1.20.0
21
+ Requires-Dist: vmware-policy<2.0,>=1.21.0
22
22
  Description-Content-Type: text/markdown
23
23
 
24
24
  <!-- mcp-name: io.github.vmware-skills/vmware-debug -->
@@ -1,3 +1,22 @@
1
+ ## v2.2.0 — serve MCP over HTTPS
2
+
3
+ `vmware-debug mcp` can now serve the network as well as stdio (HLD §16, via vmware-policy 1.21.0):
4
+
5
+ ```bash
6
+ vmware-audit token create alice # once per caller; shown once
7
+ vmware-debug mcp --transport https --host 0.0.0.0 --port 8443 \
8
+ --cert server.pem --key server-key.pem --public-name mcp.example.com
9
+ ```
10
+
11
+ * Every request needs `Authorization: Bearer <token>`; the server will not start without a token, refuses Host or
12
+ Origin values outside `--public-name`, and checks itself (unauthenticated requests must get 401) before it
13
+ binds. `--transport http` binds loopback only, for a TLS-terminating reverse proxy.
14
+ * Audit rows record the caller as `token:<name>` and the surface as `mcp-https`. Calls naming different targets
15
+ run in parallel; calls naming no target run one at a time.
16
+ * stdio remains the default; the `vmware-debug-mcp` console script and `python -m` are unchanged.
17
+ * Everyone who can reach the endpoint acts with this server's account; run one endpoint per privilege level.
18
+ * Requires `vmware-policy>=1.21.0` and `mcp>=1.28`.
19
+
1
20
  ## v2.1.0 — offer only read tools, plus chosen write tools
2
21
 
3
22
  `vmware-debug mcp` can now offer a subset of this server's tools (HLD §17 D-16, via vmware-policy 1.20.0):
@@ -11,7 +11,7 @@
11
11
  "command": "uvx",
12
12
  "args": [
13
13
  "--from",
14
- "vmware-debug==2.1.0",
14
+ "vmware-debug==2.2.0",
15
15
  "vmware-debug-mcp"
16
16
  ]
17
17
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zw008/vmware-debug",
3
- "version": "2.1.0",
3
+ "version": "2.2.0",
4
4
  "description": "VMware incident timeline, root-cause routing, local case ledger; no vSphere access. 14 MCP tools.",
5
5
  "private": true,
6
6
  "license": "MIT",
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "vmware-debug"
7
- version = "2.1.0"
7
+ version = "2.2.0"
8
8
  description = "VMware diagnostic brain — offline incident triage, log/event correlation, and root-cause routing across the VMware skill family"
9
9
  readme = "README.md"
10
10
  license = "MIT"
@@ -20,8 +20,8 @@ classifiers = [
20
20
  dependencies = [
21
21
  "typer>=0.12,<1.0",
22
22
  "rich>=13.0,<15.0",
23
- "mcp[cli]>=1.10,<2.0",
24
- "vmware-policy>=1.20.0,<2.0",
23
+ "mcp[cli]>=1.28,<2.0",
24
+ "vmware-policy>=1.21.0,<2.0",
25
25
  # Imported directly by ops/cases/grading.py for the rules file. It has
26
26
  # always arrived transitively via vmware-policy; a package should
27
27
  # declare what it imports rather than rely on a dependency's dependency.
@@ -7,12 +7,12 @@
7
7
  "url": "https://github.com/vmware-skills/VMware-Debug",
8
8
  "source": "github"
9
9
  },
10
- "version": "2.1.0",
10
+ "version": "2.2.0",
11
11
  "packages": [
12
12
  {
13
13
  "registryType": "pypi",
14
14
  "identifier": "vmware-debug",
15
- "version": "2.1.0",
15
+ "version": "2.2.0",
16
16
  "runtimeHint": "uvx",
17
17
  "packageArguments": [
18
18
  {
@@ -51,7 +51,7 @@ write tools touch only the local case ledger.
51
51
  ## Quick Install
52
52
 
53
53
  ```bash
54
- uv tool install vmware-debug==2.1.0
54
+ uv tool install vmware-debug==2.2.0
55
55
  vmware-debug categories # see what it can diagnose
56
56
  ```
57
57
 
@@ -6,7 +6,7 @@ is a pure, offline correlation engine. There is no `config.yaml` and no `.env`.
6
6
  ## Install
7
7
 
8
8
  ```bash
9
- uv tool install vmware-debug==2.1.0
9
+ uv tool install vmware-debug==2.2.0
10
10
  vmware-debug categories # verify it runs
11
11
  ```
12
12
 
@@ -15,7 +15,7 @@ vmware-debug categories # verify it runs
15
15
  ```json
16
16
  {
17
17
  "command": "uvx",
18
- "args": ["--from", "vmware-debug==2.1.0", "vmware-debug-mcp"]
18
+ "args": ["--from", "vmware-debug==2.2.0", "vmware-debug-mcp"]
19
19
  }
20
20
  ```
21
21
 
@@ -1293,7 +1293,7 @@ wheels = [
1293
1293
 
1294
1294
  [[package]]
1295
1295
  name = "vmware-debug"
1296
- version = "2.1.0"
1296
+ version = "2.2.0"
1297
1297
  source = { editable = "." }
1298
1298
  dependencies = [
1299
1299
  { name = "mcp", extra = ["cli"] },
@@ -1312,11 +1312,11 @@ dev = [
1312
1312
 
1313
1313
  [package.metadata]
1314
1314
  requires-dist = [
1315
- { name = "mcp", extras = ["cli"], specifier = ">=1.10,<2.0" },
1315
+ { name = "mcp", extras = ["cli"], specifier = ">=1.28,<2.0" },
1316
1316
  { name = "pyyaml", specifier = ">=6.0,<7.0" },
1317
1317
  { name = "rich", specifier = ">=13.0,<15.0" },
1318
1318
  { name = "typer", specifier = ">=0.12,<1.0" },
1319
- { name = "vmware-policy", specifier = ">=1.20.0,<2.0" },
1319
+ { name = "vmware-policy", specifier = ">=1.21.0,<2.0" },
1320
1320
  ]
1321
1321
 
1322
1322
  [package.metadata.requires-dev]
@@ -1328,14 +1328,14 @@ dev = [
1328
1328
 
1329
1329
  [[package]]
1330
1330
  name = "vmware-policy"
1331
- version = "1.20.0"
1331
+ version = "1.21.0"
1332
1332
  source = { registry = "https://pypi.org/simple" }
1333
1333
  dependencies = [
1334
1334
  { name = "pyyaml" },
1335
1335
  { name = "rich" },
1336
1336
  { name = "typer" },
1337
1337
  ]
1338
- sdist = { url = "https://files.pythonhosted.org/packages/66/f3/cae0e18d269bd4764d5f9b34a838174e9668f931e44d41effab620aeecf4/vmware_policy-1.20.0.tar.gz", hash = "sha256:eb9875d3e94435a18d1dd6cf2c71905c46e2e812808556db3fb741ef322bee99", size = 220048, upload-time = "2026-10-15T06:33:35.174Z" }
1338
+ sdist = { url = "https://files.pythonhosted.org/packages/87/5d/4221ea4a344ec33d6b54903682ce8ae2013bb0a2d6137c94ac769690ea8b/vmware_policy-1.21.0.tar.gz", hash = "sha256:f42b794ea69e52e1fa13aff8b5bc07631d82683b1c12872f2f2ec744e3853549", size = 303862, upload-time = "2026-10-15T10:13:33.719Z" }
1339
1339
  wheels = [
1340
- { url = "https://files.pythonhosted.org/packages/b2/cf/6c87f6b5439407c1c3b83b84a5ef53def7544b687efd6f16a6cb187acf78/vmware_policy-1.20.0-py3-none-any.whl", hash = "sha256:cea9451c70be96e3d7adc420a2ac001cf431c29b61350dd58c3771378058737a", size = 86684, upload-time = "2026-10-15T06:33:33.413Z" },
1340
+ { url = "https://files.pythonhosted.org/packages/b3/b4/feb7015ae5f7870e8058ad713050f7fe3ddefa57aa7bdd4a83f2e3b9abb4/vmware_policy-1.21.0-py3-none-any.whl", hash = "sha256:a10c26816be09f9a2823cc58bc4eacb9b5eff8b6df49dfc5b504b3d76cb3b7ec", size = 99818, upload-time = "2026-10-15T10:13:31.67Z" },
1341
1341
  ]
@@ -6,4 +6,4 @@ remediation to vmware-aiops / vmware-pilot. Never writes to any VMware system
6
6
  and never executes fixes; its only writes go to the local case ledger.
7
7
  """
8
8
 
9
- __version__ = "2.1.0"
9
+ __version__ = "2.2.0"
@@ -116,11 +116,32 @@ def mcp(
116
116
  "--allow-write",
117
117
  help="With --expose read: comma-separated write tools to offer as well.",
118
118
  ),
119
+ transport: Optional[str] = typer.Option(
120
+ None,
121
+ "--transport",
122
+ help="stdio (default), https, or http (loopback only, behind a TLS reverse proxy). "
123
+ "https/http need a token: 'vmware-audit token create NAME'.",
124
+ ),
125
+ host: Optional[str] = typer.Option(None, "--host", help="Bind address (default 127.0.0.1)."),
126
+ port: Optional[int] = typer.Option(None, "--port", help="Port (default 8443)."),
127
+ cert: Optional[str] = typer.Option(None, "--cert", help="TLS certificate (PEM) for https."),
128
+ key: Optional[str] = typer.Option(None, "--key", help="TLS private key (PEM) for https."),
129
+ public_name: Optional[str] = typer.Option(
130
+ None,
131
+ "--public-name",
132
+ help="Host names clients use, comma-separated; other Host/Origin values are refused.",
133
+ ),
134
+ token_file: Optional[str] = typer.Option(
135
+ None, "--token-file", help="Token hash file (default $OPS_HOME/mcp-tokens)."
136
+ ),
119
137
  ) -> None:
120
- """Start the stdio MCP server (no network access; proxy-safe)."""
138
+ """Start the MCP server: stdio by default (proxy-safe), or --transport https."""
121
139
  from vmware_debug.mcp_server.server import main as _main
122
140
 
123
- _main(expose=expose, allow_write=allow_write)
141
+ _main(
142
+ expose=expose, allow_write=allow_write, transport=transport, host=host, port=port,
143
+ cert=cert, key=key, public_name=public_name, token_file=token_file,
144
+ )
124
145
 
125
146
 
126
147
  if __name__ == "__main__":
@@ -862,7 +862,17 @@ def build_server() -> FastMCP:
862
862
 
863
863
 
864
864
  return server
865
- def main(expose: Optional[str] = None, allow_write: Optional[str] = None) -> None:
865
+ def main(
866
+ expose: Optional[str] = None,
867
+ allow_write: Optional[str] = None,
868
+ transport: Optional[str] = None,
869
+ host: Optional[str] = None,
870
+ port: Optional[int] = None,
871
+ cert: Optional[str] = None,
872
+ key: Optional[str] = None,
873
+ public_name: Optional[str] = None,
874
+ token_file: Optional[str] = None,
875
+ ) -> None:
866
876
  """Entry point for `vmware-debug-mcp` (stdio transport)."""
867
877
  # Floor is 3.10, matching `requires-python` and the other eleven skills.
868
878
  # This guard used to demand 3.11 on the grounds that FastMCP schema
@@ -878,10 +888,14 @@ def main(expose: Optional[str] = None, allow_write: Optional[str] = None) -> Non
878
888
  "Reinstall on a newer interpreter: "
879
889
  "uv tool install --python 3.12 --force vmware-debug"
880
890
  )
881
- from vmware_policy.exposure import apply_or_exit
891
+ from vmware_policy.serve import run_server
882
892
  server = build_server()
883
- apply_or_exit(server, skill="debug", expose=expose, allow_write=allow_write)
884
- server.run()
893
+ run_server(
894
+ server,
895
+ skill="debug",
896
+ expose=expose, allow_write=allow_write, transport=transport, host=host, port=port,
897
+ cert=cert, key=key, public_name=public_name, token_file=token_file,
898
+ )
885
899
 
886
900
 
887
901
  if __name__ == "__main__":
File without changes
File without changes
File without changes
File without changes