Pexip Infinity MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PEXIP_HOST | Yes | Management Node hostname or IP, no scheme. | |
| PEXIP_TIMEOUT | No | HTTP timeout in seconds. | 30 |
| PEXIP_PASSWORD | No | Admin password (required for basic auth). | |
| PEXIP_USERNAME | No | Admin username (required for basic auth). | |
| PEXIP_AUTH_MODE | No | Authentication mode: 'basic' or 'oauth2'. | basic |
| PEXIP_MCP_TOKEN | No | Bearer token for the --http transport (min 32 chars). | |
| PEXIP_READ_ONLY | No | Expose only read tools; set 'false' to enable writes. | true |
| PEXIP_VERIFY_TLS | No | Set 'false' for self-signed lab nodes. | true |
| PEXIP_MAX_RETRIES | No | Retries on 429 rate-limit responses. | 3 |
| PEXIP_OIDC_ISSUER | No | OIDC issuer URL (required when PEXIP_MCP_AUTH_MODE=oauth). | |
| PEXIP_OAUTH2_SCOPE | No | OAuth2 scopes requested. | is_admin use_api |
| PEXIP_MCP_AUTH_MODE | No | How HTTP clients authenticate to this server: 'token' or 'oauth'. | token |
| PEXIP_OIDC_AUDIENCE | No | OIDC audience (required when PEXIP_MCP_AUTH_MODE=oauth). | |
| PEXIP_OAUTH2_CLIENT_ID | No | OAuth2 Client ID (required for oauth2 auth). | |
| PEXIP_OAUTH2_TOKEN_URL | No | Override OAuth2 token endpoint (default: https://<host>/oauth/token/). | |
| PEXIP_OAUTH2_PRIVATE_KEY | No | OAuth2 client Private key (ES256) (required for oauth2 auth). | |
| PEXIP_ALLOW_PLATFORM_TOOLS | No | Expose platform-lifecycle command tools. | false |
| PEXIP_ALLOW_SECURITY_RESOURCES | No | Allow generic CRUD on security-critical resources. | false |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_aliasesA | List conference aliases, optionally scoped to one VMR. Args: vmr: VMR id or exact name to filter by. Omit for all aliases. alias: Exact alias match. alias_contains: Case-insensitive substring match. limit: Max results. offset: Pagination offset. |
| list_automatic_participantsA | List automatic participants, optionally scoped to one VMR. Args: vmr: VMR id or name to filter by (pass the name directly — resolved internally, no need to list_vmrs first). Omit for all. alias_contains: Case-insensitive substring match on alias. limit: Max results. offset: Pagination offset. |
| list_vmrsA | List VMRs (Pexip conference objects with service_type=conference). Args: name: Exact name match. name_contains: Case-insensitive substring match on name. tag: Filter by tag. limit: Max results (default 20). Use 0 to return all (avoid on large platforms). offset: Pagination offset. |
| get_vmrA | Retrieve a VMR by integer id or by exact name. |
| list_devicesA | List provisioned devices (registration records). Args: alias_contains: Case-insensitive substring match on the device alias. owner_email: Filter by primary owner's email address (exact). tag: Filter by tag. limit: Max results. offset: Pagination offset. |
| get_deviceA | Retrieve a device by integer id or by exact alias. |
| list_registrationsA | List endpoints currently registered to the platform (live Status API read). This is the runtime counterpart to the device records: who is registered right now, on what node and protocol — not the configured allow-list. Args: alias_contains: Case-insensitive substring match on the registered alias. protocol: "sip" / "h323" / "mssip" / "webrtc". limit, offset, fetch_all: Pagination controls (fetch_all walks all pages). |
| list_end_usersA | List directory end users. Args: email_contains: Case-insensitive substring match on primary_email_address. name_contains: Case-insensitive substring match on display_name. sync_tag: Filter by LDAP sync tag. limit: Max results. offset: Pagination offset. |
| get_end_userA | Retrieve an end user by integer id or by primary_email_address. |
| list_gateway_rulesA | List dial plan gateway routing rules, ordered by priority ascending. Args: name_contains: Case-insensitive substring match on rule name. enabled_only: If true, returns only enabled rules. limit: Max results. offset: Pagination offset. |
| get_gateway_ruleA | Retrieve a gateway routing rule by integer id or exact name. |
| get_global_settingsA | Retrieve the platform-wide global configuration singleton. Includes things like default themes, default join PIN behavior, bandwidth caps, banner text, MSSIP domain, and call-create permissions. |
| list_history_conferencesA | List completed conference instances. Args: start_time: Lower bound (inclusive) on conference start_time. ISO 8601 in UTC, e.g. "2026-05-07T00:00:00". end_time: Upper bound (exclusive) on conference start_time. UTC ISO 8601. name: Filter by exact instance name. service_type: "conference" / "lecture" / etc. tag: Filter by service tag. limit, offset, fetch_all: Pagination controls. |
| get_history_conferenceB | Retrieve one past conference instance by id. |
| list_history_participantsA | List completed participant call legs (CDR-like records). Time bounds apply to participant.start_time. All times are UTC ISO 8601. Args: start_time: Lower bound (inclusive) on start_time. end_time: Upper bound (exclusive) on start_time. conference_name: Restrict to one conference name (string, not id). call_direction: "in" / "out". call_quality: "1_good" / "2_ok" / "3_bad" / "4_terrible". protocol: "sip" / "h323" / "mssip" / "webrtc" / "rtmp" / "teams" / etc. disconnect_reason: e.g. "Call disconnected", "Call failed", "Call rejected". location: system_location id or exact name. service_tag: Filter by tag carried from the parent conference. limit, offset, fetch_all: Pagination. fetch_all caps at 10,000. |
| get_history_participantA | Retrieve one past participant by id. Returns full quality forensics: |
| summarize_callsA | Summarize / report on call history — grouped counts and totals over a window. USE THIS for any "summarize", "report", "breakdown", "how many calls by X", "stats", or "totals" request. Returns aggregated counts + durations grouped by a field — NOT individual records. Prefer this over list_history_conferences / list_history_participants whenever the user wants aggregates rather than a raw list; it walks pagination internally and is far cheaper on context and tool calls than fetching individual records. Args: start_time: Lower bound (inclusive) on start_time. UTC ISO 8601 required. end_time: Upper bound (exclusive) on start_time. UTC ISO 8601 required. group_by: One of "call_direction", "call_quality", "protocol", "service_tag", "system_location", "conference_name", "disconnect_reason", "vendor". conference_name: Restrict to one conference name. service_tag: Restrict to one tag. call_direction: "in" or "out" — useful when group_by is something else. location: system_location filter (name or id). max_records: Hard cap on participants fetched. Defaults to 10,000 (the platform retention limit). Returns: { "total_calls": int, "total_duration_seconds": int, "average_duration_seconds": float, "time_range": {"start": ..., "end": ...}, "group_by": str, "groups": {: {"count": int, "duration_seconds": int}, ...}, "truncated": bool # true if max_records was hit before exhausting results } |
| list_alarm_historyA | List historical alarms. Args: start_time: Lower bound (inclusive) on time_raised. UTC ISO 8601. end_time: Upper bound (exclusive) on time_raised. UTC ISO 8601. level: "error" / "warning" / "info". limit, offset, fetch_all: Pagination controls. |
| get_alarm_historyA | Retrieve one historical alarm by id. |
| list_backplane_historyC | List historical backplane connections. |
| get_backplane_historyA | Retrieve one historical backplane connection by id. |
| get_backplane_history_media_streamsA | Get media stream statistics for a historical backplane connection. Args: backplane_id: Backplane id from list_backplane_history. |
| list_registration_historyB | List historical registration events. Args: alias_contains: Case-insensitive substring match on the alias. limit, offset, fetch_all: Pagination controls. |
| get_registration_historyA | Retrieve one historical registration entry by id. |
| list_node_event_historyB | List Conferencing Node status event history. Args: start_time: Lower bound (inclusive). UTC ISO 8601. end_time: Upper bound (exclusive). UTC ISO 8601. limit, offset, fetch_all: Pagination controls. |
| get_node_event_historyA | Retrieve one Conferencing Node status event by id. |
| list_locationsB | List system locations (logical groupings of Conferencing Nodes, typically per datacenter / region). |
| get_locationA | Retrieve a system location by integer id or by exact name. |
| list_conferencing_nodesA | List Conferencing Nodes (the worker_vm resource). Args: location: System location id or exact name to filter by. name_contains: Case-insensitive substring match on node name. node_type: "CONFERENCING" or "PROXYING". limit: Max results. offset: Pagination offset. |
| get_conferencing_nodeA | Retrieve a Conferencing Node by integer id or by exact name. |
| list_ivr_themesB | List IVR themes (branding bundles assignable to VMRs). |
| get_ivr_themeA | Retrieve an IVR theme by id or exact name. |
| list_ldap_sourcesB | List configured LDAP / Active Directory sync sources. |
| get_ldap_sourceA | Retrieve an ldap_sync_source by id or exact name. Includes last sync status / errors when available — useful for answering 'is LDAP sync working?'. |
| list_resourcesA | List any Pexip configuration resource that has no dedicated tool. This is the catch-all listing tool. Supported resources by area:
Call get_resource_schema(resource) to discover filterable fields. Args: resource: API resource name from the list above (e.g. "sip_proxy", "system_backup", "teams_proxy", "dns_server"). name_contains: Case-insensitive substring match on the name field. filters: Additional query filters as key-value pairs (e.g. {"enable": true}). Keys must match the resource's field names. limit: Max results per page (default 20). offset: Pagination offset. |
| get_resourceA | Get a single configuration resource by integer id or by name. Args: resource: API resource name (see list_resources for the full list). id: Integer id, numeric string, or the resource's name — names are resolved automatically, so there is no need to list first. |
| get_resource_schemaA | Fetch the live JSON schema for a Pexip configuration resource. Use this to discover available fields, types, required vs optional
( |
| list_active_conferencesA | List currently-running conference instances. Empty Args: name: Filter by exact instance name (the dialed alias). service_type: "conference" / "lecture" / "two_stage_dialing" / "gateway" / "test_call". tag: Filter by service tag. limit: Per-page limit (ignored if fetch_all). offset: Pagination offset (ignored if fetch_all). fetch_all: Walk all pages and return up to 5,000 records combined. |
| list_active_participantsB | List currently-connected participants (active call legs). Args: conference_name: Restrict to one running conference instance. role: "chair" or "guest". protocol: "api" / "sip" / "h323" / "mssip" / "webrtc" / "rtmp" / "teams" / "gms". is_muted: Filter by mute state. limit, offset, fetch_all: Pagination controls. |
| get_active_participantA | Retrieve a single active participant. Args: participant_id: UUID, or the participant's display name (e.g. "Bob") — names are resolved against currently connected participants automatically, so there is no need to call list_active_participants first. conference: Optional conference name to scope a display-name lookup when the name might not be unique across meetings. |
| list_alarmsA | List active platform alarms. Args: level: "error" / "warning" / "info". node_name: Restrict to one Conferencing Node by name. limit, offset, fetch_all: Pagination controls. |
| list_node_statusA | Live status (load, sync, version, boot time) for each Conferencing Node. Args: location: Filter to one system_location by name or id. name_contains: Case-insensitive substring match on node name. limit, offset, fetch_all: Pagination controls. |
| get_node_statusA | Get live status for one Conferencing Node by integer id or exact name. |
| get_licensing_statusA | Current concurrent port usage vs entitlement (audio + video ports, per location). |
| get_participant_qualityA | Live call quality for one active participant. Combines two Status API endpoints into one response:
For "is Alice's call OK right now?" use cases — pass the name directly. For post-call quality forensics, use get_history_participant which exposes bucketed_call_quality. Args: participant_id: UUID, or the participant's display name (e.g. "Bob") — names are resolved against currently connected participants automatically, so there is no need to call list_active_participants first. conference: Optional conference name to scope a display-name lookup when the name might not be unique across meetings. |
| list_conference_shardsA | List conference instances broken out per Conferencing Node (shards). Args: conference_name: Filter by conference name. limit, offset, fetch_all: Pagination controls. |
| get_conference_shardB | Retrieve a single conference shard by id. |
| list_registration_aliasesA | List currently registered aliases on the platform. Args: alias_contains: Case-insensitive substring match on the alias. limit, offset, fetch_all: Pagination controls. |
| get_registration_aliasA | Retrieve a single registered alias by id. |
| list_location_statusA | List live status for system locations. Args: name_contains: Case-insensitive substring match on location name. limit, offset, fetch_all: Pagination controls. |
| get_location_statusA | Get live status for one system location by id or exact name. |
| get_location_statisticsA | Get load statistics for one system location (call counts, port usage). Args: location: Location id or exact name. |
| get_node_statisticsA | Get load statistics for one Conferencing Node (CPU, media load, call counts). Args: node: Node id or exact name. |
| list_backplanesB | List backplane status (inter-node media connections). |
| get_backplaneA | Retrieve a single backplane by id. |
| get_backplane_media_streamsA | Get media stream statistics for a backplane connection. Args: backplane_id: Backplane id from list_backplanes. |
| list_management_node_statusC | List Management Node live status. |
| get_management_node_statusB | Retrieve live status for a specific Management Node. |
| list_conference_sync_statusD | List conference synchronization status. |
| get_conference_sync_statusA | Retrieve a single conference sync entry by id. |
| list_cloud_nodesB | List all cloud overflow Conferencing Nodes (dynamic bursting). |
| get_cloud_nodeA | Retrieve a single cloud overflow node by id. |
| list_cloud_monitored_locationsA | List all locations monitored for dynamic bursting. |
| get_cloud_monitored_locationB | Retrieve a single cloud monitored location by id. |
| list_cloud_overflow_locationsA | List all locations containing Conferencing Nodes for dynamic bursting. |
| get_cloud_overflow_locationA | Retrieve a single cloud overflow location by id. |
| list_exchange_scheduler_statusC | List Secure Scheduler for Exchange integration status. |
| get_exchange_scheduler_statusA | Retrieve a single Exchange scheduler entry by id. |
| list_mjx_endpoint_statusA | List One-Touch Join endpoint live status. Args: name_contains: Case-insensitive substring match on endpoint name. limit, offset, fetch_all: Pagination controls. |
| get_mjx_endpoint_statusA | Retrieve live status for a single MJX endpoint by id. |
| list_mjx_meeting_statusB | List One-Touch Join meeting status (upcoming meetings detected by MJX). |
| get_mjx_meeting_statusA | Retrieve status for a single MJX meeting by id. |
| list_teams_node_statusC | List Teams Connector node status. |
| get_teams_node_statusA | Retrieve status for a single Teams Connector node by id. |
| list_teams_node_call_statusC | List Teams Connector call status. |
| get_teams_node_call_statusA | Retrieve status for a single Teams Connector call by id. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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/Josh-E-S/pexip-mgmt-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server