LiveKit MCP Server
LiveKit MCP Server
Ein Hochleistungs-Server für das Model Context Protocol (MCP 2.0), der KI-Agenten mit der LiveKit Voice- und Telefonie-Engine von MantraCare verbindet.
Architektur • Schnellstart • Konfiguration • MCP-Clients verbinden • Authentifizierung • Verfügbare Tools • Entwicklung
📖 Übersicht
Der LiveKit MCP Server ermöglicht es LLMs und KI-Codierungsassistenten (wie Antigravity, Claude, Cursor und benutzerdefinierten Agenten), Sprachtelefonie-Pipelines, die von LiveKit (~/lkt) betrieben und über Mantra Auth (~/mantra-auth) authentifiziert werden, sicher zu steuern, zu überwachen und auszulösen.
Hauptfunktionen
🚀 MCP-2.0-Konformität: Basierend auf dem offiziellen Python-
mcp-SDK mit Server-Sent Events (SSE) und Streamable-HTTP-Transports.🔐 OAuth 2.1 & gemeinsames JWT: Native HS256-JWT-Validierung passend zu
mantra-auth, mit Unterstützung für sowohlAuthorization: Bearer-Header als auch?token=-Abfrageparameter.⚡ Blitzschneller Async-Kern: Unterstützt durch Starlette, Uvicorn und
uv-Paketverwaltung.🧩 Modulare Tool-Architektur: Domänengetrennte Tools für Telefonie, Anrufanalysen, Wissensdatenbanksuche und SIP-Trunking.
🧠 Agentisches Gedächtnis: Vollständige Obsidian-Wissensdatenbank (
obsidian/) undAGENTS.md-Regeln zur Erhaltung des Kontexts für KI-Pair-Programming.
Related MCP server: Agent Identity MCP Server
🏛️ Systemarchitektur
┌─────────────────────────────────────────────────────────────┐
│ AI Client (Cursor / Claude / Antigravity / Web Agent) │
└──────────────────────────────┬──────────────────────────────┘
│ 1. Bearer Token / ?token= (OAuth 2.1)
▼
┌─────────────────────────────────────────────────────────────┐
│ [3. mantra-auth (:3000)] │
│ Next.js + Prisma OAuth 2.1 Authorization Server │
│ - Issues HS256 JWTs and verifies via /api/oauth/introspect │
└──────────────────────────────┬──────────────────────────────┘
│ Shared JWT Secret Verification
▼
┌─────────────────────────────────────────────────────────────┐
│ [2. livekit-mcp (:8000)] (This Server) │
│ - Starlette ASGI + MCP 2.0 SSE Transport │
│ - Pure ASGI Auth Middleware (HS256 JWT validation) │
│ - Public Endpoints: /health, / │
│ - Protected Endpoints: /sse, /messages │
│ - Registered Tools: greet_user, [Telephony/KB/SIP coming] │
└──────────────────────────────┬──────────────────────────────┘
│ 2. Async HTTP (REST)
▼
┌─────────────────────────────────────────────────────────────┐
│ [1. lkt (:8081)] │
│ MantraCare LiveKit Voice Agent & Telephony Engine │
│ - SIP Trunks (Plivo, Zadarma, VoiceLink, Twilio) │
│ - LiveKit Cloud WebRTC Rooms & STT→LLM→TTS Voice Pipeline │
│ - PostgreSQL (call_logs, kb_pages) & Redis (queues, locks) │
└─────────────────────────────────────────────────────────────┘📁 Repository-Struktur
livekit-mcp/
├── .env.example # Sample environment variables
├── .gitignore # Git ignore definitions
├── .python-version # Python version pin (3.11)
├── AGENTS.md # Agent Memory instructions
├── dev.sh # Development startup script
├── pyproject.toml # UV package specification & build settings
├── uv.lock # Deterministic lockfile
├── README.md # Project documentation
│
├── obsidian/ # Permanent Agentic Knowledge Base
│ ├── Home.md # Project navigation hub
│ ├── Architecture/ # System design, data flow, security & APIs
│ ├── Context/ # Stack, project summary & repository map
│ ├── Development/ # Sprint tracking, TODO & Changelog
│ ├── Features/ # Feature specifications (tools, auth)
│ └── Knowledge/ # Coding standards & architectural conventions
│
├── src/
│ └── livekit_mcp/
│ ├── __init__.py
│ ├── config.py # Pydantic Settings & environment validation
│ ├── server.py # MCPServer & Starlette app factory
│ ├── main.py # CLI runner with Uvicorn
│ ├── auth/
│ │ ├── __init__.py
│ │ ├── jwt.py # HS256 JWT decoding & claims validation
│ │ └── middleware.py # Pure ASGI auth middleware (headers & ?token=)
│ ├── clients/
│ │ ├── __init__.py
│ │ ├── lkt_client.py # Async HTTP client for lkt FastAPI (:8081)
│ │ └── auth_client.py # Async HTTP client for mantra-auth (:3000)
│ └── tools/
│ ├── __init__.py
│ └── greeting.py # Initial `greet_user` verification tool
│
└── tests/
├── __init__.py
├── conftest.py # Fixtures for tokens, settings & test client
├── test_config.py # Configuration unit tests
├── test_auth.py # JWT verification & claims unit tests
├── test_greeting.py # Tool registration & execution tests
└── test_server.py # Endpoints, SSE & Auth integration tests🚀 Schnellstart
1. Voraussetzungen
Python: 3.11 oder höher
uv: Schneller Python-Paketmanager (uv installieren)
curl -LsSf https://astral.sh/uv/install.sh | sh
2. Installation & Einrichtung
Repository klonen und in das Verzeichnis wechseln:
cd ~/livekit-mcpUmgebungskonfiguration erstellen:
cp .env.example .envAbhängigkeiten mit
uvinstallieren:uv sync
3. Server ausführen
Entwicklungsserver mit automatischem Neuladen starten:
./dev.shOder direkt mit uv ausführen:
uv run python -m livekit_mcp.mainDer Server ist erreichbar unter http://localhost:8000.
⚙️ Konfiguration
Alle Einstellungen werden in src/livekit_mcp/config.py mit pydantic-settings verwaltet und aus .env geladen:
Variable | Typ | Standard | Beschreibung |
| string |
| Server-Bindeadresse |
| integer |
| Lauschport des Servers |
| string |
|
|
| string |
| Protokollierungsstufe ( |
| boolean |
| Erzwingt die JWT-Authentifizierung an geschützten Endpunkten |
| string |
| Gemeinsamer geheimer Schlüssel für die HS256-JWT-Signaturprüfung |
| string |
| JWT-Signaturalgorithmus (entspricht |
| string |
| Basis-URL des Mantra-Auth-Servers |
| string |
| Erwarteter JWT-Ausstelleranspruch ( |
| string | (leer) | Optionaler erwarteter Zielgruppenanspruch ( |
| string |
| Basis-URL der LKT-Voice-Agent-API |
| float |
| HTTP-Request-Timeout in Sekunden für LKT-Aufrufe |
| string | (leer) | Direkte LiveKit-Cloud-WebSocket-URL (optional) |
| string | (leer) | Direkter LiveKit-Cloud-API-Schlüssel (optional) |
| string | (leer) | Direktes LiveKit-Cloud-API-Geheimnis (optional) |
📡 Endpunkte
Endpunkt | Methode | Authentifizierung | Beschreibung |
|
| ❌ Nein | Öffentlicher Gesundheits- und Bereitschaftscheck mit Servicestatus |
|
| ❌ Nein | Servicestatus und Endpunkt-Metadaten |
|
| ✅ Ja | Öffnet einen dauerhaften Server-Sent-Events(SSE)-Stream für MCP-Clients |
|
| ✅ Ja | JSON-RPC-2.0-Endpunkt für MCP-Anfragen (Tool-Ausführung, Auflistungen) |
Beispiel für den Gesundheitscheck
curl http://localhost:8000/health{
"status": "healthy",
"service": "livekit-mcp",
"version": "0.1.0",
"auth_enabled": true,
"environment": "development",
"lkt_api_configured": true,
"timestamp": "2026-08-20T12:30:00.000000+00:00"
}🔐 Authentifizierung
Der Server implementiert OAuth 2.1 / HS256 Shared JWT Authentication, kompatibel mit mantra-auth.
Anmeldedaten bereitstellen
Authorization-Header (Standard):
GET /sse HTTP/1.1 Host: localhost:8000 Authorization: Bearer <your-jwt-access-token>Abfrageparameter (für SSE-/EventSource-Clients):
GET /sse?token=<your-jwt-access-token> HTTP/1.1 Host: localhost:8000
Erwartete JWT-Ansprüche
{
"sub": "user-123",
"aud": "client-app",
"iss": "http://localhost:3000",
"exp": 1755694800,
"iat": 1755691200,
"scope": "openid profile telephony:call",
"token_type": "access_token"
}Entwicklungstipp: Setzen Sie
AUTH_ENABLED=falsein der.env-Datei, um die Token-Überprüfung während lokaler Tests zu deaktivieren.
🛠️ Verfügbare Tools
1. greet_user
Ein Verifizierungstool, das die MCP-Konnektivität, Parameteranalyse und den Serverstatus validiert.
Parameter:
name(Zeichenkette, erforderlich): Name des Benutzers oder Agenten, der das Tool aufruft.message(Zeichenkette, optional): Benutzerdefinierte Begrüßungsnachricht.
Rückgabewert:
👋 Hello, Alice! Welcome to MantraCare LiveKit MCP! --- System Status --- • Service: LiveKit MCP Server • Status: Operational & Ready • Timestamp: 2026-08-20T12:30:00.000000+00:00 • Protocol: MCP 2.0 (SSE / HTTP)
🔌 MCP-Clients verbinden
1. Antigravity / Gemini CLI (~/.gemini/config/mcp_config.json)
{
"mcpServers": {
"livekit": {
"serverUrl": "http://localhost:8000/sse"
}
}
}2. Cursor IDE (.cursor/mcp.json)
{
"mcpServers": {
"livekit": {
"url": "http://localhost:8000/sse",
"headers": {
"Authorization": "Bearer <YOUR_JWT_TOKEN>"
}
}
}
}3. Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"livekit": {
"command": "uv",
"args": [
"--directory",
"/home/fardeen/livekit-mcp",
"run",
"python",
"-m",
"livekit_mcp.main"
],
"env": {
"AUTH_ENABLED": "false"
}
}
}
}🧪 Entwicklung & Tests
Tests ausführen
Das Projekt enthält eine umfassende Testsuite, die Konfiguration, JWT-Überprüfung, Middleware und Tools abdeckt:
uv run pytest -vCode-Formatierung & Linting
Saubere Codierungsstandards mit ruff durchsetzen:
# Check code
uv run ruff check .
# Auto-fix issues & format
uv run ruff check --fix .
uv run ruff format .Neue Tools hinzufügen
So fügen Sie ein neues Tool zu livekit-mcp hinzu:
Erstellen Sie ein Modul in
src/livekit_mcp/tools/<domain>.py.Definieren Sie eine Registrierungsfunktion:
from mcp.server.mcpserver import MCPServer def register_telephony_tools(server: MCPServer) -> None: @server.tool(name="trigger_call", description="Trigger an outbound call") async def trigger_call(phone_number: str, prompt: str) -> str: # Call LktClient here return f"Call initiated to {phone_number}"Registrieren Sie die Funktion in
src/livekit_mcp/server.pyinnerhalb voncreate_mcp_server().Fügen Sie Komponententests in
tests/test_<domain>.pyhinzu.
📚 Agentisches Gedächtnis
Dieses Repository folgt dem Agentic-Memory-Muster. Bevor Sie architektonische Änderungen vornehmen, lesen Sie den Obsidian-Wissensspeicher unter obsidian/:
obsidian/Home.md— Projektnavigations-Hubobsidian/Architecture/Overview.md— Systemdesign und -topologieobsidian/Development/Current Sprint.md— Aktueller Entwicklungsstatusobsidian/Development/TODO.md— Kommende Roadmapobsidian/Knowledge/Coding Standards.md— Codekonventionen
📄 Lizenz
Proprietär © MantraCare. Alle Rechte vorbehalten.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
AlicenseAqualityFmaintenanceMCP Server that connects AI agents to Chargebee Platform.27315MIT- AlicenseNot gradedqualityDmaintenanceMCP Server for AI agent identity and authorization. Create, verify, and manage agent identities with trust scores and scoped authorization tokens.MIT

Smallest MCP Serverofficial
AlicenseAqualityAmaintenanceMCP server for the Smallest AI platform that enables managing AI voice agents, debugging calls, and viewing analytics directly from your IDE.832661MIT- AlicenseAqualityDmaintenanceMCP server for enterprise authentication and authorization — JWT validation, OIDC token inspection, OAuth 2.0 introspection, and role-based access control for AI agents.8MIT
Related MCP Connectors
Phone, SMS & email for AI agents — one remote MCP endpoint, OAuth login, zero install.
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
MCP Hub: AI service discovery, per-user OAuth, and multi-service workflow orchestration
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/FardeenSK004/livekit-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server