Add README.md
Bootstrap Commit
This commit is contained in:
55
README.md
Normal file
55
README.md
Normal file
@@ -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
|
||||
Reference in New Issue
Block a user