> ## Documentation Index
> Fetch the complete documentation index at: https://developers.telnyx.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Meeting MCP Server

> Connect AI agents directly to Telnyx Meeting tools over the Model Context Protocol.

The Meeting MCP server gives AI agents a dedicated interface for joining meetings, following transcripts and events, interacting in the room, collecting results, and managing calendar auto-join.

## Endpoint and Authentication

Connect to:

```text theme={null}
https://api.telnyx.com/v2/meeting_bot/mcp
```

This is the product-specific Meeting MCP server. It is separate from the generic Telnyx API MCP endpoint at `https://api.telnyx.com/v2/mcp`, which exposes broader API actions.

The Meeting endpoint uses stateless Streamable HTTP. Send JSON-RPC 2.0 requests with these headers:

```text theme={null}
Authorization: Bearer <TELNYX_API_KEY>
Content-Type: application/json
Accept: application/json, text/event-stream
```

Every request is independent. The server does not issue an `Mcp-Session-Id`, and clients must not depend on state from an earlier `initialize` request. Responses are currently JSON, while clients must still advertise support for both JSON and server-sent events in `Accept`.

## Configure an MCP Client

MCP client configuration formats vary. For clients that accept an `mcpServers` map and environment-variable interpolation, use:

```json theme={null}
{
  "mcpServers": {
    "telnyx-meeting": {
      "url": "https://api.telnyx.com/v2/meeting_bot/mcp",
      "headers": {
        "Authorization": "Bearer ${TELNYX_API_KEY}"
      }
    }
  }
}
```

Set `TELNYX_API_KEY` in the environment that launches the client. If your client does not interpolate environment variables in JSON, use its secret or header configuration instead of storing an API key in a shared configuration file.

## Discover and Call Tools with curl

Export a [Telnyx API key](https://portal.telnyx.com/#/app/api-keys) before running the examples:

```bash theme={null}
export TELNYX_API_KEY='<your-api-key>'
```

Initialize the MCP connection:

```bash theme={null}
curl --fail-with-body --silent --show-error \
  --request POST \
  --url 'https://api.telnyx.com/v2/meeting_bot/mcp' \
  --header "Authorization: Bearer $TELNYX_API_KEY" \
  --header 'Content-Type: application/json' \
  --header 'Accept: application/json, text/event-stream' \
  --data '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "initialize",
    "params": {
      "protocolVersion": "2025-06-18",
      "capabilities": {},
      "clientInfo": {"name": "curl", "version": "1.0.0"}
    }
  }'
```

Discover the current tool names, descriptions, and input schemas:

```bash theme={null}
curl --fail-with-body --silent --show-error \
  --request POST \
  --url 'https://api.telnyx.com/v2/meeting_bot/mcp' \
  --header "Authorization: Bearer $TELNYX_API_KEY" \
  --header 'Content-Type: application/json' \
  --header 'Accept: application/json, text/event-stream' \
  --data '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'
```

Call the read-only `list_sessions` tool:

```bash theme={null}
curl --fail-with-body --silent --show-error \
  --request POST \
  --url 'https://api.telnyx.com/v2/meeting_bot/mcp' \
  --header "Authorization: Bearer $TELNYX_API_KEY" \
  --header 'Content-Type: application/json' \
  --header 'Accept: application/json, text/event-stream' \
  --data '{
    "jsonrpc": "2.0",
    "id": 3,
    "method": "tools/call",
    "params": {"name": "list_sessions", "arguments": {}}
  }'
```

Tool results contain one text content block whose `text` value is JSON. Check `result.isError` before parsing `result.content[0].text`: tool-level failures normally return HTTP `200` with `isError: true`, while authentication and transport failures use HTTP error statuses. JSON-RPC validation failures can instead use the top-level `error` field.

## Available Tools

The server currently advertises 19 tools. Use `tools/list` as the source of truth for their current input schemas.

### Meetings and History

* `join_meeting` -- create or schedule a meeting session
* `get_session` and `list_sessions` -- inspect one session or list sessions
* `get_transcript` and `get_events` -- read transcript segments and stored events
* `leave_meeting` -- leave or cancel without deleting session history
* `get_recordings` -- list session recordings

### In-meeting Actions and Artifacts

* `speak`, `stop_speaking`, and `send_chat` -- interact in an active meeting
* `create_artifact`, `get_artifact`, and `get_artifacts` -- generate and retrieve summaries or action items

### Calendar Auto-join

* `connect_calendar`, `list_calendar_connections`, and `disconnect_calendar` -- manage calendar connections
* `set_calendar_policy` -- configure connection-level auto-join behavior
* `list_calendar_meetings` -- list meetings from a connected calendar
* `set_meeting_auto_join` -- override auto-join for one calendar meeting

## REST-only Capabilities

MCP covers the core Meeting workflow but does not expose every REST or streaming operation:

* Updating an existing scheduled session is REST-only; MCP has no equivalent of `PATCH /meeting_sessions/{id}`.
* Retrieving one calendar connection directly is REST-only; MCP lists connections but has no single-connection retrieval tool.
* The customer WebSocket stream is not exposed through MCP. Use the [Live Transcript](/docs/meeting/live-transcript) guide for long polling and WebSocket access.
* `join_meeting` does not accept the REST `avatar` configuration. Digital avatar configuration is REST-only. `camera_image` is supported by both REST and MCP.

For these operations, use the [Meeting API reference](/api-reference/meeting-sessions/create-a-meeting-session) alongside MCP.

## Related

* [Meeting Quick Start](/docs/meeting/quick-start) -- complete the same core workflow with REST
* [Join a Meeting](/docs/meeting/join-meeting) -- scheduling, calendar auto-join, and lifecycle details
* [Meeting Presence](/docs/meeting/interact) -- speaking, chat, and digital avatars
* [Collect Results](/docs/meeting/collect-results) -- transcripts, artifacts, and recordings
