# Muse custom connector package

Copy the agent prompt from [Open Calls for Muse](https://opencalls.dev/integrations/muse) and paste it into a new Muse conversation. The [agent setup guide](https://opencalls.dev/connect/agent?client=muse) explains pairing, approval and secure credential storage. Finish setup by checking account access; calling is a separate approved action.

Import `/openapi.json` from the intended installation. The generated repository copy uses a relative server URL; configure the trusted origin explicitly when importing it. Full `/api/v1` paths are already in the document. Add [INSTRUCTIONS.md](INSTRUCTIONS.md), replacing `OPEN_CALLS_ORIGIN` with that origin. Neither artifact contains credentials.

1. Create a key in the owner's Connections page. Use `calls:read` for balance, quotes and results; add `calls:write` for approved calls and `calls:cancel` for requested cancellation. Store it in the client's secure credential store, never chat or connector instructions.
2. Alternatively, POST `/api/v1/pairings` with a label and scopes, show `approval_url`, and poll using the temporary `poll_token` at the returned interval. Polling returns status only, never an account key. The owner explicitly transfers approved credentials to the secure store. Refresh tokens rotate; persist the replacement pair atomically.
3. Verify `GET /api/v1/balance` without calling. Native REST has no `/workspace`, `/free-minute`, `/free-minute/claim` or call `/controls` route. The welcome flow remains on the website or supported MCP surface.
4. Quote, obtain approval, persist the exact body/key, then call. Show `maximumMicro / 1000000` in USD; there is no `maximumUsd` property. Poll until `audit.terminal`, reporting evidence and billing separately from call status.

The canonical OpenAPI includes contacts, tasks, preferences and incoming-assistant settings. Saving these objects does not authorize calls or prove number readiness. Resolve version conflicts by reading the current object. Calendar/messaging actions are reviewed separately on the website; this API package implies no mail/calendar permission.

October 18, 2026: For optional human joining, read the authenticated owner ID from `GET /api/v1/users/me` and pass it as `handoffUserId` in the quote and approved call. Leave recording off. The person completes the invitation and private callback acceptance on the website. Callback and recipient prompts support English, Hebrew, Spanish, French, German, Portuguese, Arabic and Italian. People speak directly after accepting the verified callback. The eight-language translation beta covers all 56 ordered pairs of different languages when enabled. It calls the starter first, explains in their language and asks spoken permission without a code. After approval, it calls the recipient, explains in their language and introduces both people. Setup uses the interpreter’s voice. The whole session, including setup and ringing, lasts at most ten minutes; an explicitly shorter approved limit still applies. Use `translate` only when the feature is currently enabled and the recipient/owner language pair is configured. MCP clients must check `get_workspace.capabilities.translation`, with `preferred_language` for the recipient and `userLanguage` for the owner’s spoken language (also the report language). REST clients pass `language` and `userLanguage` and require a successful current estimate for the same parameters. A quote does not approve an invitation or establish that anyone connected.
