Kubernetes 5G Core MCP Server

Local setup required. This server has to be cloned and prepared on your machine before you register it in Claude Code.
1

Set the server up locally

Run this once to clone and prepare the server before adding it to Claude Code.

Run in terminal
pip install -r requirements.txt
2

Register it in Claude Code

After the local setup is done, run this command to point Claude Code at the built server.

Run in terminal
claude mcp add kubernetes-5g -- python "<FULL_PATH_TO_MCP5G>/dist/index.js"

Replace <FULL_PATH_TO_MCP5G>/dist/index.js with the actual folder you prepared in step 1.

README.md

Exposes Kubernetes cluster state with 5G Core and telecom awareness

Kubernetes MCP Server – 5G Core Edition

An MCP (Model Context Protocol) server that exposes your Kubernetes cluster state with full 5G Core / telecom awareness to any MCP-compatible LLM (Claude Desktop, etc.).


Features

Generic Kubernetes tools

Tool Description
k8s_get_pods List pods with optional NF-type filter
k8s_get_deployments Deployment replicas and health
k8s_get_services Services + SBI endpoint detection
k8s_get_pod_logs Logs with 5G error annotations
k8s_describe_pod Full pod spec + events
k8s_get_configmaps ConfigMaps with 5G field extraction
k8s_get_nodes Node capacity, DPDK/SR-IOV labels
k8s_get_events Cluster events

5G Telecom-specific tools

Tool Description
fiveg_core_topology Full NF map: pods, SBI endpoints, PLMN, slices
fiveg_nf_status Deep status for a specific NF (AMF/SMF/UPF/…)
fiveg_upf_dataplane N3/N4/N6/N9 interfaces, DPDK, hugepages
fiveg_slice_info S-NSSAI / DNN / PLMN from ConfigMaps
fiveg_health_check Full health report with recommendations

MCP Resources (static reference)

  • 5g://nf-reference – 3GPP TS 23.501 NF descriptions, SBI APIs, interface mapping
  • 5g://interface-map – N1–N26 reference-point descriptions

Supported 5G NFs (auto-detected from pod/deployment names & labels)

AMF · SMF · UPF · NRF · AUSF · UDM · UDR · PCF · NSSF · BSF · CHF · AF · N3IWF · SEPP

Tested against: Open5GS, free5GC, SD-Core, OAI-CN5G


Requirements

  • Python ≥ 3.11
  • kubectl configured (in-cluster or local ~/.kube/config)

Installation

pip install -r requirements.txt

Running the server (stdio)

python server.py

The server communicates over stdio using the MCP protocol. It auto-detects in-cluster config, then falls back to ~/.kube/config. If neither is available it runs in mock mode with representative 5G core data.


HTTP Streamable transport (network-accessible)

This project also supports the MCP Streamable HTTP transport, which exposes an HTTP/SSE endpoint suitable for remote clients and deployments in Kubernetes.

Run locally:

export MCP_TRANSPORT=http
export MCP_HTTP_HOST=0.0.0.0
export MCP_HTTP_PORT=8000
# Require auth (recommended)
export DANGEROUSLY_OMIT_AUTH=false
export MCP_HTTP_BEARER_TOKEN="<your-long-random-token>"
python server.py
# Health checks
curl http://localhost:8000/health
curl http://localhost:8000/ready

MCP endpoint URL: http://localhost:8000/mcp

Register with Claude (example):

claude mcp add --transport http k8s-5g http://localhost:8000/mcp

Kubernetes deployment is provided under k8s/. The container image defaults to MCP_TRANSPORT=http and exposes port 8000 with readiness/liveness probes.

Notes:

  • Streamable HTTP requires Accept headers that include both application/json and text/event-stream for POST requests.
  • The server uses SSE for streaming responses by default.

Authentication (HTTP transport)

When running with MCP_TRANSPORT=http, this server supports a simple Bearer token guard on the /mcp endpoint.

  • Set DANGEROUSLY_OMIT_AUTH=false (default in Docker image) to enforce auth
  • Provide the secret in MCP_HTTP_BEARER_TOKEN
  • Health endpoints (/health, /ready) remain unauthenticated

Examples:

# Start server locally with a token
export MCP_TRANSPORT=http
export DANGEROUSLY_OMIT_AUTH=false
export MCP_HTTP_BEARER_TOKEN="s3cret-EXAMPLE-TOKEN"
python server.py

# Unauthorized request (401)
curl -i -X POST \
  -H 'Accept: application/json, text/event-stream' \
  -H 'Content-Type: application/json' \
  --data '{"jsonrpc":"2.0","id":"1","method":"initialize","params":{}}' \
  http://localhost:8000/mcp

# Authorized request (will advance handshake rather than 401)
curl -i -X POST \
  -H 'Authorization: Bearer s3cret-EXAMPLE-TOKEN' \
  -H 'Accept: application/json, text/event-stream' \
  -H 'Content-Type: application/json' \
  --data '{"jsonrpc":"2.0","id":"1","method":"initialize","params":{}}' \
  http://localhost:8000/mcp

Kubernetes:

# Create secret with your token
kubectl -n mcp5g create secret generic mcp5g-auth \
  --from-literal=token="s3cret-EXAMPLE-TOKEN"

# Apply namespace/RBAC/deployment
kubectl apply -f k8s/namespace.yaml
kubectl apply -f k8s/rbac.yaml
kubectl apply -f k8s/deployment.yaml

Security notes:

  • Use a long, random token. Rotate via Secret update and rollout.
  • For public endpoints, place this behind TLS and a network perimeter/proxy.
  • For advanced OAuth 2.1 integration, consider wiring mcp.server.auth as a future enhancement.

Claude Desktop integration (stdio)

Edit ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "k8s-5g": {
      "command": "python",
      "args": ["/absolute/path/to/k8s-5g-mcp/server.py"],
      "env": {
        "KUBEC

Tools (13)

k8s_get_podsList pods with optional NF-type filter
k8s_get_deploymentsDeployment replicas and health
k8s_get_servicesServices and SBI endpoint detection
k8s_get_pod_logsLogs with 5G error annotations
k8s_describe_podFull pod spec and events
k8s_get_configmapsConfigMaps with 5G field extraction
k8s_get_nodesNode capacity, DPDK/SR-IOV labels
k8s_get_eventsCluster events
fiveg_core_topologyFull NF map including pods, SBI endpoints, PLMN, and slices
fiveg_nf_statusDeep status for a specific NF like AMF, SMF, or UPF
fiveg_upf_dataplaneN3/N4/N6/N9 interfaces, DPDK, and hugepages info
fiveg_slice_infoS-NSSAI, DNN, and PLMN from ConfigMaps
fiveg_health_checkFull health report with recommendations

Environment Variables

MCP_TRANSPORTTransport mode (stdio or http)
MCP_HTTP_HOSTHost for HTTP transport
MCP_HTTP_PORTPort for HTTP transport
DANGEROUSLY_OMIT_AUTHDisable authentication for HTTP transport
MCP_HTTP_BEARER_TOKENBearer token for HTTP transport authentication

Configuration

claude_desktop_config.json
{"mcpServers": {"k8s-5g": {"command": "python", "args": ["/absolute/path/to/k8s-5g-mcp/server.py"]}}}

Try it

Show me the current status of all AMF and UPF pods in the cluster.
Run a health check on the 5G core and suggest improvements for any detected issues.
List all network slices and their associated S-NSSAI configurations.
Describe the pod spec for the SMF deployment and check for any recent error events.
Show me the N3 and N4 interface configuration for the UPF data plane.

Frequently Asked Questions

What are the key features of Kubernetes 5G Core MCP Server?

Exposes Kubernetes cluster state with 5G Core telecom awareness. Auto-detects 5G Network Functions (NFs) from pod names and labels. Provides deep status and health reporting for 5G-specific components. Supports both stdio and HTTP/SSE transport protocols. Includes static reference resources for 3GPP TS 23.501 specifications.

What can I use Kubernetes 5G Core MCP Server for?

Analyzing 5G core network function health and connectivity in real-time. Troubleshooting 5G workload deployments using natural language queries. Auditing network slice configurations and interface mappings across the cluster. Monitoring DPDK and SR-IOV resource allocation on telecom-optimized nodes.

How do I install Kubernetes 5G Core MCP Server?

Install Kubernetes 5G Core MCP Server by running: pip install -r requirements.txt

What MCP clients work with Kubernetes 5G Core MCP Server?

Kubernetes 5G Core MCP Server works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep Kubernetes 5G Core MCP Server docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Need the old visual installer? Open Conare IDE.
Open Conare