commit 0ed92847f8c8bea024b847576f33d98a77283821 Author: Bernd Worsch Date: Sun Sep 7 21:29:41 2025 +0000 Add README.md Bootstrap Commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..76b9c8f --- /dev/null +++ b/README.md @@ -0,0 +1,55 @@ +# TeleMcp + +Telemetry + MCP bridge that auto-deploys on a Linux-based Kubernetes host via **Ansible + Helm**. +It exposes read-only metrics, logs, and k8s object state through an **MCP server** so an LLM agent can bootstrap, monitor, and operate the host. + +## Components +- **kube-prometheus-stack** (Prometheus, Alertmanager, Grafana, node-exporter, kube-state-metrics) +- **Loki + Promtail** (logs) +- **OpenTelemetry Collector** (optional fan-out) +- **mcp-telemetry-bridge** (FastAPI service exposing MCP resources/tools/prompts) + +## Quick Start + +### 0) Prereqs +- Ubuntu 24.04 host with k8s (k3s or kubeadm) reachable and `kubectl` context configured +- Ansible 2.15+ on your control machine +- Helm 3 on the host (Ansible role installs if missing) + +### 1) Run Ansible +```bash +cd ansible +ansible-playbook -i inventories/local.ini playbook.yml +``` + +### 2) Smoke tests (from any machine with kubectl context) +```bash +kubectl get pods -n monitoring +kubectl get pods -n logging +kubectl get pods -n mcp +kubectl port-forward -n mcp svc/mcp-telemetry-bridge 8080:80 +curl http://localhost:8080/mcp/schema | jq . +``` + +### 3) Point your LLM Agent +Configure your agent's MCP client to the service endpoint (ClusterIP/Ingress). +Use tools: +- `promql.query` +- `loki.query` +- `k8s.get` +- `k8s.events` +- `inventory.snapshot` + +## Repo layout +``` +telemcp/ + ansible/ + helm/ + mcp-telemetry-bridge/ + environments/ +``` + +## Security +- MCP bridge ServiceAccount is read-only (RBAC get/list/watch) +- Optional NetworkPolicy limits egress/ingress +- Consider mTLS/OIDC if exposing outside the cluster