systemlink-cli 1.23.0__tar.gz → 1.24.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.
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/PKG-INFO +2 -2
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/pyproject.toml +3 -3
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/_version.py +1 -1
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/mcp_click.py +20 -22
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/mcp_server.py +264 -56
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/LICENSE +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/dff-editor/editor.js +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/dff-editor/index.html +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/__init__.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/__main__.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/alarm_click.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/asset_click.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/cli_formatters.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/cli_utils.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/comment_click.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/completion_click.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/config.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/config_click.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/dataframe_click.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/dff_click.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/dff_decorators.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/example_click.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/example_loader.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/example_provisioner.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/examples/README.md +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/examples/_schema/schema-v1.0.json +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/examples/demo-data-1/README.md +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/examples/demo-data-1/config.yaml +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/examples/demo-data-2/README.md +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/examples/demo-data-2/config.yaml +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/examples/demo-data-3/config.yaml +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/examples/demo-data-3/leakage-current-results.json +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/examples/demo-data-3/overvoltage-results.json +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/examples/demo-data-3/product-xyz-compliance-report.json +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/examples/demo-data-3/product-xyz-specification.csv +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/examples/demo-data-3/thermal-response-results.json +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/examples/exercise-5-1-parametric-insights/README.md +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/examples/exercise-5-1-parametric-insights/config.yaml +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/examples/exercise-7-1-test-plans/README.md +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/examples/exercise-7-1-test-plans/config.yaml +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/examples/spec-compliance-notebooks/README.md +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/examples/spec-compliance-notebooks/config.yaml +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/examples/spec-compliance-notebooks/notebooks/SpecAnalysis_ComplianceCalculation.ipynb +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/examples/spec-compliance-notebooks/notebooks/SpecComplianceCalculation.ipynb +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/examples/spec-compliance-notebooks/notebooks/SpecfileExtractionAndIngestion.ipynb +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/examples/spec-compliance-notebooks/spec_template.xlsx +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/feed_click.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/file_click.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/function_click.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/function_templates.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/main.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/mcp_reachability.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/notebook_click.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/platform.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/policy_click.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/policy_utils.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/profiles.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/response_handlers.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/rich_output.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/routine_click.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/skill_click.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/skills/slcli/SKILL.md +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/skills/slcli/references/analysis-recipes.md +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/skills/slcli/references/commands.md +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/skills/slcli/references/datasheet-workflow.md +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/skills/slcli/references/example-authoring.md +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/skills/slcli/references/filtering.md +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/skills/slcli/references/import-specs.min.json +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/skills/slcli/references/job-debugging/overview.md +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/skills/slcli/references/nipkg/overview.md +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/skills/slcli/references/notebook/interfaces.md +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/skills/slcli/references/notebook/notebook-patterns.md +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/skills/slcli/references/notebook/overview.md +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/skills/slcli/references/python-test/overview.md +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/skills/slcli/references/routine-examples.md +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/skills/slcli/references/troubleshooting.md +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/skills/slcli/references/webapp/angular-ui-packages.md +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/skills/slcli/references/webapp/deployment.md +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/skills/slcli/references/webapp/layout-patterns.md +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/skills/slcli/references/webapp/nimble-angular.md +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/skills/slcli/references/webapp/overview.md +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/skills/slcli/references/webapp/systemlink-services.md +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/skills/slcli/references/webapp/troubleshooting.md +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/skills/slcli/scripts/spec_import_helper.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/spec_click.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/ssl_trust.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/state_click.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/system_click.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/system_query_utils.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/table_utils.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/tag_click.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/templates_click.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/testmonitor_click.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/universal_handlers.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/user_click.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/utils.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/web_editor.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_bootstrap.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_click.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/.gitignore +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/README.md +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/angular.json +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/package.json +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/src/app/app-routing.module.ts +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/src/app/app.component.html +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/src/app/app.component.scss +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/src/app/app.component.ts +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/src/app/app.module.ts +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/src/app/core/layout/app-shell.component.html +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/src/app/core/layout/app-shell.component.scss +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/src/app/core/layout/app-shell.component.ts +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/src/app/core/state/app-view-state.service.ts +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/src/app/core/systemlink/systemlink-context.service.ts +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/src/app/core/systemlink/theme-sync.service.ts +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/src/app/core/systemlink/webapp-home-data.service.ts +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/src/app/features/assets/assets-page.component.html +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/src/app/features/assets/assets-page.component.scss +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/src/app/features/assets/assets-page.component.ts +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/src/app/features/datasets/datasets-page.component.html +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/src/app/features/datasets/datasets-page.component.scss +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/src/app/features/datasets/datasets-page.component.ts +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/src/app/features/home/home-page.component.html +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/src/app/features/home/home-page.component.scss +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/src/app/features/home/home-page.component.ts +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/src/app/features/master-detail/master-detail-page.component.html +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/src/app/features/master-detail/master-detail-page.component.scss +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/src/app/features/master-detail/master-detail-page.component.ts +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/src/app/features/operations/operations-page.component.html +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/src/app/features/operations/operations-page.component.scss +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/src/app/features/operations/operations-page.component.ts +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/src/app/features/settings/settings-page.component.html +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/src/app/features/settings/settings-page.component.scss +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/src/app/features/settings/settings-page.component.ts +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/src/app/shared/components/empty-state.component.html +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/src/app/shared/components/empty-state.component.scss +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/src/app/shared/components/empty-state.component.ts +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/src/app/shared/components/error-banner.component.html +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/src/app/shared/components/error-banner.component.scss +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/src/app/shared/components/error-banner.component.ts +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/src/app/shared/components/loading-state.component.html +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/src/app/shared/components/loading-state.component.scss +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/src/app/shared/components/loading-state.component.ts +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/src/app/shared/states/view-state.model.ts +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/src/assets/README.md +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/src/index.html +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/src/main.ts +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/src/styles.scss +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/tsconfig.app.json +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/webapp_templates/angular/blank/tsconfig.json +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/workflow_preview.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/workflows_click.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/workitem_click.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/workspace_click.py +0 -0
- {systemlink_cli-1.23.0 → systemlink_cli-1.24.0}/slcli/workspace_utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: systemlink-cli
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.24.0
|
|
4
4
|
Summary: SystemLink Integrator CLI - cross-platform CLI for SystemLink workflows and templates.
|
|
5
5
|
License-File: LICENSE
|
|
6
6
|
Author: Fred Visser
|
|
@@ -14,7 +14,7 @@ Provides-Extra: mcp
|
|
|
14
14
|
Requires-Dist: click (>=7.1.2)
|
|
15
15
|
Requires-Dist: cryptography (>=49.0.0)
|
|
16
16
|
Requires-Dist: keyring (>=25.6.0,<26.0.0)
|
|
17
|
-
Requires-Dist: mcp (>=
|
|
17
|
+
Requires-Dist: mcp (>=2,<3) ; extra == "mcp"
|
|
18
18
|
Requires-Dist: packaging (>=21.0)
|
|
19
19
|
Requires-Dist: pygments (>=2.20.0)
|
|
20
20
|
Requires-Dist: pyyaml (>=6.0.3,<7.0.0)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "systemlink-cli"
|
|
3
|
-
version = "1.
|
|
3
|
+
version = "1.24.0"
|
|
4
4
|
description = "SystemLink Integrator CLI - cross-platform CLI for SystemLink workflows and templates."
|
|
5
5
|
authors = ["Fred Visser <fred.visser@emerson.com>"]
|
|
6
6
|
packages = [{ include = "slcli" }]
|
|
@@ -37,7 +37,7 @@ rich = ">=15,<16"
|
|
|
37
37
|
rich-click = ">=1.8,<2"
|
|
38
38
|
cryptography = ">=49.0.0"
|
|
39
39
|
pygments = ">=2.20.0"
|
|
40
|
-
mcp = { version = ">=
|
|
40
|
+
mcp = { version = ">=2,<3", optional = true }
|
|
41
41
|
|
|
42
42
|
[tool.poetry.extras]
|
|
43
43
|
mcp = ["mcp"]
|
|
@@ -80,7 +80,7 @@ pytest-xdist = "^3.8.0"
|
|
|
80
80
|
openpyxl = "^3.1.5"
|
|
81
81
|
|
|
82
82
|
# MCP server (optional feature, also needed for type checking)
|
|
83
|
-
mcp = ">=
|
|
83
|
+
mcp = ">=2,<3"
|
|
84
84
|
|
|
85
85
|
[tool.pytest.ini_options]
|
|
86
86
|
addopts = "--cov slcli --strict-markers --doctest-modules --ignore=tests/e2e"
|
|
@@ -14,6 +14,8 @@ import click
|
|
|
14
14
|
|
|
15
15
|
from .utils import ExitCodes
|
|
16
16
|
|
|
17
|
+
DEFAULT_STREAMABLE_HTTP_PORT = 8765
|
|
18
|
+
|
|
17
19
|
|
|
18
20
|
def _slcli_exe() -> str:
|
|
19
21
|
"""Return the absolute path to the slcli executable, or 'slcli' as a fallback."""
|
|
@@ -26,7 +28,7 @@ def _vscode_server_entry(slcli_exe: str) -> Dict[str, Any]:
|
|
|
26
28
|
return {
|
|
27
29
|
"type": "stdio",
|
|
28
30
|
"command": slcli_exe,
|
|
29
|
-
"args": ["mcp", "serve"],
|
|
31
|
+
"args": ["mcp", "serve", "--transport", "stdio"],
|
|
30
32
|
}
|
|
31
33
|
|
|
32
34
|
|
|
@@ -34,7 +36,7 @@ def _claude_server_entry(slcli_exe: str) -> Dict[str, Any]:
|
|
|
34
36
|
"""Return the Claude Desktop / Cursor MCP server JSON object for slcli."""
|
|
35
37
|
return {
|
|
36
38
|
"command": slcli_exe,
|
|
37
|
-
"args": ["mcp", "serve"],
|
|
39
|
+
"args": ["mcp", "serve", "--transport", "stdio"],
|
|
38
40
|
}
|
|
39
41
|
|
|
40
42
|
|
|
@@ -150,7 +152,7 @@ def register_mcp_commands(cli: Any) -> None:
|
|
|
150
152
|
"--transport",
|
|
151
153
|
"-T",
|
|
152
154
|
type=click.Choice(["stdio", "streamable-http"]),
|
|
153
|
-
default="
|
|
155
|
+
default="streamable-http",
|
|
154
156
|
show_default=True,
|
|
155
157
|
help=(
|
|
156
158
|
"Transport layer: 'stdio' for AI client integration, "
|
|
@@ -160,7 +162,7 @@ def register_mcp_commands(cli: Any) -> None:
|
|
|
160
162
|
@click.option(
|
|
161
163
|
"--port",
|
|
162
164
|
"-p",
|
|
163
|
-
default=
|
|
165
|
+
default=DEFAULT_STREAMABLE_HTTP_PORT,
|
|
164
166
|
show_default=True,
|
|
165
167
|
help="Port to bind to (streamable HTTP transport only).",
|
|
166
168
|
)
|
|
@@ -173,36 +175,35 @@ def register_mcp_commands(cli: Any) -> None:
|
|
|
173
175
|
def serve(transport: str, port: int, host: str) -> None:
|
|
174
176
|
"""Start the MCP server.
|
|
175
177
|
|
|
176
|
-
Defaults to
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
any client that prefers a persistent HTTP connection.
|
|
178
|
+
Defaults to streamable HTTP on localhost — useful for the MCP Inspector,
|
|
179
|
+
browser-based tooling, or any client that prefers a persistent HTTP connection.
|
|
180
|
+
Use stdio explicitly for AI clients that launch the server as a subprocess.
|
|
180
181
|
|
|
181
182
|
\b
|
|
182
|
-
|
|
183
|
+
Streamable HTTP (default on http://127.0.0.1:8765/mcp):
|
|
183
184
|
slcli mcp serve
|
|
185
|
+
slcli mcp serve --transport streamable-http --host 0.0.0.0 --port 9000
|
|
184
186
|
|
|
185
187
|
\b
|
|
186
|
-
|
|
187
|
-
slcli mcp serve --transport
|
|
188
|
-
slcli mcp serve --transport streamable-http --host 0.0.0.0 --port 9000
|
|
188
|
+
Stdio (for direct AI client integration):
|
|
189
|
+
slcli mcp serve --transport stdio
|
|
189
190
|
|
|
190
191
|
\b
|
|
191
192
|
Test with the MCP Inspector (Streamable HTTP):
|
|
192
|
-
slcli mcp serve
|
|
193
|
+
slcli mcp serve
|
|
193
194
|
npx @modelcontextprotocol/inspector
|
|
194
|
-
# connect to http://127.0.0.1:
|
|
195
|
+
# connect to http://127.0.0.1:8765/mcp (transport: Streamable HTTP)
|
|
195
196
|
"""
|
|
196
197
|
try:
|
|
197
198
|
from .mcp_server import main as run_mcp_server
|
|
198
|
-
from .mcp_server import
|
|
199
|
+
from .mcp_server import run_streamable_http
|
|
199
200
|
except ImportError:
|
|
200
201
|
click.echo(
|
|
201
202
|
"✗ The 'mcp' package is not installed.\n"
|
|
202
|
-
" Install it with: pip install 'mcp>=
|
|
203
|
-
" Or in a Poetry project: poetry add mcp\n"
|
|
203
|
+
" Install it with: pip install 'mcp>=2,<3'\n"
|
|
204
|
+
" Or in a Poetry project: poetry add 'mcp>=2,<3'\n"
|
|
204
205
|
" If slcli was installed with pipx:\n"
|
|
205
|
-
" pipx runpip systemlink-cli install 'mcp>=
|
|
206
|
+
" pipx runpip systemlink-cli install 'mcp>=2,<3'\n",
|
|
206
207
|
err=True,
|
|
207
208
|
)
|
|
208
209
|
sys.exit(ExitCodes.GENERAL_ERROR)
|
|
@@ -210,9 +211,6 @@ def register_mcp_commands(cli: Any) -> None:
|
|
|
210
211
|
if transport == "stdio":
|
|
211
212
|
run_mcp_server()
|
|
212
213
|
else:
|
|
213
|
-
mcp_server.settings.host = host
|
|
214
|
-
mcp_server.settings.port = port
|
|
215
|
-
|
|
216
214
|
click.echo(
|
|
217
215
|
"✓ slcli MCP server starting in streamable HTTP mode on "
|
|
218
216
|
f"http://{host}:{port}/mcp"
|
|
@@ -224,7 +222,7 @@ def register_mcp_commands(cli: Any) -> None:
|
|
|
224
222
|
click.echo(" Press Ctrl+C to stop.\n")
|
|
225
223
|
|
|
226
224
|
try:
|
|
227
|
-
|
|
225
|
+
run_streamable_http(host=host, port=port)
|
|
228
226
|
except KeyboardInterrupt:
|
|
229
227
|
click.echo("\nslcli MCP server stopped")
|
|
230
228
|
sys.exit(0)
|