# LiveKit MCP

> LiveKit MCP lets your AI agent fully manage real-time media sessions using natural language commands. You can programmatically create rooms, adjust participant permissions, mute tracks on demand, and start high-quality audio/video recordings directly from any compatible client.

## Overview
- **Category:** communication-messaging
- **Price:** Free
- **Tags:** webrtc, real-time-audio, real-time-video, media-streaming, participant-management, session-recording

## Description

Managing live video and audio streams used to require diving into complex dashboards or writing dedicated SDK calls for every small change. Now, your AI agent handles that complexity through this MCP. You can use natural language prompts to orchestrate real-time communications: spinning up a new meeting room, managing who joins, and even recording specific segments of the call. For instance, if you need to mute a noisy participant or record an entire web page in use, you just tell your agent what's happening. It handles the underlying WebRTC protocols, giving you deep control over session setup, media routing, and data signaling without touching any code. Connecting this LiveKit MCP through Vinkius means your AI client gets instant access to industry-standard tools for communications, making it easier than ever to build complex agentic workflows that handle real-time interactions.

## Tools

### create_dispatch
It tells your agent to explicitly trigger a named user account to join a specific meeting room.

### create_ingress
This sets up an entry point for media feeds, whether they come from RTMP, WHIP protocols, or a simple URL pull.

### create_room
You can use this tool to generate a new meeting room with custom rules and settings.

### create_sip_dispatch_rule
This maps incoming phone calls based on specific phone numbers or PINs directly into a designated LiveKit room.

### create_sip_inbound_trunk
It defines the initial setup for how all incoming SIP voice calls are received and handled by your system.

### create_sip_outbound_trunk
This sets up a necessary connection point that allows your agent to dial out using external phone lines.

### create_sip_participant
The tool dials an actual SIP number and brings the resulting call directly into a LiveKit room for participation.

### delete_dispatch
It removes a dispatch rule that was previously set up to route calls automatically.

### delete_ingress
This tool cleans up and removes an existing media ingress point.

### delete_room
It forcefully disconnects everyone in a room and permanently deletes the meeting space.

### delete_sip_dispatch_rule
This removes a specific SIP rule that directs calls based on phone numbers or PINs.

### delete_sip_trunk
It cleans up and deletes an entire configured SIP trunk setup.

### get_participant
You can use this to retrieve detailed information about a single user who is in the room.

### list_dispatch
It shows you all the current rules set up for automatically dispatching users into rooms.

### list_egress
This lists any active recording or media export jobs that are currently running.

### list_ingress
It shows you a list of all the media ingress points provisioned for your system.

### list_participants
This lists every participant currently connected and active within a specified room.

### list_phone_numbers
It retrieves a list of all phone numbers that are owned by your current project account.

### list_rooms
This shows you an overview of every active or open meeting room in your LiveKit instance.

### list_sip_inbound_trunk
It lists all the SIP trunks configured to handle incoming telephone calls.

### list_sip_outbound_trunk
This shows you a list of all the SIP trunks set up for making outgoing phone calls.

### mute_published_track
Your agent can mute or unmute a specific audio or video track belonging to any participant.

### purchase_phone_number
It allows you to buy a new phone number and optionally link it right away to a call dispatch rule.

### release_phone_numbers
This returns a purchased phone number back into the general inventory pool.

### remove_participant
It kicks a specific participant out of a room, regardless of their status or permissions.

### search_phone_numbers
You can search for available phone numbers using criteria like country and area code.

### send_data
This sends custom data packets to one or more participants within the room.

### start_participant_egress
The tool initiates a recording that captures only the audio and video feeds of a single participant.

### start_room_composite_egress
This starts an advanced recording job capturing the entire room using a defined web layout.

### start_track_composite_egress
It begins a composite recording that captures one specific audio track and one specific video track together.

### start_track_egress
This exports a single media track without needing to re-encode the raw feed.

### start_web_egress
It captures and records any web page content that is visible in the browser window.

### stop_egress
This stops any recording or media export job that was previously started by your agent.

### transfer_sip_participant
It redirects an active SIP call from one phone number to another number or URI.

### update_ingress
This updates the settings for a media ingress point used by multiple sessions or participants.

### update_layout
You can change the visual arrangement of a room while an active composite recording is running.

### update_participant
This allows you to modify metadata or permissions for any participant in the system.

### update_phone_number
The tool changes the SIP dispatch rule attached to a phone number, redirecting where calls go next.

### update_room_metadata
It updates key-value pairs that store context data across an entire meeting room.

### update_stream
You can add or remove output URLs (RTMP/SRT) from a stream while it is active.

