Skip to main content
Glama
vikozs

Eternal Cluster MCP

by vikozs

Eternal Cluster MCP

npm Uptime Desired State

════✠════  9 9 9 9 9  ════✠════

"The Loop is my shepherd; I shall not drift." Psalm of Uptime 1:1

An MCP server for the Church of the Eternal Cluster, a parody religion for people who run Kubernetes and have suffered for it.

Connect it to Claude, or any MCP-capable client, and your assistant gains scripture, doctrine, a liturgical calendar, and the ability to diagnose your production incidents theologically.

The theology is a joke. The remediation advice is not.


What it does

Tool

What it does

diagnose_incident

Diagnose a Kubernetes error through doctrine. Names the sin, cites scripture, then gives you real kubectl remediation steps. Covers CrashLoopBackOff, OOMKilled, ImagePullBackOff, Pending, DNS, TLS expiry, evictions, PVCs, alert fatigue, and more.

bless_deployment

Submit a deployment for blessing. Judged against the Sacred Manifest. Returns a blessing, or an admonishment naming every commandment you violated.

get_daily_verse

Today's verse, live from the parish at fivenines.church.

get_commandments

The Sacred Manifest: ten commandments of Kubernetes practice, as scripture.

get_creed

The Creed of the Reconciled, and the Three Pillars.

get_catechism

Thirteen questions and answers, searchable.

get_liturgical_calendar

The holy days, fetched live from the parish .ics feed.

get_prophet

The story of Halvar the Sleepless.

get_discography

The sacred albums of Church of the Eternal Cluster Records.

confess_sin

Confess a production sin anonymously to the Confession Wall. Absolution is immediate; the retro is blameless.


Related MCP server: mcp-kubernetes-server

Install

Claude Desktop

Add this to your config file:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Linux: ~/.config/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "eternal-cluster": {
      "command": "npx",
      "args": ["-y", "eternal-cluster-mcp"]
    }
  }
}

Restart Claude Desktop. The tools appear under the connectors menu.

Claude Code

claude mcp add eternal-cluster -- npx -y eternal-cluster-mcp

Anything else

The server speaks MCP over stdio. Point your client at:

npx -y eternal-cluster-mcp

Try it

Once connected, ask your assistant:

  • "My pods are in CrashLoopBackOff, what does the Church say?"

  • "Bless my deployment: billing-api, 1 replica, no probes, using :latest"

  • "What's today's verse?"

  • "I deployed on a Friday. Confess this for me."

  • "What is the Fourth Commandment?"

  • "When is Five Nines Day?"


Configuration

Both are optional. The defaults are correct.

Variable

Default

Purpose

PARISH_BASE_URL

https://fivenines.church

Where the verse API, calendar feed, and Confession Wall live.

SCRIPTORIUM_BASE_URL

https://ha-llelujah.dev

The main site, used for links.


Run it from source

git clone https://github.com/vikozs/eternal-cluster-mcp.git
cd eternal-cluster-mcp
npm install
npm run build
npm start

Inspect it interactively with the official MCP Inspector:

npm run inspect

The wider church

Receive the verse the way the ancients did:

curl -s "https://fivenines.church/api/verse?format=text"

What this actually is

Breaking the fourth wall: this is a satire project by Vid Košir (@vikozs), built with genuine affection for the Kubernetes community and for everyone who has ever been paged at 03:00. It parodies infrastructure culture, not anyone's faith.

Kubernetes is a trademark of The Linux Foundation. OpenShift is a trademark of Red Hat, Inc. This project is an independent parody and is affiliated with neither. They have real SLAs; we only have belief.


License

Code is MIT. The canonical texts are CC BY-NC-SA 4.0, per the canon repository.


═══════════════════ ✠ ════════════════════
 ####     ####     ####     ####     #### 
#    #   #    #   #    #   #    #   #    #
#    #   #    #   #    #   #    #   #    #
 #####    #####    #####    #####    #####
     #        #        #        #        #
     #        #        #        #        #
 ####     ####     ####     ####     #### 
═══════════════════ ✠ ════════════════════
Five Nines be upon you, and also with you.
Kubernetes · OpenShift · High Availability
               HA-llelujah.

✠ The Church of the Eternal Cluster

