# Daily.co MCP for AI Agents MCP

> Daily.co connects your AI agent to real-time video conferencing infrastructure. Use this MCP to programmatically create rooms, monitor participant presence, manage recording sessions, and control meeting flow entirely through natural language commands.

## Overview
- **Category:** communication-messaging
- **Price:** Free
- **Tags:** webrtc, video-infrastructure, meeting-management, real-time-communication, room-control, participant-tracking

## Description

This connector lets you treat your video communication system like a simple API endpoint accessible via conversation. Instead of logging into the Daily dashboard or writing complex code, your AI agent handles all room setup and session management using plain English.

It's built to manage the entire lifecycle of virtual meetings: from spinning up temporary rooms for support calls to tracking attendees across large webinars. You can get detailed call logs, monitor who is present in a given space, and even send custom data messages to participants within a room during an active session. If your current process requires juggling multiple dashboards or writing boilerplate code just to check attendance, this MCP changes that. By connecting it through Vinkius, you give any compatible AI client the ability to act as a virtual operator for your entire video infrastructure.

## Tools

### buy_phone_number
Schedules and purchases a specific or random phone number.

### create_batch_job
Submits a job to be processed by the batch processor system.

### create_meeting_token
Generates a unique, time-limited token required for meeting access.

### create_room
Creates a new video conference room with defined settings.

### create_webhook
Sets up an automated webhook to receive data upon specific events.

### delete_batch_job
Removes a previously submitted batch processing job.

### delete_recording
Deletes stored recording references and files.

### delete_room
Permanently removes an existing video conference room.

### delete_webhook
Removes a webhook endpoint that was previously created.

### eject_participants
Forces participants to leave an active meeting room.

### get_batch_job_access_link
Retrieves download links for batch jobs that have finished processing.

### get_batch_job
Checks the current status of a running batch job.

### get_domain
Retrieves and displays the top-level domain configuration settings for your account.

### get_global_presence
Lists every active participant currently connected across the entire domain.

### get_logs
Retrieves detailed call logs, metrics, and historical data for analysis.

### get_meeting_participants
Lists all users currently participating in a specific meeting session.

### get_meeting
Retrieves detailed information about an existing meeting session.

### get_recording_access_link
Generates a temporary, secure download link for stored recordings.

### get_recording
Fetches metadata and information about a specific recording file.

### get_room_presence
Checks which users are active or present within a specific room at this moment.

### get_room
Retrieves the current configuration and details of a specified meeting room.

### get_session_data
Pulls custom, state-specific data that was synced across all participants during the meeting.

### get_webhook
Retrieves detailed information about a specific webhook endpoint.

### list_available_numbers
Searches for available phone numbers based on area code or region criteria.

### list_batch_jobs
Retrieves a list of all batch jobs that have been submitted to the system.

### list_meetings
Lists details for various meeting sessions held previously or currently running.

### list_purchased_numbers
Provides a list of phone numbers that belong to your domain account.

### list_recordings
Lists available cloud recordings, supporting pagination for large archives.

### list_rooms
Retrieves a list of all configured meeting rooms, supporting pagination.

### list_webhooks
Displays a comprehensive list of existing webhook endpoints.

### release_phone_number
Releases ownership of a purchased phone number, making it available again.

### send_app_message
Sends custom data payloads to specific participants in an active room.

### send_dtmf
Simulates sending DTMF tones (like keypad presses) into a live call session.

### set_domain
Updates the top-level domain configuration for your Daily infrastructure.

### set_session_data
Syncs specific data payloads to all participants, maintaining state throughout a meeting.

### start_dial_out
Initiates an outbound call to either a phone number or SIP URI.

### start_live_streaming
Begins real-time streaming of video content using RTMP/HLS protocols.

### start_recording
Initiates the process of recording an active meeting session.

### start_transcription
Begins real-time captioning and transcription services for a live call.

### stop_dial_out
Ends an active outbound calling session immediately.

### stop_live_streaming
Halts the real-time video streaming process.

### stop_recording
Stops an active recording session before it completes naturally.

### stop_transcription
Halts the real-time captioning and transcription services.

### update_live_streaming
Modifies the layout or target endpoints for an ongoing stream.

### update_permissions
Changes the specific permissions and roles of individual participants in a meeting.

### update_recording
Modifies the layout or settings of an active recording session.

### update_room
Alters core room settings, such as privacy status or custom properties.

### update_transcription
Changes which participants are included in the real-time transcription service.

