nlalpha-capability
Capability discovery MCP server for the NLAlpha quantitative strategy workflow engine.
Positioning
This package is independent of strategy generation (nlalpha-strategy) and backtest execution (nlalpha-backtest). It only exposes capability discovery tools for agents to query available helpers by domain and decide which capabilities to call.
Tools
list_capability_domains(): returns the exactdomainlabels that currently have available helpers.list_capabilities_by_domain(domain): matches helperdomainexactly; returns name,category(functionorproperty), signature, description, source plugin, and read-only flag.list_family_helpers(family, domain=""): returns helpers of a discovered strategy family; an empty domain returns all helpers of that family.list_capability_providers(): returns entry point, distribution, version, manifest classification, and helper count for each available provider.diagnose_providers(): returns installed but unavailable or failed capability/family plugins with reasons. Uninstalled optional plugins are not reported as failures.
Provider manifest domains are provider classifications; helper domain is a per-helper label. They are stored and queried under different contracts. category indicates a function or a read-only property and is not a domain. Provider discovery caches one instance and result per entry point; only providers with available status and a valid manifest enter the catalog.
Stable provider identities currently include talib, performance, and statistics_impl. When an optional dependency is missing, an installed plugin keeps the same provider ID and appears in diagnostics as unavailable with a reason; the catalog only returns available providers. Querying an uninstalled optional family does not fail server startup.
Dependencies
nlalpha-core: provides theCapabilityPluginRegistryandProviderManifestcontracts.mcp>=1.6.0: MCP server runtime.
Installation
pip install nlalpha-capability
Running
NLALPHA_HOST=127.0.0.1 NLALPHA_PORT=8000 python -m nlalpha_capability.server
Or via the stdio transport:
python -c "from nlalpha_capability.server import main; main()"
DNS-rebinding protection allows only localhost/loopback by default. When a container or gateway uses another host, list the hosts explicitly through NLALPHA_ALLOWED_HOSTS; do not use wildcards.
Focused verification
The capability discovery suite passed 26 tests and 37 subtests, with 1 warning, in 3.76 seconds. This verifies the focused capability cases only; it is not a full release-gate result.
Self-description
about(sections=None) reports the service catalog and discovery diagnostics. confess(provider_id, sections=None) describes the cached provider manifest, declared methods, helper entries, and optional declared guidance. Reuse a complete description while its SHA-256 revision is unchanged and request selected sections when only part is needed. A missing required description document is an explicit discovery error; no synthetic helper is created to fill an absent optional provider.
Description revisions
about and provider confess use nlalpha.description.v1 and derive their content from the cached discovery records, installed package metadata, provider manifest, declared methods, helper records, and packaged resources. Selected sections and complete documents carry the same canonical description_revision. The available catalog includes only providers that are actually available; diagnostics describe installed or registered providers that cannot load. Missing optional providers do not create synthetic catalog entries.
License
nlalpha-capability is a community distribution under AGPL-3.0-or-later. Private enhancement packages and third-party dependencies retain their own licenses.
Container image
The community image is built with this package's Dockerfile and installs a non-editable wheel closure on Python 3.12 slim. It runs this service's MCP entry point.
Metadata
Release files for nlalpha-capability 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| nlalpha_capability-0.2.0.tar.gz | 26.9 kB | Without provenance | Details for nlalpha_capability-0.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| nlalpha_capability-0.2.0-py3-none-any.whl | Python 3 | none | any | Details for nlalpha_capability-0.2.0-py3-none-any.whl |
Total release size: 45.1 kB
Release files / nlalpha_capability-0.2.0.tar.gz
| Download URL | nlalpha_capability-0.2.0.tar.gz |
|---|---|
| Size | 26.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
695c9408a8d6c3688cd7cf1484c4448ea4dc77ab792cc6dcfb5372a8b7db9c41
|
|
BLAKE2b-256 checksum How to use checksums |
3d56e71d0022a83524f0a48bf176017e56d6d75af556c624329a6a6eddc9a79e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|
Release files / nlalpha_capability-0.2.0-py3-none-any.whl
| Download URL | nlalpha_capability-0.2.0-py3-none-any.whl |
|---|---|
| Size | 18.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
53bc3336c488af8bf2436a62b40fe6692dd1116389fa840a8a7d1225d14d6626
|
|
BLAKE2b-256 checksum How to use checksums |
41b4dfab82111b4d65a28bfcedc8f146b324956c4c08c794ff5486d34d8b0b9d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|
Security for nlalpha-capability 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.