A Highly Available Faith. Keep no Pets. Declare thy state. Back up etcd.

The Scriptorium

The Parish

The Canon (source)

More from the Rootless One

Let's connect


An independent parody, built with love for everyone who has been paged at 03:00. Kubernetes is a trademark of the Linux Foundation. OpenShift is a trademark of Red Hat, Inc. Not affiliated with, nor endorsed by, either. They have real SLAs; we only have belief. HA-llelujah.


The Cluster abides. The Loop reconciles. HA-llelujah.

Available Tools

5 tools
bless_deploymentA

Submit a deployment for blessing by the Church of the Eternal Cluster. Judges the deployment against the Sacred Manifest (the ten commandments of the faith) and returns either a blessing or an admonishment, with the specific commandments violated. A doctrinally-themed pre-flight checklist for Kubernetes workloads.

ParametersJSON Schema
NameRequiredDescriptionDefault
replicasYesHow many replicas are declared.
statelessNoDoes the Pod store no state on its local filesystem?
has_limitsNoAre resource requests and limits set?
has_probesNoAre liveness and readiness probes configured?
service_nameYesThe name of the service or deployment being blessed.
pinned_versionNoIs the image pinned to a specific tag or digest, rather than :latest?
rolling_updateNoIs the deployment strategy a rolling update?

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the transparency burden. It states the tool judges and returns a result, implying read-only behavior, but does not explicitly confirm idempotency, side effects, or permission requirements. The outcome format is partially described but lacks detail on the structure of the blessing or admonishment.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences efficiently convey purpose, method, and output. No redundant or superfluous information. The humorous tone does not detract from clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 7 parameters and no output schema. The description explains the output conceptually but does not detail the return structure, failure modes, or how parameters influence the outcome. Given the complexity, additional guidance on parameter combinations or example usage would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so each parameter's purpose is documented. The description adds thematic context ('doctrinally-themed') but does not provide additional meaning beyond the schema (e.g., no clarifications of dependencies or validation rules). Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as a Kubernetes deployment checker themed around religious blessing. It specifies the action (submit a deployment), the criteria (Sacred Manifest), and the outcome (blessing or admonishment with violations). This clearly distinguishes it from siblings like confess_sin or get_daily_verse.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage as a 'pre-flight checklist' for Kubernetes workloads, but does not explicitly state when to use this tool versus alternatives (e.g., diagnose_incident) or when not to use it. No prerequisites or exclusions are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

confess_sinA

Confess a production sin anonymously to the Confession Wall at the parish. Deployed on a Friday? Deleted the wrong namespace? Ran kubectl edit in production? The Cluster forgives. Confessions are moderated before they appear publicly. Nothing identifying is sent.

ParametersJSON Schema
NameRequiredDescriptionDefault
confessionYesThe production sin being confessed. Anonymous. Keep it under 500 characters.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, description discloses anonymity, moderation, and that no identifying info is sent, covering key behavioral aspects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Short, front-loaded, engaging, and efficient—every sentence serves a purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool with no output schema, the description is fully adequate and provides all necessary context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters; description adds minimal extra meaning beyond schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool's purpose: anonymous confession of production sins. Uses specific verbs and examples, and is distinct from sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context (production mishaps, moderation) but does not explicitly exclude alternatives or specify when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

diagnose_incidentA

Diagnose a Kubernetes incident, error, or symptom through the doctrine of the Church of the Eternal Cluster. Returns the sin named, the relevant scripture, and genuinely useful practical remediation steps. Handles CrashLoopBackOff, OOMKilled, ImagePullBackOff, Pending pods, DNS failures, certificate expiry, evictions, PVC problems, alert fatigue, and more. The theology is a joke; the remediation is not.