### update_webhook
Modifies existing webhook configurations or reactivates failed ones.

### validate_meeting_token
Checks if a given meeting token is valid and active for use.

## Prompt Examples

**Prompt:** 
```
I need to run a test meeting with 3 people and make sure it's private.
```

**Response:** 
```
**Test Room Setup Complete**

*   **Room ID:** `test-run-901`
*   **Status:** Active (Private)
*   **Participants:** 3/3 online

Please use this link: `https://yourdomain.daily.co/test-run-901`

You can now proceed with the test, or I can start recording it when you're ready.
```

**Prompt:** 
```
What was the attendance and what did we talk about in yesterday's finance call?
```

**Response:** 
```
I checked the records. The meeting ran from 2pm to 4pm.

**Attendance:** ✅ All 5 key members were present.

**Summary & Logs:** The agent retrieved detailed logs showing discussion points around Q3 budgeting and asset allocation. Key takeaways:
*   Budget variance: Identified in the last 10 minutes of the call.
*   Action item: Need to review vendor contract status by Friday.

The full log data is available for export.
```

**Prompt:** 
```
Kick out the person who is not supposed to be here, and start recording everything.
```

**Response:** 
```
**Action Initiated:**
1.  Participant `user-guest` has been successfully ejected from the room.
2.  The recording process has started. The system will capture all audio and video data now.
3.  **Status:** Recording is LIVE. I will notify you when it stops.
```

## Capabilities

### Manage Rooms and Sessions
Create, list, update, or delete meeting rooms with specific privacy settings on demand.

### Monitor Participant Presence
Get a real-time count of users in an active room or across the entire domain and control individual participants by kicking them out.

### Control Meeting Media
Start, stop, or update recordings and transcriptions for ongoing sessions. You can also send custom data messages to attendees.

### Retrieve Call Metadata
Access detailed historical logs, session data, and recording access links after a meeting concludes.

## Use Cases

### Automated Support Triage
A support agent needs a quick, private room for a client consultation. Instead of manually navigating to Daily and setting up a link, they ask their AI agent. The agent uses `create_room` with the correct privacy settings, sends the meeting token, and then monitors presence using `get_room_presence`, all in one interaction.

### Webinar Attendance Audit
After a large webinar concludes, an administrator needs to know who attended and when. The agent calls `list_meetings` followed by `get_meeting_participants`. This generates an instant report detailing every unique attendee for follow-up purposes.

### Live Event Content Capture
A marketing team is hosting a live event and needs to capture both the video feed and transcript. The agent first calls `start_live_streaming` and then, moments later, initiates `start_recording` and `start_transcription`, ensuring all content streams are captured without human intervention.

### Security Incident Response
An ops team detects a suspicious user in a critical call. The agent first runs `get_global_presence` to verify the user's location, and then executes `eject_participants` instantly, logging the event via `get_logs` for compliance.

## Benefits

- Spin up temporary meeting environments using `create_room` instantly, allowing your agent to run support calls or testing sessions without manual setup.
- Gain granular control over meetings by calling `eject_participants` or updating permissions. This lets you automate moderator actions in webinars.
- Capture comprehensive historical data: use `get_logs` and `list_meetings` to build reports on call metrics and attendance patterns for auditing purposes.
- Manage media streams entirely through code. You can use `start_recording` or `start_transcription` simply by asking your agent, saving clicks and time.
- Maintain meeting state with `set_session_data`. This ensures that crucial business context is preserved across all participants even if the session is interrupted.

## How It Works

The bottom line is that your AI client handles all the complex API orchestration needed to manage real-time calling services through simple chat commands.

1. Subscribe to this MCP and provide your Daily API Key.
2. Your AI agent interprets natural language requests (e.g., 'Create a private room for John Doe').
3. The connector executes the necessary calls, managing the video infrastructure without you touching any dashboard.

## Frequently Asked Questions

**Can I see exactly who is currently inside a video room?**
Yes. Use the `get_room_presence` tool with the room name. It returns a snapshot of all active participants currently connected to that specific session.

**How do I create a private room that requires a token to join?**
You can use the `create_room` tool and set the `privacy` parameter to 'private'. You can also pass additional configuration in the `properties` JSON field.

**Is it possible to remove a disruptive participant from a call?**
Yes. The `eject_participants` tool allows you to kick specific users by their IDs. You can also set the `ban` flag to true to prevent them from re-entering the room.