--- title: "Setup Host Guides" description: "Platform-specific guides for provisioning Voicetta via Claude MCP, Cursor MCP, ChatGPT Actions, and raw REST." publishedAt: "2026-07-15" modifiedAt: "2026-07-15" category: "LLM" tags: "Voicetta, MCP, Claude, Cursor, ChatGPT, REST, E2E" navOrder: "95" canonical: "https://voicetta.com/docs/setup-host-guides" --- # Setup Host Guides Use these guides to test and run Voicetta setup from your AI host. The canonical contract is the [Setup API playbook](/docs/agent-setup-playbook); each host is a thin adapter. ## Why it matters for your business - **Save money:** validate one flow once, reuse across Claude, Cursor, and ChatGPT. - **Work faster:** copy-paste configs per host instead of rediscovering endpoints. - **Standardize service:** every host follows the same consent → handoff sequence. - **Delight every Guest:** consistent handoff regardless of which AI tool they use. ## Prerequisites - Setup API base: `https://api.voicetta.com/v1/setup` - OpenAPI: https://voicetta.com/setup-openapi.json - Terminology: **Connection (UI) = Setup Tool (API)** --- ## Claude Desktop (MCP) Add to `~/Library/Application Support/Claude/claude_desktop_config.json`: ```json { "mcpServers": { "voicetta-setup": { "command": "npx", "args": ["-y", "@voicetta/setup-mcp"], "env": { "VOICETTA_SETUP_API_URL": "https://api.voicetta.com", "VOICETTA_SETUP_SESSION_ID": "ses_REPLACE", "VOICETTA_SETUP_ACCESS_TOKEN": "setup_REPLACE" } } } } ``` ### E2E scenario 1. Ask Claude: "Provision Voicetta for my hotel using voicetta_create_setup_session." 2. Open the returned `consent_url` in a browser and authorize. 3. Paste `session_id` and `setup_access_token` into MCP env (or ask Claude to continue via REST). 4. Run profile, assistant, knowledge, phone, tools, test, and handoff tools in order. 5. Verify handoff includes `login_url`, `voicetta_phone`, and `forwarding`. --- ## Cursor (MCP) Add to `.cursor/mcp.json` in the project or global Cursor MCP settings: ```json { "mcpServers": { "voicetta-setup": { "command": "npx", "args": ["-y", "@voicetta/setup-mcp"], "env": { "VOICETTA_SETUP_API_URL": "https://api.voicetta.com" } } } } ``` ### E2E scenario 1. Prompt: "Create a Voicetta setup session with partner_agent cursor." 2. Complete consent in browser when given `consent_url`. 3. Set `VOICETTA_SETUP_SESSION_ID` and `VOICETTA_SETUP_ACCESS_TOKEN` in MCP env. 4. Ask Cursor to list the tool catalog, select `guesty` and `sms`, enable each, then fetch handoff. 5. Confirm envelope `status` is `completed`. --- ## ChatGPT (GPT Actions / OpenAPI) Import https://voicetta.com/setup-openapi.json as a custom GPT Action. Set authentication to **Bearer** with the `setup_` token after human consent. ### E2E scenario 1. Upload or link the OpenAPI spec to a GPT. 2. Instruction: "Follow the Voicetta agent setup playbook. Start with POST /v1/setup/sessions." 3. When `human_required` appears, show the URL to the user and wait. 4. Continue with Bearer auth for remaining endpoints. 5. End with GET `/v1/setup/sessions/{id}/handoff`. --- ## Raw REST (curl) For agents without MCP or Actions — including custom or regional LLM hosts. ### Create session ```bash curl -sS -X POST "https://api.voicetta.com/v1/setup/sessions" \ -H "Content-Type: application/json" \ -H "X-Partner-Agent: custom" \ -d '{"partner_agent":"custom"}' ``` ### List tool catalog (no auth) ```bash curl -sS "https://api.voicetta.com/v1/setup/tools/catalog?category=PMS" ``` ### Authenticated steps ```bash export SETUP_TOKEN="setup_..." export SESSION_ID="ses_..." curl -sS "https://api.voicetta.com/v1/setup/sessions/${SESSION_ID}" \ -H "Authorization: Bearer ${SETUP_TOKEN}" curl -sS -X POST "https://api.voicetta.com/v1/setup/sessions/${SESSION_ID}/profile" \ -H "Authorization: Bearer ${SETUP_TOKEN}" \ -H "Content-Type: application/json" \ -d '{"profile":{"business_name":"Demo Hotel","industry":"Hospitality"}}' curl -sS "https://api.voicetta.com/v1/setup/sessions/${SESSION_ID}/handoff" \ -H "Authorization: Bearer ${SETUP_TOKEN}" ``` ### E2E checklist - [ ] `POST /sessions` returns `consent_url` - [ ] After consent, Bearer token works on `GET /sessions/{id}` - [ ] Profile, assistant, knowledge steps advance `status` - [ ] `GET /tools/catalog` lists `guesty`, `sms`, `calcom` - [ ] `POST /tools/select` and `/tools/{id}/enable` return envelope or `human_required` - [ ] `GET /handoff` returns login, phone, and next steps --- ## Automated route checks (CI) Backend pytest verifies Setup API routes are mounted and the public catalog responds: ```bash cd voicetta-backend-app poetry run pytest tests/test_setup_api_routes.py -q ``` --- ## Troubleshooting | Symptom | Fix | |---------|-----| | `401` on session steps | Missing or expired `setup_` Bearer token | | `400` state transition | Call steps in order; check `message_for_user_agent` | | MCP tool returns path error | Set `VOICETTA_SETUP_SESSION_ID` for `/sessions/current` mapping | | Tool enable returns `human_required` | Send human to the URL; poll session or webhook | ## Related pages - [Agent Setup Playbook](/docs/agent-setup-playbook) - [LLM and MCP Readiness](/docs/llm-and-mcp-readiness) - [Glossary](/docs/glossary)