### update_subscriptions
This changes which specific media tracks a participant is allowed to receive or send.

## Prompt Examples

**Prompt:** 
```
List all currently active rooms in my LiveKit instance.
```

**Response:** 
```
I've retrieved the active rooms. You have 3 rooms running: 'Main-Lobby' (2 participants), 'Gaming-Zone' (5 participants), and 'Support-Desk' (0 participants).
```

**Prompt:** 
```
Create a new room called 'Strategy-Meeting' with a max of 10 participants.
```

**Response:** 
```
The room 'Strategy-Meeting' has been successfully created with a limit of 10 participants and a default empty timeout.
```

**Prompt:** 
```
Mute the audio track for participant 'user_99' in the 'Main-Lobby' room.
```

**Response:** 
```
I've sent the command to mute the track 'TR_XXXXXXXX' for 'user_99' in 'Main-Lobby'. The participant is now muted.
```

## Capabilities

### Control Room Lifecycle
Your agent can create new meeting rooms with specific rules or forcibly delete existing ones and all connected participants.

### Manage Participants
You can list who's currently in a room, view participant details, kick users out, or explicitly invite other agents to join the session.

### Control Media Streams
Your agent can mute or unmute specific audio and video tracks for any user in the room, or record an entire composite web layout.

### Handle SIP Calls
The MCP lets your agent define inbound and outbound telephone trunks, allowing it to manage virtual phone numbers and transfer live calls into a meeting room.

### Send Real-time Data Signals
You can send custom data packets (like Base64 encoded information) directly to specific participants or broadcast them across the whole room for signaling purposes.

## Use Cases

### Automated Interview Recording
A hiring manager needs to record every step of an interview. The agent uses `create_room` to start the session, then waits for the conversation to finish before triggering `start_room_composite_egress` to capture a full video archive.

### Customer Support Call Routing
A customer calls into a generic number. The agent uses `create_sip_dispatch_rule` and `list_phone_numbers` to identify the caller, route them to the correct specialized room, and then manage the call using `transfer_sip_participant`.

### Live Conference Broadcast
The event organizer needs a live feed of a presentation screen. The agent uses `start_web_egress` to capture the web page, and then uses `update_layout` if they need to switch the recording focus mid-stream.

### Session Audit Logging
A compliance officer needs a record of every person who entered a sensitive meeting. The agent first calls `list_rooms`, then uses `get_participant` multiple times on each room to build a complete, auditable attendance log.

## Benefits

- Automate participant management: Instead of manually listing users to check who's present, use `list_participants` to get a roster instantly, or use `remove_participant` to kick out disruptive attendees.
- Programmatic recording control: You don't have to stop and start recordings via a dashboard. Use `start_room_composite_egress` or `start_web_egress` commands to capture specific events automatically.
- Deep communication routing: Handle phone calls seamlessly by using tools like `create_sip_inbound_trunk` and `transfer_sip_participant`, making your AI agent a full-fledged telephony system.
- Fine-grained media control: Need to silence someone without interrupting the flow? Use `mute_published_track` to target just an audio or video feed for one user while everyone else stays connected.
- Flexible data signaling: Send custom, structured information across the wire using the `send_data` tool. This lets your agent communicate non-media context—like a form ID—to all participants in the room.

## How It Works

The bottom line is, your AI client treats this entire media infrastructure like an extension of its own conversational logic.

1. Subscribe to this MCP and provide your LiveKit Server URL and API Token/Secret credentials.
2. Your AI client connects, giving it access to all communication tools, allowing you to issue commands like 'Create a new meeting room for the marketing team.'
3. The agent executes the necessary calls, performing actions in real-time—like creating the room and notifying participants—all through natural language conversation.

## Frequently Asked Questions

**How do I use the LiveKit MCP to record an entire meeting room?**
You trigger recording using `start_room_composite_egress`. This tool records all participants and the web layout simultaneously, giving you a full composite video file.

**Can I make my AI agent handle phone calls with LiveKit MCP?**
Yes. You use tools like `create_sip_inbound_trunk` to set up receiving lines and then use `transfer_sip_participant` to move the live call into a managed room.

**How do I mute a user's microphone using LiveKit MCP?**
You must use the `mute_published_track` tool, specifying which participant and which track (audio or video) needs to be muted. This is much more precise than simply kicking them out.

**What if I need to move a call from one room to another?**
You use the `transfer_sip_participant` tool. It handles the complexity of maintaining the active connection while rerouting the user's SIP stream.

**Is LiveKit MCP just for video, or can it handle data too?**
It manages both media and data. You use `send_data` to send custom Base64 encoded packets alongside the audio/video streams, making it useful for signaling.