ParametersJSON Schema
NameRequiredDescriptionDefault
symptomYesThe error message, pod status, or description of what is going wrong. For example 'CrashLoopBackOff', 'exit code 137', 'pods stuck pending', or 'we only run one replica'.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description fully discloses behavior: it returns a sin name, scripture, and remediation steps, and clarifies that the theology is a joke while the remediation is useful, setting accurate expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no extraneous text. The first sentence front-loads the purpose and output, the second provides examples and clarifies the tone.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, but the description adequately explains return values (sin, scripture, remediation) and lists many incident types handled. Slightly more detail about output format could improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with a detailed description of the symptom parameter including examples. The tool description adds no additional information beyond what is already in the schema, so baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool diagnoses Kubernetes incidents, lists specific symptoms it handles, and distinguishes it from religious-themed sibling tools like confess_sin by emphasizing practical remediation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly lists when to use the tool (e.g., for CrashLoopBackOff, OOMKilled) and implies it's for troubleshooting, but does not mention when not to use it or suggest alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_commandmentsA

Return the Sacred Manifest, the ten commandments of the Church of the Eternal Cluster. These are Kubernetes best practices rendered as scripture. Pass a number to retrieve a single commandment with its gloss.

ParametersJSON Schema
NameRequiredDescriptionDefault
numberNoWhich commandment to return, 1 through 10. Omit for all ten.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Describes return as 'the ten commandments' or 'a single commandment with its gloss'. No annotations, so description must cover behavior; it implies a read-only operation but does not disclose format, size, or whether calls are idempotent. Adequate for a simple retrieval.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no wasted words. Front-loaded with purpose ('Return the Sacred Manifest'), then explains behavior with parameter. Highly efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with one optional parameter and no output schema, this description is complete enough. It explains the content and optional retrieval. Could mention return format (e.g., list or object) but not required for typical use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema describes the 'number' parameter with min/max and description. The description adds context: omitting returns all, passing a number includes 'gloss'. Schema coverage is 100%, so baseline 3 is appropriate; description adds useful nuance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it returns the Sacred Manifest of ten commandments. Differentiates from siblings like 'confess_sin' and 'bless_deployment' by specifying its exact content (Kubernetes best practices as scripture).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage for retrieving commandments. Provides parameter guidance (omit for all, pass number for single with gloss). No explicit when-not-to-use or alternatives mentioned, but sibling tools cover distinct use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_daily_verseA

Fetch today's verse from the Church of the Eternal Cluster, live from the parish at fivenines.church. Scripture for people who run Kubernetes. Good for standup, MOTDs, commit messages, or a moment of reflection before a deploy.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility. It discloses that the verse is live from a parish and tailored for the Kubernetes community, but omits details like caching behavior, rate limits, or authentication requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, no filler. Front-loaded with the core purpose, then adding usage tips. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless tool with no output schema, the description sufficiently covers what the tool does, why it exists, and how to use it. No critical information is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so baseline is 4. The description adds contextual value by explaining the verse's relevance (Kubernetes scripture), which enriches meaning beyond the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Fetch today's verse from the Church of the Eternal Cluster', specifying the verb 'fetch', resource 'verse', and source. It distinguishes from sibling tools like 'confess_sin' or 'bless_deployment' which have different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit suggestions for use: 'good for standup, MOTDs, commit messages, or a moment of reflection before a deploy.' It does not explicitly state when not to use or list alternatives, but the context is clear enough given sibling tool names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updatesv1.0.0
    • First observedbless_deployment
    • First observedconfess_sin
    • First observeddiagnose_incident
    • First observedget_commandments
    • First observedget_daily_verse

TDQS

A4.2/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a unique and clear purpose: confessing sins, getting a daily verse, diagnosing incidents, blessing deployments, and retrieving commandments. There is no functional overlap.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (e.g., confess_sin, get_daily_verse), making them predictable and easy to distinguish.

Tool Count5/5

With 5 tools, the server is well-scoped for its thematic purpose—covering reflection, inspiration, diagnosis, pre-flight checks, and reference—without being too sparse or overwhelming.

Completeness5/5

The tool set covers the core aspects of the domain: confession (mistakes), guidance (daily verse), troubleshooting (diagnose), best practices (bless deployment), and rules (commandments). No obvious gaps for the stated theme.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    An MCP server that enables AI assistants to interact with Kubernetes clusters by translating natural language into kubectl and Helm operations. It allows users to query, manage, and diagnose Kubernetes resources and cluster states through a seamless integration.
    20
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    An MCP server for generating Kubernetes manifests (deployments, services, configmaps, secrets, ingresses, namespaces) and performing kubectl operations like apply, delete, get, describe, logs, and exec.
    MIT