https://app.etho.net/api/mcp. Copy it from Settings > MCP. Each connection uses one workspace and your permissions in that workspace.
OAuth lets you sign in to Olympus and choose a workspace without copying an API key. Clients that support bearer tokens can also use a personal API key.
Connect ChatGPT
- Open ChatGPT’s custom MCP connection setup in Developer Mode. Your ChatGPT plan and workspace administrator must permit custom connections.
- Enter
https://app.etho.net/api/mcpas the server URL and select OAuth. Olympus supports client metadata discovery; you do not need to enter a client secret. - Sign in to Olympus, choose an active workspace and allow the connection.
- Ask ChatGPT to list contacts in that workspace. Confirm that a tool runs and returns a result, even if the workspace has no contacts.
Connect Codex
Add the remote server:/mcp, and ask it to list contacts in your chosen workspace. The CLI, IDE extension and app share your Codex MCP configuration.
Personal API key fallback
For clients that support bearer tokens, create a key in Settings > API keys. Pick the workspace it should use. Copy the key before closing the dialog; Olympus stores only a hash and cannot show it again. Keep the key in your local credential or environment settings. For Codex, setOLYMPUS_API_KEY in the environment used to launch it, then configure a separate connection:
/mcp inside Claude Code to inspect the connection. Keep at most 10 active keys; revoke them from Settings > API keys. Older keys without a workspace binding need to be replaced.
Retry a failed connection
- Confirm the URL is exactly
https://app.etho.net/api/mcp. A marketing URL, old domain or redirect is not the MCP endpoint. - In ChatGPT, remove the failed connection and add it again with OAuth. Check that Developer Mode and custom connections are permitted for your account.
- In Codex, run
codex mcp login olympusagain and complete sign-in, MFA and workspace consent. Leave callback settings at their defaults unless you have configured a proxy deliberately. - If no workspace is available, check membership and whether the workspace is active. End impersonation before connecting.
- If a personal key fails, check its workspace and revocation status. A key does not use OAuth login.
Available tools
Read tools:olympus_connect_contacts_readandolympus_connect_contacts_read_activityolympus_connect_contacts_find_duplicatesolympus_connect_opportunities_read,olympus_connect_opportunities_read_activity, andolympus_connect_opportunities_read_configuration(pipelines and stages)olympus_connect_tasks_readolympus_integrations_close_sync_statusolympus_integrations_shopify_sync_status,olympus_integrations_shopify_products_read, andolympus_integrations_shopify_backfill_read
olympus_connect_contacts_createandolympus_connect_contacts_add_noteolympus_connect_tasks_create,olympus_connect_tasks_complete, andolympus_connect_tasks_rescheduleolympus_connect_opportunities_create,olympus_connect_opportunities_update, andolympus_connect_opportunities_transitionolympus_connect_opportunities_log_contact_attempt
Confirmations and ambiguity
Some operations are guarded. Moving an opportunity backward, or reopening one that was closed, does not apply on the first call. The tool returns a confirmation request, and the client must repeat the call with an explicitconflictResolution value before the change lands.
When a name matches more than one record (“add a note to Alex”), the tool returns the candidates instead of picking one. The client retries with the specific record id.
Limits
- List results are capped at 100 rows per call.
- Requests are rate-limited per key and per user. Throttled calls receive a retry-after hint.
- Oversized text arguments are rejected before anything runs.
- Retried writes do not double-apply. The client can pass a
requestId, and identical retries replay the original result.