greenerplatform-mcp
An MCP server that exposes the GreenerPlatform command-line evidence tools to compatible MCP hosts. It is a thin adapter: it does not contain a model, verify causal claims, or enforce how a host uses the returned evidence.
Available on PyPI:
pipx install greenerplatform-mcp
It wraps two CLIs:
sentinel_snapshot— a 15-dimension Kubernetes health report (kubectl-sentinel).triage_incident— correlate a normalized alert with cluster observations and return ranked evidence and candidate response steps (incident-triage).
Neither tool carries an LLM. The schemas make observations, provenance, and evidence gaps available to the host, but the adapter cannot guarantee correct model behavior.
Prerequisites
- Python 3.10+
- Linux or a Linux environment such as WSL for the current
kubectl-sentinelBash CLI kubectl-sentinel1.3.2 andincident-triage1.3.2 on yourPATH(or setSENTINEL_BIN/TRIAGE_BIN)kubectl,jq, cluster credentials, and the required Kubernetes RBAC for live reports
Install
pipx install greenerplatform-mcp
# or: pip install greenerplatform-mcp
Configure your agent
Cursor — ~/.cursor/mcp.json (or a project .cursor/mcp.json):
{
"mcpServers": {
"greenerplatform": { "command": "greenerplatform-mcp" }
}
}
Claude Desktop — claude_desktop_config.json:
{
"mcpServers": {
"greenerplatform": { "command": "greenerplatform-mcp" }
}
}
Other MCP hosts can run greenerplatform-mcp over stdio, but their configuration keys and
security models differ. The examples above are configuration examples, not a universal
compatibility guarantee.
Tools
| Tool | Arguments | Returns |
|---|---|---|
sentinel_snapshot |
namespace?, context? |
severity-ranked observations and collection status |
triage_incident |
alert, sentinel_json?, namespace?, context? |
ranked evidence, gaps, and candidate response steps |
If triage_incident is called without sentinel_json, it collects a fresh snapshot
first (requires cluster access).
The resource argument remains reserved for API compatibility. Resource deep-dive modes
in kubectl-sentinel currently emit text, not JSON, so the server returns an explicit
unsupported_resource error instead of an incomplete tool result.
Version guard
A stale CLI can emit fewer checks. The server checks each CLI's --version and, if it is
below the expected minimum, adds a non-destructive warnings array to the tool's JSON
output:
{ "warnings": ["kubectl-sentinel 1.3.0 is older than the expected 1.3.2; output may be missing checks — install the current source version."] }
The findings are still returned; the warning just flags that they may be partial. Set
MIN_SENTINEL_VERSION / MIN_TRIAGE_VERSION to change the expected minimums.
Environment
| Variable | Default | Purpose |
|---|---|---|
SENTINEL_BIN |
kubectl-sentinel on PATH |
path to the sentinel binary |
TRIAGE_BIN |
incident-triage on PATH |
path to the triage binary |
GP_MCP_TIMEOUT |
90 |
per-command timeout (seconds) |
MIN_SENTINEL_VERSION |
1.3.2 |
warn if the installed sentinel is older |
MIN_TRIAGE_VERSION |
1.3.2 |
warn if the installed triage is older |
Operational boundaries
- The server executes the configured CLIs and returns their stdout. It does not execute commands included in recommendations.
- Live collection contacts the selected Kubernetes API and may invoke credential plugins.
- Sentinel reports can contain cluster, workload, image, Secret, event, and log details. Treat them as sensitive and redact them before sharing.
- Rule-based output can be reproducible without being complete, correct, or causal.
- The current W5 gate covers offline fixtures; broader live-cluster and historical-source validation remains in progress.
Releasing
Releases publish to PyPI automatically via GitHub Actions using Trusted Publishing (OIDC) — no API tokens are stored anywhere.
One-time setup (on pypi.org):
- Sign in → Your projects → Publishing → Add a pending publisher.
- Project name
greenerplatform-mcp, ownerGreenerPlatform, repogreenerplatform-mcp, workflowpublish.yml, environmentpypi.
To cut a release:
# bump version in pyproject.toml, commit, then:
git tag v0.1.2 && git push origin v0.1.2
gh release create v0.1.2 --generate-notes
The Publish to PyPI workflow builds, runs twine check, and publishes. After the first
release, pipx install greenerplatform-mcp works for anyone.
License
Apache-2.0. See LICENSE, NOTICE, and the project
trademark policy.
Metadata
Release files for greenerplatform-mcp 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| greenerplatform_mcp-0.1.2.tar.gz | 11.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| greenerplatform_mcp-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 22.7 kB
Release files / greenerplatform_mcp-0.1.2.tar.gz
| Download URL | greenerplatform_mcp-0.1.2.tar.gz |
|---|---|
| Size | 11.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ad460655ed6b4dc126ab09c122105cd198ba4d60a90871064c6ceef3463ea0fe
|
|
BLAKE2b-256 checksum How to use checksums |
dd25a38810b932858d74824cbe71aa8e40b82e464a7152f3ce0e72d0ccf7a308
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 17, 2026.
Transparency logRelease files / greenerplatform_mcp-0.1.2-py3-none-any.whl
| Download URL | greenerplatform_mcp-0.1.2-py3-none-any.whl |
|---|---|
| Size | 11.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0280e4e3b5cc039a316cbb9ff23ac94b9031fbabaed4535c4793913335d32390
|
|
BLAKE2b-256 checksum How to use checksums |
239f2ab8b8cb9481c7f65f0894f861ea8f37384b472619b5e4df50bd0c5c0ba2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 17, 2026.
Transparency log