ringcentral-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ringcentral-mcpwhat is the current presence of extension 102?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ringcentral-mcp
RingCentral MCP Service — a stateless HTTP MCP server wrapping the RingCentral REST API, covering account info, extensions, phone numbers, presence, call queues, contacts, and call logs/recordings.
Tech stack: Python 3.12 + uv + FastMCP (Starlette/Uvicorn)
What is RingCentral / when would an agent use this
RingCentral is a cloud phone / UCaaS (telephony) platform MSPs use to manage a customer's business phone system — extensions, phone numbers, presence, call queues, directory/personal contacts, and call history. An agent should reach for this MCP for requests like:
"Who has extension 101 / what extensions exist?" →
ringcentral_list_extensions,ringcentral_get_extension"Is this person available / on a call right now?" →
ringcentral_get_presence"Which numbers are provisioned for this account?" →
ringcentral_list_phone_numbers"Who staffs the support call queue?" →
ringcentral_list_queues, thenringcentral_list_queue_members"Show recent inbound calls for extension X" / "get that call's recording" →
ringcentral_list_user_call_log/ringcentral_list_company_call_log, thenringcentral_get_call_recordingusing the call log entry'srecording.id
It follows the MSPbots Vendor MCP Service SOP: stateless, no stored credentials, per-request header authentication. All 13 tools are read-only.
Related MCP server: Sentinel Core Agent
Authentication
RingCentral's REST API uses the JWT bearer flow — a server-to-server grant with no user browser redirect. A JWT credential is generated in the RingCentral admin console for a dedicated "service user" (Roles & Permissions → the service user's JWT credential), then exchanged for a short-lived access token:
POST https://platform.ringcentral.com/restapi/oauth/token
Authorization: Basic base64(client_id:client_secret)
Content-Type: application/x-www-form-urlencoded
grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&assertion=<jwt>A fresh access token is cheap to obtain and this service must stay stateless, so it re-authenticates on every call rather than caching/refreshing a token — no derived token is ever cached across requests (SOP §3.4).
Credentials are read from HTTP headers only, on every request — never from environment variables. There is no local/single-tenant fallback mode; this keeps one tenant's credentials from ever leaking into another tenant's request.
授权参数说明 (Authentication headers)
Every request to /mcp must include the following HTTP headers:
Header | 类型 | 是否必填 | 默认值 | 枚举值 | 字段描述 | Example |
| string | 是 | 无 | 无 | RingCentral App 的 Client ID(在 RingCentral 开发者后台申请的应用) |
|
| string | 是 | 无 | 无 | RingCentral App 的 Client Secret |
|
| string | 是 | 无 | 无 | 绑定在某个 Service User 上的 JWT 凭据(RingCentral 后台 Roles & Permissions 生成),本服务用其换取短期 access token,从不落盘存储 |
|
Missing any of the three headers returns 401 Unauthorized with a required_headers list in the body.
Quick Start
Docker (recommended)
docker compose up --buildThe server starts on http://localhost:8080.
Local (uv)
uv sync
python -m ringcentral_mcpHealth Check
curl http://localhost:8080/health
# {"status": "ok"}No credentials are required for the health endpoint (it is a pure local liveness probe and never calls the RingCentral API).
Environment Variables
Variable | Default | Description |
|
| Listening port |
|
| Listening host |
No credential fields exist in configuration — see Authentication above.
MCP Endpoint
POST http://localhost:8080/mcpConnect your MCP client with:
Transport:
http(Streamable HTTP)Headers:
X-RingCentral-Client-Id,X-RingCentral-Client-Secret,X-RingCentral-Jwt(all required)
Available Tools (13)
Tool | 功能 | 参数 | API |
| 获取当前账号的公司/账号基本信息 | 无 |
|
| 列出账号下的分机(用户/队列/部门) |
|
|
| 获取单个分机详情 |
|
|
| 列出公司及分机号码 |
|
|
| 获取分机的在线/通话/免打扰状态 |
|
|
| 列出呼叫队列 |
|
|
| 列出某呼叫队列的成员 |
|
|
| 列出公司通讯录(内部用户) |
|
|
| 列出某分机的个人通讯录联系人 |
|
|
| 列出全公司通话记录 |
|
|
| 列出单个分机的通话记录 |
|
|
| 获取录音元数据(含下载用的 contentUri) |
|
|
| 获取录音媒体的 content-type/大小(不含音频本体) |
|
|
page/per_page on list tools: this server caps per_page at 200 regardless of the higher limits some RingCentral endpoints document (call-log endpoints allow up to 1000, directory/entries up to 2000) — 200 is the stricter of "our SOP ceiling" vs. "vendor's real max" in every case here, so 200 always governs. per_page is otherwise passed straight through to RingCentral's own perPage query parameter.
测试示例 (Test Example)
{
"method": "tools/call",
"params": { "name": "ringcentral_list_extensions", "arguments": {} }
}Equivalent curl against the running server (streamable HTTP MCP endpoint):
curl -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-H "X-RingCentral-Client-Id: <client_id>" \
-H "X-RingCentral-Client-Secret: <client_secret>" \
-H "X-RingCentral-Jwt: <jwt>" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": { "name": "ringcentral_list_extensions", "arguments": {} }
}'API Reference
Per-page limits verified against RingCentral's own OpenAPI spec (
assets-developers.ringcentral.com/dpw/api-reference/specs/public/office/rc-platform.yml): the genericperPageparameter (extensions, phone numbers, queues, queue members, contacts) has no documented maximum; call-log endpoints document a documented max of 1000;directory/entriesdocuments a max of 2000. This server's own 200 hard cap is stricter than all of these, so it is always the binding limit.
Known Gaps / Implementation Notes
⚠️ Not yet tested against a live RingCentral account. All 13 tools have been checked structurally only (MCP handshake, tools-list, schema validity,
/health, gateway 401 credential-gating). Per the parent ClickUp task, this is currently blocked at the business/procurement level — MSPbots has never purchased a RingCentral service (no paid user seat), and a JWT credential can only be bound to a real service user account, so no test credentials are available yet.Endpoints verified directly against RingCentral's official OpenAPI spec — not guessed.
ringcentral_get_call_recording/ringcentral_download_call_recording: there is no standalone "list all recordings" endpoint — recording IDs must come from a call-log entry'srecording.idfield (query call logs withrecordingType/withRecordingparams to surface them).ringcentral_download_call_recordingcannot return actual audio bytes (not representable as MCP tool text output) — it returns content-type/size only; useringcentral_get_call_recording'scontentUrifield for an actual download URL."Queues" have no separate
/call-queueresource type in RingCentral's model — they're extensions with type Department/Call Queue, exposed at the dedicated/call-queuespaths used here.Scope is limited to the 13 operations above, not RingCentral's full API surface (which also includes messaging/SMS, meetings, fax, call control/RingOut, and account provisioning).
This server only runs in HTTP/gateway mode (no stdio transport, no single-tenant env-var credential mode) — the SOP requires credentials to come exclusively from per-request headers, so a code path that reads them from the environment instead was removed rather than kept as a "local dev convenience."
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to interact with Genesys Cloud platform through MCP tools, resources, and prompts, supporting queues, conversations, users, presence, and analytics with production-ready features like Streamable HTTP and per-request authentication.1MIT
- FlicenseNot gradedqualityDmaintenanceEnables file system operations, web scraping, and AI-powered search through MCP tools for use by LLM agents.1
- FlicenseNot gradedqualityBmaintenanceEnables interaction with Salesforce data and services via custom MCP tools, including account analytics, opportunity queries, case creation, and AI agent invocation.4
- FlicenseNot gradedqualityBmaintenanceEnables Eesa AI agents to interact with Dialpad cloud phone system via MCP tools, including user management, call logs, transcripts, and SMS sending, with multi-tenant support.
Related MCP Connectors
Search, document and execute authenticated API calls across 700+ apps via one MCP server
Official MCP server for OmniDimension. Drive voice agents, dispatch calls, and run bulk campaigns.
34 production API tools over one hosted MCP endpoint.
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/MSPbotsAI/ringcentral-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server