MCP server exposing the GreenerPlatform deterministic reliability tools (kubectl-sentinel, incident-triage) to any AI agent.
Project description
greenerplatform-mcp
An MCP server that exposes the GreenerPlatform deterministic reliability tools to any MCP-capable agent — Cursor, Claude Desktop, VS Code, Windsurf, or your own client. Install once; the tools work everywhere.
It wraps two CLIs:
sentinel_snapshot— a deterministic 15-dimension cluster-health snapshot (kubectl-sentinel).triage_incident— correlate an alert to cluster findings, build a causation chain, and return a P1/P2/P3 fix plan (incident-triage).
Neither tool carries an LLM or any vendor coupling. This server is a thin, neutral adapter. The agent reasons over the evidence the tools produce — it is bounded by the evidence, it does not guess at cluster state.
Prerequisites
- Python 3.10+
kubectl-sentinelandincident-triageon yourPATH(or setSENTINEL_BIN/TRIAGE_BINto their locations)kubectl+jqfor live cluster snapshots
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" }
}
}
Any other MCP client uses the same pattern: run greenerplatform-mcp over stdio.
Tools
| Tool | Arguments | Returns |
|---|---|---|
sentinel_snapshot |
namespace?, context?, resource? |
cluster-health JSON |
triage_incident |
alert, sentinel_json?, namespace?, context? |
triage JSON (cause + fix plan) |
If triage_incident is called without sentinel_json, it collects a fresh snapshot
first (requires cluster access).
Version guard
A stale CLI silently emits fewer checks — for example, kubectl-sentinel 1.1.0
returns 10 of the 15 health dimensions. To keep an agent from reasoning over an
incomplete snapshot, 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.1.0 is older than the expected 1.2.1; output may be missing checks — update kubectl-sentinel"] }
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.2.1 |
warn if the installed sentinel is older |
MIN_TRIAGE_VERSION |
1.2.1 |
warn if the installed triage is older |
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.0 && git push origin v0.1.0
gh release create v0.1.0 --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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file greenerplatform_mcp-0.1.0.tar.gz.
File metadata
- Download URL: greenerplatform_mcp-0.1.0.tar.gz
- Upload date:
- Size: 10.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
67ab936cc503abd75c244efd13b54d1f76580ca4e7b9d8e1e773d222f979edf8
|
|
| MD5 |
be1e2fd4728bffd5f22aea9b2bc62b71
|
|
| BLAKE2b-256 |
a21b7182d6bbd8d5b21cfdde4c5a438f4495132ab328e26fa7d6033dada4f957
|
Provenance
The following attestation bundles were made for greenerplatform_mcp-0.1.0.tar.gz:
Publisher:
publish.yml on GreenerPlatform/greenerplatform-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
greenerplatform_mcp-0.1.0.tar.gz -
Subject digest:
67ab936cc503abd75c244efd13b54d1f76580ca4e7b9d8e1e773d222f979edf8 - Sigstore transparency entry: 2164451053
- Sigstore integration time:
-
Permalink:
GreenerPlatform/greenerplatform-mcp@45aaa8ffdfbf6119594d9ffa289f1a3c39c5efd0 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/GreenerPlatform
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@45aaa8ffdfbf6119594d9ffa289f1a3c39c5efd0 -
Trigger Event:
release
-
Statement type:
File details
Details for the file greenerplatform_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: greenerplatform_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 11.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
13596a02ef30fa1bf5ada57a0ddd2c842da79159d4c36ab2809593e2a1c7b450
|
|
| MD5 |
589137418bdd7d68086fb66b38a3cc98
|
|
| BLAKE2b-256 |
eed978bb45f860249ab166dc983f5a140bb9c9cbe36a0202f28f6df20b351210
|
Provenance
The following attestation bundles were made for greenerplatform_mcp-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on GreenerPlatform/greenerplatform-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
greenerplatform_mcp-0.1.0-py3-none-any.whl -
Subject digest:
13596a02ef30fa1bf5ada57a0ddd2c842da79159d4c36ab2809593e2a1c7b450 - Sigstore transparency entry: 2164451075
- Sigstore integration time:
-
Permalink:
GreenerPlatform/greenerplatform-mcp@45aaa8ffdfbf6119594d9ffa289f1a3c39c5efd0 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/GreenerPlatform
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@45aaa8ffdfbf6119594d9ffa289f1a3c39c5efd0 -
Trigger Event:
release
-
Statement type: