MCP RAN POC

by pixelsoccupied

Not rated
GitHub

About

An MCP server for querying databases and managing Kubernetes clusters.

Details

Author
pixelsoccupied
Categories
Database, Other, Infrastructure

Setup

Install MCP RAN POC in your MCP client (Claude Desktop, Cursor, Windsurf, and others).

Repository: https://github.com/pixelsoccupied/mcp-ran-poc

Follow the installation instructions in the repository README, then restart your MCP client.

⚠️ WARNING: THIS IS A PROOF OF CONCEPT (POC) - NOT FOR PRODUCTION USE ⚠️

This repository contains MCP (Model Context Protocol) servers and an ADK agent for database querying and Kubernetes cluster management:
- TALM MCP Server- TALM (Topology Aware Lifecycle Manager) interface for Red Hat ACM
- PostgreSQL MCP Server- Natural language SQL query interface for PostgreSQL databases
- ADK Agent- Google ADK agent providing unified web-based natural language interface to both MCP servers

┌─────────────────────┐ ┌─────────────────────┐ ┌─────────────────────┐ │ Web Browser │ │ Claude Desktop │ │ Other MCP │ │ + ADK Agent │ │ Client │ │ Clients │ │ :8000 │ │ │ │ │ └─────────┬───────────┘ └─────────┬───────────┘ └─────────┬───────────┘ │ │ │ └──────────────┬───────────┴────────────┬─────────────┘ │ │ ▼ ▼ ┌─────────────────────────┐ ┌─────────────────────────────────┐ │ PostgreSQL MCP │ │ TALM MCP Server │ │ Server :3000 │ │ :3001 │ └─────────┬───────────────┘ └─────────┬───────────────────────┘ │ │ ▼ ▼ ┌─────────────────────────┐ ┌─────────────────────────────────┐ │ PostgreSQL Database │ │ Kubernetes Clusters │ └─────────────────────────┘ └─────────────────────────────────┘
# Install dependencies uv sync # Run PostgreSQL MCP server (port 3000) uv run python servers/ocloud-pg.py --transport streamable-http --port 3000 # Run TALM MCP server (port 3001) uv run python servers/talm.py --transport streamable-http --port 3001 # Run ADK web interface (connects to both servers) cd clients && adk web

OpenShift Container Platform (OCP) Deployment

- OpenShift CLI (oc) installed and logged in
- Docker/Podman for building images
- Access to a container registry (quay.io)

# 1. Setup environment variables cp .env.example .env # Edit .env with your PostgreSQL and OpenAI credentials # 2. Build and push container image make dev-build-push # 3. Deploy to OpenShift make deploy # 4. Get application URL oc get route mcp-app-route -n mcp-poc -o jsonpath='{.spec.host}'

- make build- Build Docker image
- make push- Push image to registry
- make dev-build-push- Build and push with dev tag
- make deploy- Deploy to OpenShift using kustomize
- make undeploy- Remove deployment from OpenShift

Create.envfile with required variables:

# Multi-Database Configuration # Alarms Database ALARMS_DB_HOST=your-postgres-host ALARMS_DB_PORT=5432 ALARMS_DB_NAME=alarms ALARMS_DB_USER=alarms ALARMS_DB_PASSWORD=your-password # Resources Database RESOURCES_DB_HOST=your-postgres-host RESOURCES_DB_PORT=5432 RESOURCES_DB_NAME=resources RESOURCES_DB_USER=resources RESOURCES_DB_PASSWORD=your-password # Clusters Database CLUSTERS_DB_HOST=your-postgres-host CLUSTERS_DB_PORT=5432 CLUSTERS_DB_NAME=clusters CLUSTERS_DB_USER=clusters CLUSTERS_DB_PASSWORD=your-password # OpenAI API Configuration OPENAI_API_KEY=your-openai-api-key-here OPENAI_MODEL=openai/gpt-4.1 # MCP Server URLs (automatically configured in deployment) POSTGRES_MCP_URL=http://localhost:3000/mcp TALM_MCP_URL=http://localhost:3001/mcp

- Single Pod Deployment: Three containers run in the same pod:

- PostgreSQL MCP server (port 3000)
- TALM MCP server (port 3001)
- ADK web interface (port 8000)

Option 1: Google ADK Web Interface (Recommended)

Access athttp://localhost:8000for unified natural language interface to both:

- PostgreSQL database querying and analysis
- Kubernetes cluster management via TALM

Configure MCP servers in Claude Desktop config:

Add these configurations to your Claude Desktop config:

{ "mcpServers": { "talm": { "command": "uv", "args": [ "run", "python", "servers/talm.py" ], "cwd": "/path/to/mcp-ran-poc", "env": { "KUBECONFIG": "/path/to/your/kubeconfig.yaml" } } } }
{ "mcpServers": { "postgres": { "command": "uv", "args": [ "run", "python", "servers/ocloud-pg.py" ], "cwd": "/path/to/mcp-ran-poc", "env": { "ALARMS_DB_HOST": "your-postgres-host", "ALARMS_DB_PORT": "5432", "ALARMS_DB_NAME": "alarms", "ALARMS_DB_USER": "alarms", "ALARMS_DB_PASSWORD": "your-password", "RESOURCES_DB_HOST": "your-postgres-host", "RESOURCES_DB_PORT": "5432", "RESOURCES_DB_NAME": "resources", "RESOURCES_DB_USER": "resources", "RESOURCES_DB_PASSWORD": "your-password", "CLUSTERS_DB_HOST": "your-postgres-host", "CLUSTERS_DB_PORT": "5432", "CLUSTERS_DB_NAME": "clusters", "CLUSTERS_DB_USER": "clusters", "CLUSTERS_DB_PASSWORD": "your-password" } } } }
{ "mcpServers": { "talm": { "command": "/path/to/uv", "args": [ "run", "--directory", "/path/to/mcp-ran-poc/servers", "python", "talm.py" ], "env": { "KUBECONFIG": "/path/to/your/kubeconfig.yaml" } }, "postgres": { "command": "/path/to/uv", "args": [ "run", "--directory", "/path/to/mcp-ran-poc/servers", "python", "ocloud-pg.py" ], "env": { "ALARMS_DB_HOST": "your-postgres-host", "ALARMS_DB_PORT": "5432", "ALARMS_DB_NAME": "alarms", "ALARMS_DB_USER": "alarms", "ALARMS_DB_PASSWORD": "your-password", "RESOURCES_DB_HOST": "your-postgres-host", "RESOURCES_DB_PORT": "5432", "RESOURCES_DB_NAME": "resources", "RESOURCES_DB_USER": "resources", "RESOURCES_DB_PASSWORD": "your-password", "CLUSTERS_DB_HOST": "your-postgres-host", "CLUSTERS_DB_PORT": "5432", "CLUSTERS_DB_NAME": "clusters", "CLUSTERS_DB_USER": "clusters", "CLUSTERS_DB_PASSWORD": "your-password" } } } }

- /path/to/mcp-ran-pocwith this repository's absolute path
- /path/to/your/kubeconfig.yamlwith your cluster's kubeconfig file
- your-postgres-hostwith your PostgreSQL server hostname
- your-passwordwith your actual database passwords for each database

- Resources: Access to managed clusters, policies, and cluster status
- Tools: Cluster remediation, health checks, and CGU management
- Prompts: Guided workflows for cluster lifecycle operations

- Tools:execute_query(database, query)- Execute read-only SQL queries safely
- Security: Only SELECT and WITH queries allowed
- Response: JSON format with query results, metadata, and executed SQL

- Unified Natural Language Interface: Handles both database and cluster operations
- Database Operations: Convert questions to SQL queries automatically
- Cluster Operations: Manage Kubernetes clusters via TALM commands
- Query Explanation: Shows SQL reasoning before execution
- Result Analysis: Provides insights and analysis of both database and cluster data
- Schema Exploration: Helps understand database structure and cluster topology
- Web Interface: User-friendly browser-based interaction athttp://localhost:8000
- Dual MCP Integration: Seamlessly connects to both PostgreSQL and TALM MCP servers

Official MCP server for dbt (data build tool) providing integration with dbt Core/Cloud CLI, project metadata discovery, model information, and semantic layer querying capabilities.

MCP Server accessing and administrate the Apache Druid Database

You are working with the MCP MySQL Operations Server, a powerful tool that provides comprehensive MySQL database monitoring and analysis capabilities through natural language queries. This server offers 19 specialized tools for database administration, performance monitoring, and system analysis.

MCP-PostgreSQL-Ops is a professional MCP server for PostgreSQL database operations, monitoring, and management. Supports PostgreSQL 12-17 with comprehensive database analysis, performance monitoring, and intelligent maintenance recommendations through natural language queries.

Database Reliability Engineer-grade SQL analysis inside any MCP client

Exposes cloud provider control and data planes to agents as self-describing, queryable and mutable data sources using SQL, minimising tool surface and token usage.

A read-only MCP server for retrieving information and diagnosing issues in Kubernetes clusters.

Open source MCP server specializing in easy, fast, and secure tools for Databases.

Query and analyze data with MotherDuck and local DuckDB

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.