{
  "id": "02-ringcentral-app-connect-mcp",
  "slug": "ringcentral-app-connect-mcp",
  "normalized_name": "ringcentral app connect mcp",
  "name": "RingCentral App Connect MCP",
  "vendor_url": "ringcentral.com",
  "category": "engagement-outbound",
  "what_it_does": "One of four MCP servers RingCentral publishes through its Labs programme; this one bridges RingCentral telephony to whichever CRM the customer has linked through the App Connect browser extension, so an assistant can look up or create CRM contacts, log a call to the CRM and pull RingCentral call logs.",
  "ai_features": "None in this server. It is a telephony-to-CRM bridge with nine tools; the intelligence is entirely on the client side. RingCentral's separate AI features (AI Receptionist, call summaries) are not exposed through this particular server.",
  "mcp_status": "official",
  "mcp_url": "https://unified-crm-extension.labs.ringcentral.com/mcp (docs: https://mcp.labs.ringcentral.com/docs/servers/app-connect/; server registry: https://mcp.labs.ringcentral.com/docs/servers/) ; repo https://github.com/ringcentral/ringcentral-mcp-docs",
  "mcp_auth": "oauth plus a second, separate CRM link. The docs describe a two-layer model: RingCentral identity via OAuth 2.0 or SSO established when the server is added to the AI client, and then a CRM connection linked through the App Connect Chrome extension rather than inside the AI client, with only one CRM connected per RingCentral account at a time.",
  "api_gate": "paid - a RingCentral subscription is required and the Labs MCP servers carry no separate price. The vendor's plans and pricing page states \"RingCentral provides a suite of powerful APIs for voice, SMS/MMS, team messaging, video, fax, data management and system configuration.\" Per-seat prices on that page are rendered client-side and were not captured by this fetch, so no figure is recorded here.",
  "revops_role": "Call logging and CRM hygiene for a RingCentral phone stack, aimed at teams whose CRM has no MCP server of its own; the vendor's docs say so explicitly rather than overselling it.",
  "tier": "RESEARCHED",
  "last_checked": "2026-09-07",
  "sources": "https://mcp.labs.ringcentral.com/docs/servers/app-connect/, https://mcp.labs.ringcentral.com/docs/servers/, https://www.ringcentral.com/office/plansandpricing.html, https://github.com/ringcentral/ringcentral-mcp-docs, https://unified-crm-extension.labs.ringcentral.com/mcp",
  "notes": "Verified 2026-09-07 and this one is unusual: POST of an MCP initialize to https://unified-crm-extension.labs.ringcentral.com/mcp returned HTTP 200 with a full initialize result, serverInfo name \"rc-unified-crm-extension\" version 1.0.0, protocol 2024-11-05. Tool discovery is open and unauthenticated by design; the docs confirm this, stating the RingEX servers need \"no authentication required for tool discovery\" and that only the tools marked as requiring a CRM connection need a linked account. Status is Beta and transport is SSE over HTTPS. The candid line on the vendor's own page is worth quoting in any coverage: \"Some CRMs publish their own dedicated MCP servers with deeper, CRM-specific functionality. App Connect is most valuable when your CRM doesn't yet support MCP natively.\" A vendor telling a buyer to use someone else's server is rare enough to be the story. Three sibling servers are published in the same registry and are candidates for their own entries: RingEX Phone (12 tools), RingEX Chat (9 tools) and RingEX Admin (26 tools), all marked Preview. Nine tools here: getSessionInfo, getPublicConnectors, getHelp, findContactByName, findContactByPhone, createContact, createCallLog, rcGetCallLogs, logout. 2026-09-07: GitHub org ringcentral; repo is the MkDocs site for \"RingCentral MCP Server Documentation\" with per-server pages (docs/servers/app-connect.md) (https://github.com/ringcentral/ringcentral-mcp-docs).",
  "mcp_status_bucket": "official",
  "api_gate_bucket": "paid",
  "mcp_urls": [
    "https://unified-crm-extension.labs.ringcentral.com/mcp",
    "https://mcp.labs.ringcentral.com/docs/servers/app-connect/",
    "https://mcp.labs.ringcentral.com/docs/servers/",
    "https://github.com/ringcentral/ringcentral-mcp-docs"
  ],
  "source_urls": [
    "https://mcp.labs.ringcentral.com/docs/servers/app-connect/",
    "https://mcp.labs.ringcentral.com/docs/servers/",
    "https://www.ringcentral.com/office/plansandpricing.html",
    "https://github.com/ringcentral/ringcentral-mcp-docs",
    "https://unified-crm-extension.labs.ringcentral.com/mcp"
  ],
  "source_annotations": [],
  "vendor_domain": "ringcentral.com",
  "display_name": "RingCentral App Connect MCP",
  "docs_url": null,
  "jobs": [],
  "jobs_tagged_by": null,
  "jobs_tagged_on": null,
  "github_url": null,
  "github_stars": null,
  "github_last_commit": null,
  "github_archived": null,
  "github_fetched_on": null,
  "github_candidates": [
    "https://github.com/ringcentral/ringcentral-mcp-docs",
    "https://github.com/ringcentral/ringcentral-mcp-docs"
  ],
  "docs_digest": null,
  "docs_last_crawled": null,
  "submission": null,
  "mcp_tools": [
    {
      "name": "cancelAppointment",
      "description": "⚠️ REQUIRES CRM CONNECTION. | Cancel an existing appointment or event in the CRM platform by its ID. This action is destructive — the appointment will be removed.",
      "required_params": [
        "appointmentId"
      ],
      "evidence": "live-list",
      "repo_party": null,
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "confirmAppointment",
      "description": "⚠️ REQUIRES CRM CONNECTION. | Confirm an existing appointment or event in the CRM platform by its ID. Returns the updated appointment details.",
      "required_params": [
        "appointmentId"
      ],
      "evidence": "live-list",
      "repo_party": null,
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "createAppointment",
      "description": "⚠️ REQUIRES CRM CONNECTION. | Create a new appointment or event in the CRM platform. Returns the created appointment ID and details.",
      "required_params": [
        "title",
        "startTimeUtc",
        "durationMinutes"
      ],
      "evidence": "live-list",
      "repo_party": null,
      "source_party": null,
      "risk": "write"
    },
    {
      "name": "createCallLog",
      "description": "⚠️ REQUIRES CRM CONNECTION. | Create only one call log in the CRM platform. Returns the created log ID if successful. To use with `rcGetCallLogs`: pass a single item from the `records[]` array directly as `incomingData.logInfo`.",
      "required_params": [],
      "evidence": "live-list",
      "repo_party": null,
      "source_party": null,
      "risk": "write"
    },
    {
      "name": "createContact",
      "description": "⚠️ REQUIRES CRM CONNECTION. | Create a new contact in the CRM platform. Returns the created contact information if successful.",
      "required_params": [
        "phoneNumber"
      ],
      "evidence": "live-list",
      "repo_party": null,
      "source_party": null,
      "risk": "write"
    },
    {
      "name": "findContactByName",
      "description": "⚠️ REQUIRES CRM CONNECTION. | Search for a contact in the CRM platform by name. Returns contact details if found.",
      "required_params": [
        "name"
      ],
      "evidence": "live-list",
      "repo_party": null,
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "findContactByPhone",
      "description": "⚠️ REQUIRES CRM CONNECTION. | Search for a contact in the CRM platform by phone number. Returns contact details if found.",
      "required_params": [
        "phoneNumber"
      ],
      "evidence": "live-list",
      "repo_party": null,
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "getHelp",
      "description": "Get a quick guide on what this integration can do and how to get started.",
      "required_params": [],
      "evidence": "live-list",
      "repo_party": null,
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "getPublicConnectors",
      "description": "Get available connectors. Returns an interactive widget - do NOT summarize or list the results in text, just show the widget.",
      "required_params": [],
      "evidence": "live-list",
      "repo_party": null,
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "getSessionInfo",
      "description": "Get the current user session info, including RingCentral identity and CRM connection status.",
      "required_params": [],
      "evidence": "live-list",
      "repo_party": null,
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "listAppointments",
      "description": "⚠️ REQUIRES CRM CONNECTION. | List appointments or events from the CRM platform. Use the `filter` param to get upcoming, today's, past, or all appointments. For a specific window, supply `startDate` and `endDate` (YYYY-MM-DD) directly.",
      "required_params": [],
      "evidence": "live-list",
      "repo_party": null,
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "logout",
      "description": "Logout the user from the CRM platform.",
      "required_params": [],
      "evidence": "live-list",
      "repo_party": null,
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "rcGetCallLogs",
      "description": "⚠️ REQUIRES CRM CONNECTION. | Get call logs from RingCentral. Returns a `records[]` array. Each item in `records` is a complete RingCentral call log object that can be passed DIRECTLY as `incomingData.logInfo` to the `createCallLog` tool — ",
      "required_params": [
        "timeFrom",
        "timeTo"
      ],
      "evidence": "live-list",
      "repo_party": null,
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "updateAppointment",
      "description": "⚠️ REQUIRES CRM CONNECTION. | Update or reschedule an existing appointment or event in the CRM platform. Provide only the fields you want to change alongside the appointmentId.",
      "required_params": [
        "appointmentId"
      ],
      "evidence": "live-list",
      "repo_party": null,
      "source_party": null,
      "risk": "write"
    }
  ],
  "mcp_tool_count": 14,
  "mcp_tools_evidence": "live-list",
  "mcp_tools_repo": null,
  "mcp_tools_repo_party": null,
  "mcp_catalog_shape": "fixed",
  "mcp_catalog_note": null,
  "mcp_tools_fetched_on": "2026-09-27",
  "cli_status": "none-found",
  "cli_party": null,
  "cli_binary": null,
  "cli_install": [],
  "cli_login": null,
  "cli_commands_seen": [],
  "cli_docs_url": null,
  "cli_repo": null,
  "cli_packages": [],
  "cli_evidence": null,
  "cli_checked_on": "2026-09-27",
  "github_org": "ringcentral",
  "github_org_status": "resolved",
  "github_org_url": "https://github.com/ringcentral",
  "github_org_evidence": {
    "rule": "rule 2",
    "url": "https://unified-crm-extension.labs.ringcentral.com/mcp",
    "matched_domain": "ringcentral.com",
    "via": "website",
    "detail": "account website https://developers.ringcentral.com/ has the vendor's domain",
    "confidence": "strong",
    "candidates_rejected": []
  },
  "github_org_repos": 149,
  "github_org_repos_mcp": 1,
  "github_org_repos_cli": 0,
  "github_org_latest_activity": "2026-09-08T06:02:40Z",
  "github_org_recent_repos": [
    {
      "name": "ringcentral-embeddable",
      "url": "https://github.com/ringcentral/ringcentral-embeddable",
      "kind": "plugin-or-integration",
      "description": "RingCentral Embeddable widget",
      "stars": 92,
      "pushed_at": "2026-09-08",
      "latest_release": "2.3.1"
    },
    {
      "name": "trello-notification-app",
      "url": "https://github.com/ringcentral/trello-notification-app",
      "kind": "plugin-or-integration",
      "description": "Trello notification and bot add-in for RingCentral",
      "stars": 4,
      "pushed_at": "2026-09-07",
      "latest_release": null
    },
    {
      "name": "engage-voice-embeddable",
      "url": "https://github.com/ringcentral/engage-voice-embeddable",
      "kind": "other",
      "description": "(Beta)RingCentral RingCX Embeddable widget",
      "stars": 7,
      "pushed_at": "2026-09-07",
      "latest_release": "0.1.0"
    },
    {
      "name": "rc-unified-crm-extension",
      "url": "https://github.com/ringcentral/rc-unified-crm-extension",
      "kind": "plugin-or-integration",
      "description": "App Connect is a CRM integration framework to help developers quickly bring to market a full-featured CTI into virtually any CRM along with a multitude of other",
      "stars": 13,
      "pushed_at": "2026-09-07",
      "latest_release": "1.7.44"
    },
    {
      "name": "ringcentral-call-control-js",
      "url": "https://github.com/ringcentral/ringcentral-call-control-js",
      "kind": "docs-or-examples",
      "description": "RingCentral Call Control SDK in JavaScript to control RingCentral calls on any endpoint. Demo URL:",
      "stars": 10,
      "pushed_at": "2026-09-07",
      "latest_release": "0.2.12"
    }
  ],
  "github_org_checked_on": "2026-09-08",
  "mcp_endpoint": null,
  "mcp_docs_url": null,
  "endpoint_status": "not-probed",
  "endpoint_http_status": null,
  "endpoint_last_probed": null,
  "endpoint_wall_note": null,
  "canonical": true,
  "canonical_id": "02-ringcentral-app-connect-mcp",
  "also_listed_in": [],
  "source_file": "02-engagement-outbound.md",
  "source_line": 561,
  "file_index": 29,
  "category_num": "02",
  "category_slug": "engagement-outbound",
  "category_label": "Engagement & Outbound",
  "heading": "RingCentral App Connect MCP",
  "missing_schema_fields": [],
  "extra_fields": {},
  "display_rank": 127
}
