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 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| 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