# Daily — how to use (mcp.ai)

Connect your Daily account and use 11 tools for video conferencing straight from your AI agent. Connect with your own API key. Daily provides WebRTC video and audio APIs for creating rooms, meetings, recordings, live streams, transcriptions, and telephony experiences.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_daily?ms=1787291220000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `daily_batch_create_rooms`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/daily`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/daily/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/daily/batch/create/rooms` — Create 1 to 1,000 Daily rooms in one atomic request. If any room fails, Daily creates none of the rooms. Paid media, telephony, storage, and callback settings are intentionally not exposed.
  - body: { rooms: object[] }
- `POST https://api.mcp.ai/api/daily/create/meeting/token` — Issue a time-bounded meeting token for one Daily room and participant. The returned token grants room access and must be handled as a secret.
  - body: { user_id?: string, is_owner?: boolean, room_name: string, user_name?: string, expires_at: integer, not_before?: integer, start_audio_off?: boolean, start_video_off?: boolean, eject_at_token_exp?: boolean, enable_screenshare?: boolean, eject_after_elapsed?: integer }
- `POST https://api.mcp.ai/api/daily/create/room` — Create a named Daily room with privacy and optional safe meeting defaults. Paid media, telephony, storage, and callback settings are intentionally not exposed.
  - body: { name: string, privacy?: string, properties?: object }
- `POST https://api.mcp.ai/api/daily/delete/room` — Permanently delete one Daily room by name. Use only after confirming the target; active participants may be disconnected.
  - body: { room_name: string }
- `POST https://api.mcp.ai/api/daily/get/domain/config` — Return the connected Daily domain identity and stable account capability signals. Use this before attempting features that may be disabled or entitlement-gated.
- `POST https://api.mcp.ai/api/daily/get/room` — Return a Daily room's current privacy and configuration by room name.
  - body: { room_name: string }
- `POST https://api.mcp.ai/api/daily/get/room/presence` — Return the current participants visible in one Daily room, optionally filtered by user ID or display name.
  - body: { limit?: integer, user_id?: string, room_name: string, user_name?: string }
- `POST https://api.mcp.ai/api/daily/list/meetings` — Return one page of Daily meeting-session analytics, filtered by room, time range, or session state. Pass next_cursor unchanged to continue.
  - body: { limit?: integer, ongoing?: boolean, room_name?: string, next_cursor?: string, timeframe_end?: integer, timeframe_start?: integer, exclude_participants?: boolean }
- `POST https://api.mcp.ai/api/daily/list/rooms` — Return one reverse-chronological page of Daily rooms. Pass next_cursor unchanged to continue with the same filters.
  - body: { limit?: integer, next_cursor?: string }
- `POST https://api.mcp.ai/api/daily/update/room` — Update a Daily room's privacy or safe meeting defaults. Only supplied fields change; paid media, telephony, storage, and callbacks are not exposed.
  - body: { privacy?: string, room_name: string, properties?: object }
- `POST https://api.mcp.ai/api/daily/validate/meeting/token` — Validate a Daily meeting token and return its effective room and participant settings without joining a call.
  - body: { meeting_token: string, ignore_not_before?: boolean }

## Example prompts
- "What can I do in Daily?"
- "Show me a summary of my Daily account"

## More
- Page: https://mcp.ai/daily
- Agent spec (llms.txt): https://mcp.ai/daily/llms.txt
- Postman collection: https://mcp.ai/daily/postman.json
