# Documentation - [Documentation](/docs): Build AI voice agents with OmniDimension. Guides, API reference, and integration recipes for the entire platform. - **Get started** - [Quickstart](/docs/get-started/quickstart): Build with OmniDimension from an AI client, your backend, or the dashboard. - [Authentication](/docs/get-started/authentication): How to obtain an OmniDimension API key and configure it for the SDK. - **Build your agent** - [Configure your agent](/docs/dashboard-guides/configure-your-agent): Configure the conversational flow for your agent. Sections, instructions, welcome message, and best practices. - [Voices and languages](/docs/dashboard-guides/voices-and-languages): Build globally-aware AI agents with native-level fluency across 90+ languages and 1000+ realistic voices. - [Knowledge base](/docs/dashboard-guides/knowledge-base): Provide your agent with domain-specific knowledge using document-based references. - [Voice cloning](/docs/dashboard-guides/voice-cloning): Clone your voice and use it with your AI agents for a personalized experience. - [Web search tool](/docs/dashboard-guides/web-search-tool): Enable real-time internet access for your agent using the Web Search integration. - [Agent timezone](/docs/dashboard-guides/update-timezone): Set and update your agent's timezone for accurate scheduling and time-based operations. - [Agent versioning and publishing](/docs/dashboard-guides/agent-versioning-and-publishing): Save named versions of an agent, publish one as what your live traffic runs, and roll back anytime while your draft stays editable. - **Phone numbers** - [Get a phone number](/docs/get-a-number): Four ways to get a phone number for your AI agents. Buy one from OmniDimension, or import your own from Twilio, a SIP carrier, or Exotel. - [Numbers Shop](/docs/dashboard-guides/numbers-shop): Purchase dedicated phone numbers and connect them to your Voice AI agents. - [Buy a number over the API](/docs/buy-a-number-api): Search the OmniDimension number shop, buy a number, and release it when you are done. - Bring your own number - [Bring your own number](/docs/telephony): Import phone numbers you already own into OmniDimension, from Twilio, any SIP carrier, or Exotel. - [Import a Twilio number](/docs/telephony/twilio-import): Import an existing Twilio number into OmniDimension with your account SID and auth token. No SIP trunk setup required. - [SIP Trunking](/docs/telephony/sip): Connect your existing phone numbers to OmniDimension using SIP trunking. - [RingCentral SIP Configuration](/docs/telephony/sip-ringcentral): Complete guide to configure your RingCentral SIP trunking, including SIP credentials and optional outbound proxy. - [Vonage SIP Setup](/docs/telephony/sip-vonage): Complete guide to configure your Vonage SIP trunking with UserKey and Secret authentication. - [Twilio via SIP (advanced)](/docs/telephony/sip-twilio): Connect Twilio numbers through Elastic SIP Trunking with credential lists or IP ACL authentication. For most users, the direct Twilio import is simpler. - [Voicelink SIP Setup](/docs/telephony/sip-voicelink): Connect a Voicelink DID to your OmniDimension agents over SIP. The host, port, and dial prefix are filled in for you, so you only pick Voicelink and enter your number. - [Import Exotel Phone Numbers](/docs/telephony/exotel-import): Import your Exotel phone numbers into OmniDimension and set up call flows for your AI agents. - **Channels** - [Omnichannel deployment](/docs/omnichannel): Deploy one agent across voice, web chat, WhatsApp, email, and SMS. - [Web chat widget](/docs/dashboard-guides/web-chat-widget): Deploy your voice AI agent as a chat widget on your website with a no-code embed script. - WhatsApp - [WhatsApp Integration](/docs/whatsapp): Connect your WhatsApp number to OmniDimension so an AI agent can send messages, run campaigns, and reply to customers automatically. - [Get your Meta Cloud credentials](/docs/whatsapp/meta-credentials): Find the four credentials OmniDimension asks for when you import a WhatsApp Cloud number, and how to set up your Meta account from scratch. - [Import your WhatsApp Cloud number](/docs/whatsapp/import-number): Connect a WhatsApp Cloud API number to OmniDimension using your four Meta credentials, then attach an AI agent. - [Inbound replies on WhatsApp](/docs/whatsapp/inbound-replies): Let your AI agent reply automatically to messages customers send to your WhatsApp number. - **Campaigns** - Bulk calls - [Bulk calls](/docs/bulk-calls): Run AI-powered outbound campaigns with retry logic, dynamic queues, and best practices for production deployment. - [Bulk Call Campaign Guide](/docs/bulk-calls/overview): Complete step-by-step guide to create and manage AI-powered bulk call campaigns to reach multiple contacts efficiently. - [Dynamic Campaign Guide](/docs/bulk-calls/dynamic): Create a Dynamic Campaign that accepts contacts in real time via a webhook API. Ideal for CRM integrations and continuous outreach. - [Run a campaign over the API](/docs/bulk-calls/api): Build a campaign as a draft, rotate it across a pool of numbers, steer it while it runs, and read per-contact results. - [Bulk Outbound Call Best Practices](/docs/bulk-calls/best-practices): Complete guide for optimizing bulk call campaigns, from agent configuration to post-call analysis. - **Automation** - [OmniWorkflows](/docs/workflows): Build visual automations that connect triggers to actions like voice AI calls, CRM updates, and messaging. - **Calls and analytics** - [Recent calls](/docs/dashboard-guides/recent-calls): Access, analyze, and make use of recent call logs to improve your agent's performance. - [Post-call actions](/docs/dashboard-guides/post-call): Configure post-call delivery to Email, Salesforce, Slack, Webhooks, HubSpot, and WhatsApp Cloud. - [Live call monitoring](/docs/dashboard-guides/live-call-monitoring): Watch in-progress calls as live transcripts and status, updated in near real time. - [Call quality and debugging](/docs/dashboard-guides/call-quality): Understand the per-call quality score, replay a call with its event timeline, and read the latency profile. - [Omni CRM](/docs/dashboard-guides/omni-crm): A single place to search, filter, and analyze every customer interaction your agents have handled. - [Conversation Insights](/docs/dashboard-guides/conversation-insights): Bulk-audit call recordings from OmniDimension or external sources and get aggregate quality insights. - **Integrations** - Integrations - [Integrations](/docs/integrations): Connect OmniDimension to anything. Custom API turns any REST endpoint into an agent action, plus prebuilt connectors for the platforms you already use. - [Make, Zapier, n8n, GHL](/docs/integrations/zapier-make-n8n): Connect Make, Zapier, n8n, and GHL to your OmniDimension agent to automate workflows. - [HubSpot](/docs/integrations/hubspot): Integrate HubSpot with your voice AI agent to automatically manage contacts, deals, and more. - [Salesforce](/docs/integrations/salesforce): Connect your Salesforce CRM with your voice AI agent to manage contacts, leads, and opportunities. - [Google Calendar](/docs/integrations/google-calendar): Integrate Google Calendar with your agent to schedule and manage meetings automatically. - [Cal.com](/docs/integrations/cal-com): Integrate Cal.com with your voice AI agent to schedule meetings during a call. - [Calendly](/docs/integrations/calendly): Connect Calendly so your agent can check availability and book meetings during a call. - [Slack](/docs/integrations/slack): Send automated messages and notifications from your voice AI agent into your Slack workspace. - [Google Sheets](/docs/integrations/google-sheets): Send one row per call to a Google Sheet automatically after each call. - [Custom API](/docs/integrations/custom-api): Connect your agent to any external service using custom API integration. - **White-label (agencies)** - OmniRelay - [OmniRelay](/docs/omnirelay): Sell Voice AI under your own brand with OmniRelay, OmniDimension's platform for agencies: your domain, your branding, your client pricing. - [Set up your platform](/docs/omnirelay/set-up-your-platform): Brand your OmniRelay platform, point your domain at us, and go live for your clients in about ten minutes. - [Connect your domain](/docs/omnirelay/connect-your-domain): Point a custom domain at your white-label platform, with per-provider DNS steps and a troubleshooting guide. - [Clients and billing](/docs/omnirelay/clients-and-billing): Add client workspaces, set your own client pricing, manage your monthly voice minutes, and change plans on OmniRelay. - [FAQ](/docs/omnirelay/faq): Common questions about running a white-label Voice AI platform with OmniRelay, covering branding, setup, pricing, billing, clients, and going live. - **Learn** - API guides - [Web call protocol](/docs/web-call-protocol): The WebSocket protocol behind web call sessions, for iOS, Android, Flutter, kiosks, and any platform without an official SDK. - [Real-time and streaming](/docs/realtime): How real-time data flows in OmniDimension. Streaming voice on live calls, webhook event delivery for call results, and live status polling for bulk campaigns. - [Errors, rate limits, and retries](/docs/errors): Error response shapes, status codes, rate limits, and retry guidance for the OmniDimension REST API. - [Per-call languages](/docs/per-call-languages): Set the languages an agent speaks on one specific call, chosen at dial time, without changing the agent's own configuration. - [Reseller API](/docs/reseller-api): Run your clients from your own product: create them, set what they can do, fund them with credits, verify them, and buy them numbers. - Examples - [Examples](/docs/examples): Real-world voice agent builds you can learn from and adapt. Healthcare, real estate, support, recruiting, and more. - [SaaS OmniSupport agent](/docs/examples/omnisupport-agent): Build a voice AI agent for SaaS support with Cal.com, Slack, and Make.com integrations. - [Healthcare appointment booking](/docs/examples/health-appointment): Build a voice agent for healthcare appointment scheduling, doctor availability, and clinic info. - [Real estate agent (API)](/docs/examples/real-estate): Build a voice agent that handles property inquiries, schedules viewings, and manages client interactions via the API. - [Recruitment screening bot](/docs/examples/recruit-bot): Build an outbound voice agent for initial job applicant screening calls, with bulk call campaigns. - [Restaurant agent (API)](/docs/examples/restaurant): Build a voice agent that handles restaurant orders, reservations, and outbound marketing campaigns. - [Insurance claim status and filing](/docs/examples/insurance-claim-status): Build a voice agent that handles insurance claim status checks, new claim filing, and customer inquiries. - [Utility bill payment agent (API)](/docs/examples/utility-bill-payment): Build an outbound voice agent that handles utility bill payments, sends payment reminders, and manages customer interactions. - [Travel planning and lead generation](/docs/examples/travel-planning-agent): Build an engaging voice agent that helps users plan trips while collecting lead information for your travel business. - Tutorials - [Tutorials](/docs/tutorials): Video walkthroughs for building, configuring, and integrating OmniDimension voice agents. - **Reference** - API reference - [API reference](/docs/api-reference): REST + Python SDK reference for the OmniDimension platform with an interactive try-it-out playground. - **Build** - Agents: Create, retrieve, update, and delete AI voice agents. Configure transcriber, model, voice, integrations, and post-call actions. - [List agents](/docs/api-reference/agents/listAgents): Retrieve all agents for the authenticated user with pagination support. - [Create agent](/docs/api-reference/agents/createAgent): Create a new agent with the provided configuration. The full config supports transcriber, model, voice, web search, transfer, end-call conditions, post-call actions (email + webhook), ambient background track, initial ringing sound, and multilingual support. - [Get agent](/docs/api-reference/agents/getAgent): Get details of a specific agent by ID. The response also includes a `version_history_enabled` boolean showing whether [version history](/docs/api-reference/agents/listAgentVersions) is turned on for the agent's organization. - [Delete agent](/docs/api-reference/agents/deleteAgent): Permanently delete an agent. - [Update agent](/docs/api-reference/agents/updateAgent): Update an existing agent. Send only the fields you want to change. > **Voicemail detection is an access-gated feature** that we turn on per account. If it isn't enabled for yours yet, [request access](https://omnidim.io/contact-us?reason=product&lock=1) before configuring the `voicemail` object below. - [List agent versions](/docs/api-reference/agents/listAgentVersions): List an agent's saved versions, newest first. Includes manual (named) versions, automatic versions, and system backups taken before a restore. - [Save an agent version](/docs/api-reference/agents/createAgentVersion): Save the agent's current configuration as a named version. - [Rename an agent version](/docs/api-reference/agents/renameAgentVersion): Rename a saved version or edit its note. Version history is immutable otherwise; only the name and note can change. - [Delete an agent version](/docs/api-reference/agents/deleteAgentVersion): Delete a saved version. - [Diff an agent version](/docs/api-reference/agents/diffAgentVersion): Get a record-level diff for this version. By default it shows what changed in this version compared with the version before it. Use `against=current` to compare with the agent's live config (what restoring this version would change), or `against=` to compare with another version. - [Restore an agent version](/docs/api-reference/agents/restoreAgentVersion): Restore a version onto the live agent. Your current setup is saved first as a backup version, so restoring is undoable. Configuration is brought back; any knowledge files or integrations that were deleted since this version was saved can't be re-linked, and are reported in `skipped`. - Knowledge base: Upload, manage, and attach PDF documents to agents. - [List knowledge base files](/docs/api-reference/knowledge-base/listKnowledgeBaseFiles): List all knowledge-base files for the authenticated user. - [Check file upload capability](/docs/api-reference/knowledge-base/canUploadFile): Check whether a file can be uploaded based on size and type. - [Upload file to knowledge base](/docs/api-reference/knowledge-base/uploadKnowledgeBaseFile): Upload a PDF file. The file content must be Base64 encoded. - [Attach files to agent](/docs/api-reference/knowledge-base/attachKnowledgeBaseFiles): Attach multiple knowledge-base files to an agent. - [Detach files from agent](/docs/api-reference/knowledge-base/detachKnowledgeBaseFiles): Detach multiple knowledge-base files from an agent. - [Delete file from knowledge base](/docs/api-reference/knowledge-base/deleteKnowledgeBaseFile): Permanently delete a file. Removes it from any attached agents. Cannot be undone. - **Setup** - Providers: Discover available LLM, voice, STT, and TTS providers, with advanced filtering for ElevenLabs voices. - [List LLM providers](/docs/api-reference/providers/listLLMProviders): Retrieve all available Large Language Model providers. - [List voices](/docs/api-reference/providers/listVoices): Retrieve voices with filtering and pagination support. ElevenLabs supports advanced filtering by name, language, accent, and gender. Other providers support basic pagination only. - [List STT providers](/docs/api-reference/providers/listSTTProviders): Retrieve all Speech-to-Text providers. - [List TTS providers](/docs/api-reference/providers/listTTSProviders): Retrieve all Text-to-Speech providers. - [List all providers](/docs/api-reference/providers/listAllProviders): Comprehensive response with services and voices in one payload. - [Get voice details](/docs/api-reference/providers/getVoice): Detailed metadata for a specific voice. - Phone numbers: Search and buy phone numbers, release them, attach and detach them from agents, and import numbers you already own from Twilio, Exotel, or your own SIP trunk. - [List phone numbers](/docs/api-reference/phone-numbers/listPhoneNumbers): Retrieve the phone numbers on your account, whether you bought them from the OmniDimension number shop or imported your own. - [Search available phone numbers](/docs/api-reference/phone-numbers/searchPhoneNumbers): Search the OmniDimension number shop for phone numbers available to buy in a region. Price and validity are flat per region, so every result shows the same monthly_rental_usd and validity_days, and that is the exact amount a purchase will charge. - [Purchase a phone number](/docs/api-reference/phone-numbers/purchasePhoneNumber): Buy a phone number from the OmniDimension number shop. The monthly rental comes out of your wallet and the number is added to your account, ready to attach to an agent. - [Release a phone number](/docs/api-reference/phone-numbers/releasePhoneNumber): Give up a phone number and stop its rental, so it is not charged at the next renewal. Only a number currently allocated to the account can be released. - [Attach phone number to agent](/docs/api-reference/phone-numbers/attachPhoneNumber): Attach an account-owned phone number to an existing agent. - [Detach phone number](/docs/api-reference/phone-numbers/detachPhoneNumber): Detach a phone number from its associated agent. - [Import Twilio number](/docs/api-reference/phone-numbers/importTwilioNumber): Import an existing Twilio number by providing your Twilio credentials. - [Import Exotel number](/docs/api-reference/phone-numbers/importExotelNumber): Import an Exotel number by providing your Exotel credentials. - [Import SIP trunk](/docs/api-reference/phone-numbers/importSipTrunk): Import a phone number associated with a SIP trunk. - **Run calls** - Calls: Dispatch calls to phone numbers, retrieve call logs, and inspect individual call sessions. - [Dispatch call](/docs/api-reference/calls/dispatchCall): Initiate a call to a phone number using a specified agent. The phone number must include a country code with a leading plus. - [List call logs](/docs/api-reference/calls/listCallLogs): Retrieve call logs with pagination and optional filtering. - [Get call log](/docs/api-reference/calls/getCallLog): Detailed information about a specific call (duration, status, transcript, sentiment, extracted variables). - Bulk calls: Run outbound campaigns against a contact list. Schedule, retry, pause, resume, and monitor live status. - [Fetch bulk calls](/docs/api-reference/bulk-calls/fetchBulkCalls): List bulk-call campaigns with pagination and optional status filter. - [Create bulk call](/docs/api-reference/bulk-calls/createBulkCall): Create a new bulk-call campaign. Only name, phone_number_id and a contact_list are needed to dial a list now; every other field adds one behaviour on top (drafts, rotation, filtering, scheduling, retries, dynamic feeding). - [Add contact to dynamic campaign](/docs/api-reference/bulk-calls/addBulkCallContact): Push a single contact into a dynamic bulk-call campaign in real time. Dynamic campaigns are created from the dashboard (Bulk Call > Create New Campaign > Dynamic Campaign) and stay alive waiting for contacts, so this webhook is how you feed them from a CRM, form, or automation platform. The contact is queued immediately, and the campaign starts calling it as soon as it is within operating hours. - [Bulk call details](/docs/api-reference/bulk-calls/getBulkCall): Get detailed information about a bulk-call campaign. - [Cancel bulk call](/docs/api-reference/bulk-calls/cancelBulkCall): Cancel a bulk-call campaign. - [Bulk call actions](/docs/api-reference/bulk-calls/bulkCallActions): Pause, resume, or reschedule a running campaign. - [Bulk call results](/docs/api-reference/bulk-calls/listBulkCallLines): Per-contact results for a campaign: what happened on each call, the variables you sent with that contact, and a pointer to the recording. - [List rotation pool](/docs/api-reference/bulk-calls/listBulkCallNumbers): The campaign's number pool, and which number is dialing right now. - [Add number to rotation pool](/docs/api-reference/bulk-calls/addBulkCallNumber): Add one of your numbers to the campaign's rotation pool. Works while the campaign is running, which is how you bring in a fresh number when the pool is running out of healthy ones. - [Pause or resume a pool number](/docs/api-reference/bulk-calls/setBulkCallNumberActive): Stop or resume dialing from one number in the pool. - [Add contacts in bulk](/docs/api-reference/bulk-calls/addBulkCallContacts): Add up to 1000 contacts to a campaign in one request. - [Start a draft campaign](/docs/api-reference/bulk-calls/startBulkCall): Start a campaign that was created with save_as_draft: true. - [Change concurrency](/docs/api-reference/bulk-calls/setBulkCallConcurrency): Change how many calls the campaign places at once, including while it is running. Raise it to finish sooner, lower it if your team cannot keep up with transfers or your numbers are being answered less. - [Retry contacts that did not connect](/docs/api-reference/bulk-calls/retryBulkCall): Re-queue contacts that did not connect, without creating a new campaign. - [Set calling hours](/docs/api-reference/bulk-calls/setBulkCallDailyTimeControl): Restrict a campaign to a daily calling window, in the campaign's timezone. Outside the window the campaign holds rather than finishing, and resumes the next day. - [Bulk call live status](/docs/api-reference/bulk-calls/getBulkCallLiveStatus): Real-time status of a running bulk-call campaign. - Sessions: Create short-lived Sessions for web calls: your server trades its API key for a per-conversation token and a ready-to-use WebSocket URL, so your client can talk to an agent without any credential in the page. - [Create session](/docs/api-reference/sessions/createSession): Create a voice Session: a short-lived, single-conversation reservation that lets a client hold a live voice chat with your agent. This is step 1 of 2. Creating the Session does not start any audio on its own; it returns a ws_url that a client then connects to over WebSocket to actually talk. - **Test** - Simulation: Run automated agent test simulations with scenarios and quick-test workflows. - [List simulations](/docs/api-reference/simulation/listSimulations): Retrieve simulations with pagination. - [Create simulation](/docs/api-reference/simulation/createSimulation): Create a new test simulation with scenarios. - [Get simulation](/docs/api-reference/simulation/getSimulation): Detailed simulation information. - [Delete simulation](/docs/api-reference/simulation/deleteSimulation): Permanently delete a simulation. - [Update simulation](/docs/api-reference/simulation/updateSimulation): Update an existing simulation. Pass the full `scenarios` array (existing entries you want to keep plus any changes). - [Start simulation](/docs/api-reference/simulation/startSimulation): Begin running a simulation. Optionally update scenarios at start time (same shape as Update simulation). - [Stop simulation](/docs/api-reference/simulation/stopSimulation): Stop a running simulation. - [Enhance prompt](/docs/api-reference/simulation/enhancePrompt): Generate prompt-improvement suggestions for a completed simulation. - **Admin** - Reseller: Manage your clients: verify their identity, add users, transfer credits, and control dashboard access flags. To buy a client a phone number, use the Phone numbers endpoints with a `user_id`. Reseller accounts only. [Request access](https://omnidim.io/contact-us?reason=reseller_api&lock=1). - [List child organizations](/docs/api-reference/reseller/listChildOrganizations): List all child organizations and their users under the reseller account. Returns each organization's balance, cost-per-minute rate, and concurrency limit, plus the dashboard menu access flags scoped to your reseller's permissions for every user. - [Add user](/docs/api-reference/reseller/addUser): Create a new child user and organization under the reseller. The new organization is linked to your reseller account automatically. - [Update user access control](/docs/api-reference/reseller/setUserAccessControl): Enable or disable dashboard menu access flags for a child user. Only the flags you pass are changed. Flags outside your reseller's permissions are silently ignored. - [Update user expiry](/docs/api-reference/reseller/setUserExpiry): Set or remove the expiry date on a child user. The user must belong to a child organization of your reseller. - [Set child concurrency limit](/docs/api-reference/reseller/setChildConcurrency): Set the maximum number of simultaneous calls a client can run. new_limit is the absolute figure you want, not a change to the current one. - [Calculate credit operation](/docs/api-reference/reseller/calculateCreditOperation): Preview the cost of a transfer or revert without moving any credits. Use this to confirm amounts before calling the transfer or revert endpoints. The response shape differs between forward transfers and reverts. See the examples. - [Transfer credits to a child](/docs/api-reference/reseller/transferCreditsToChild): Transfer minutes from your balance to a client, at the rate you set. - [Revert credits](/docs/api-reference/reseller/revertCreditsFromChild): Take unused minutes back from a client. The exact mirror of a transfer, so you do not pass a rate. - [Credit transfer logs](/docs/api-reference/reseller/getResellerCreditLogs): Paginated history of all credit transfers and reverts for the reseller account. Returns reverse-chronological order by default. Date filters are inclusive. - [Get KYC status](/docs/api-reference/reseller/getResellerKycStatus): Get the identity verification status of a client for every region where verification is required. Use next_step to know which step to call next, so you drive the whole flow off one poll instead of hardcoding the sequence. - [Get KYC requirements for a region](/docs/api-reference/reseller/getResellerKycRequirements): Get the ordered list of verification steps for a region and the fields each step needs, so your integration can build a verification form without hardcoding the sequence. - [Submit a KYC verification step](/docs/api-reference/reseller/submitResellerKycStep): Run one step of a client's identity verification. One endpoint handles every step: the step path parameter names the step, and the body carries user_id, region, and whatever that step needs. Pick a step from the examples below to see its body. - SDKs - [SDKs](/docs/sdks): Official OmniDimension SDKs for the backend and the browser. - **Server SDKs** - [Python SDK](/docs/sdks/python): The omnidimension Python package. Install with pip and start calling the API. - [TypeScript SDK](/docs/sdks/typescript): The @omnidim-ai/sdk package. A typed, server-side SDK for the OmniDimension API. - **Client SDKs** - [Web widget](/docs/sdks/web-widget): Embed your agent in the browser with a no-code script. - [Web SDK](/docs/sdks/web): The @omnidim-ai/client package. Put a live voice conversation with your agent on any page with the WebSession class. - MCP - [Overview](/docs/mcp): Connect Claude, ChatGPT, Cursor, and any MCP-compatible client to your OmniDimension account. Hosted OAuth at mcp.omnidim.io, or local stdio via the npm package. - **Connect via cloud** - [Overview](/docs/mcp/connect): One connector for every MCP client. Add OmniDimension as a custom server in Claude Desktop, Claude Code, Cursor, VS Code, Windsurf, or Codex. Browser sign-in on the first call. - [Claude Code](/docs/mcp/connect/claude-code): Connect OmniDimension to Claude Code in one terminal command. OAuth sign-in via the browser, then use OmniDimension tools from any Claude Code session. - [Claude Desktop](/docs/mcp/connect/claude-desktop): Add OmniDimension as a custom connector in Claude Desktop or Claude.ai web. Paste one URL, sign in, and Claude can drive your voice agents directly. - [Cursor](/docs/mcp/connect/cursor): Add OmniDimension to Cursor by editing ~/.cursor/mcp.json. OAuth sign-in on first tool call, no API key handling. - [VS Code](/docs/mcp/connect/vscode): Add OmniDimension to VS Code via user settings. HTTP MCP transport, OAuth sign-in handled in the browser. - [Windsurf](/docs/mcp/connect/windsurf): Add OmniDimension to Windsurf via ~/.codeium/windsurf/mcp_config.json. OAuth sign-in in the browser, no API key handling. - [Codex](/docs/mcp/connect/codex): Connect OmniDimension to Codex in one terminal command. OAuth sign-in via the browser, shared config across the Codex CLI, IDE extension, and the ChatGPT desktop app. - **Local server** - [Local MCP server](/docs/mcp/local-server): Run the OmniDimension MCP server locally as a stdio child process. Distributed as @omnidim-ai/mcp-server on npm. One command auto-configures every detected MCP client. - **Reference** - [Privacy and telemetry](/docs/mcp/privacy): What data the MCP servers see, what we log, what we never store. Covers both the hosted cloud server at mcp.omnidim.io and the local npm package.