Choose your client, then follow its setup steps. The same connector works with the clients below; their sign-in steps and capabilities can differ.
Before you connect
The connector itself needs no API key. A brand-new account is confirmed once at signup (18 or older, Terms and Privacy accepted). Sign in from your client when it asks; never paste an API key or password into a conversation.
The full authenticated connector is https://sleeperhit.studio/mcp. ChatGPT uses the restricted https://sleeperhit.studio/mcp/chatgpt profile. Each client section below states what it can reach.
These are production URLs. Stage members can use https://stage.sleeperhit.studio/mcp where the full connector is supported. The connector page on the app host has the same client setup.
Claude
The full authenticated connector.
Where it runs: claude.ai on web, Desktop, and mobile; Claude Code in the terminal.
Add the connector
- In Claude on web or Desktop, open Customize → Connectors and choose Add custom connector.
- Paste the connector URL. Leave the OAuth client choice on "Register automatically": Sleeper Hit Studio registers the client dynamically. Sign in, then authorize.
https://sleeperhit.studio/mcp
- On Team or Enterprise plans an owner adds it first under Organization settings → Connectors (Add → Custom → Web); members then connect it from Customize → Connectors.
- In Claude Code, add the server:
claude mcp add --transport http sleeperhit https://sleeperhit.studio/mcp
- Then run /mcp in a session, choose sleeperhit, and pick Authenticate.
Signing in
One browser sign-in covers both surfaces: the custom connector and Claude Code each finish with the Sleeper Hit Studio sign-in page. Connected means the tools list loads in the connector.
Good to know
- A curated text-development profile exists for the Anthropic directory listing (see the Claude connector directory page); the picker above is the full connector, which is what a member connection uses.
- Free-plan Claude allows one custom connector.
What to ask for
- "Show me my Sleeper Hit projects and what each one needs next."
- "Create a Sleeper Hit project from this logline and build the Series Bible."
- "Read the coverage on my Series Bible and give me the three notes that matter most."
- "Draft Act 1 of episode 1 from the approved outline."
- "How many Studio Credits do I have?"
Studio Credits and prices
- Writing, coverage and conversation do not use Studio Credits. Table reads, cast pictures and voices, and deck, trailer and video renders do.
- Anything that uses credits is priced first: Claude shows the price and what your balance would be, and the work starts only after you say go.
- Claude never buys credits; top up on sleeperhit.studio. And nothing that deletes, replaces saved work, publishes or spends credits happens without asking you first.
What Claude can see
- Claude receives only what a tool returns: a project, a Bible section, a page, a coverage report. It never sees your password.
- Sleeper Hit Studio receives only what Claude sends in a tool call. It never reads your conversation with Claude.
- The connection renews hourly while you use it, and ends after a week without use, when you disconnect, or when you change your password or sign out everywhere — the whole grant chain is cut, not just the current token.
Disconnect
- Disconnect under Dashboard → API, in the Connected apps list, next to Claude. Reconnecting starts fresh; it is also the fix when a connector was approved with too little or too much access.
Troubleshooting
- The sign-in window does not open, or Claude says the connector is not authorized: connect again from the connector settings. In Claude Code, run /mcp and choose Authenticate.
- The tools do not appear after you connect: start a new conversation, or toggle the connector in the tools menu. Claude reads the tool list when a conversation starts.
- Every request is refused as not allowed: the connector was approved with less access than the request needs. Disconnect it under Connected apps, connect again, and approve the access it asks for.
- A tool says the project has to finish a stage first: that is the project's own workflow gate, not a connection fault. Finish the named stage (in Claude or on sleeperhit.studio), then ask again.
- A price comes back with "not enough credits": top up on sleeperhit.studio, then ask Claude to price it again.
- Something else went wrong: write to help@sleeperhit.studio with the time, the request and the message you saw.
Sources for these steps
- https://claude.com/docs/connectors/custom/add-unlisted
- https://claude.com/docs/connectors/building
- https://code.claude.com/docs/en/mcp
ChatGPT
The restricted ChatGPT profile: story development, drafting, and coverage tools — no media generation, publishing, or spend.
Where it runs: ChatGPT on web (developer mode / custom apps); desktop and mobile are not supported for custom connectors today.
Add the connector
- In ChatGPT on web, open the plugins/connector screen (chatgpt.com/plugins) and choose Add custom MCP server.
- Point it at the ChatGPT profile of the connector, choose OAuth as the auth, and let the sign-in finish in the browser before saving.
https://sleeperhit.studio/mcp/chatgpt https://sleeperhit.studio/mcp
- Where the workspace uses developer mode / custom apps instead, create a custom app on the same URL, run Scan Tools so the catalog loads, and ask an admin to publish it (only Admins and Owners can publish).
Signing in
The first call opens the Sleeper Hit Studio sign-in. ChatGPT keeps a long-lived token: revoke it any time from Profile → connected apps, and in the Sleeper Hit Studio account under connected applications.
Good to know
- Web only for custom connectors; mobile and desktop apps do not add custom connectors today.
- On Pro plans ChatGPT connectors fetch and read only; write actions need a workspace plan (Business, Team, Enterprise, or Edu), where an admin enables custom connectors.
- The restricted profile is the intended path: fewer tools, clearer behavior. The full connector at /mcp also works but is not what ChatGPT was scoped for.
Sources for these steps
Codex CLI
The full authenticated connector.
Where it runs: Codex CLI on macOS, Linux, and Windows.
If you're an agent reading this
You can't finish this sign-in from inside a chat or a sandboxed shell: the browser can't reach your sandbox's callback. Ask your user to sign in from their app; don't run the login yourself, and don't retry it. They run codex mcp login sleeperhit in their own terminal, outside the agent sandbox, approve in the browser, then start a new Codex session so the tools load. Never ask them to paste an API key into the chat.
Add the connector
- Add the server, then sign in. The first command opens Sleeper Hit in your browser. Sign in with Google or email, approve, then choose Return to Codex. Once you have approved Codex, signing in again skips the approval.
codex mcp add sleeperhit --url https://sleeperhit.studio/mcp codex mcp login sleeperhit
- Working in a container, a VM, or anywhere a browser cannot hand its loopback callback back to the CLI? Add --no-browser, open the printed URL yourself, approve, then copy the link the approval page shows and paste it into Codex.
codex mcp login sleeperhit --no-browser
- Running Codex in a sandbox that cannot take a browser sign-in at all? Create an API key in Dashboard → Developers, export it, and add the server with the key as its bearer token. No browser is involved.
export SLEEPERHIT_API_KEY=sh_... codex mcp add sleeperhit --url https://sleeperhit.studio/mcp --bearer-token-env-var SLEEPERHIT_API_KEY
- Or set it directly in the Codex config file — same URL, no commands:
~/.codex/config.toml:
[mcp_servers.sleeperhit] url = "https://sleeperhit.studio/mcp"
Signing in
The first call (or codex mcp login) opens the Sleeper Hit Studio sign-in in your browser; the authorization page lists exactly what the connector may do. After you approve, codex mcp list shows the server connected. Then start a new Codex session: Codex loads a server's tools when a session starts, so the session you signed in from may not see them.
Good to know
- Authorization uses the OAuth 2.1 browser flow (PKCE S256 + dynamic client registration); no API key to paste.
- If a shell cannot open a browser at all,
--no-browserprints the authorization URL and accepts the callback URL by hand.
Sources for these steps
- https://developers.openai.com/codex/mcp
- codex-cli 0.159.0
codex mcp add --help/codex mcp login --help, and the live add + login-draft against https://sleeperhit.studio/mcp (sign-in not completed), 2026-10-10
Cursor
The full authenticated connector.
Where it runs: Cursor editor (project or global MCP config); cursor-agent CLI reads the same files.
Add the connector
- Add a server entry to .cursor/mcp.json in the project (or ~/.cursor/mcp.json for every project). A remote server needs only
url; the transport is inferred.
.cursor/mcp.json:
{ "mcpServers": { "sleeper-hit-studio": { "url": "https://sleeperhit.studio/mcp" } } }
- Cursor offers to sign in when the server first challenges; approve the Sleeper Hit Studio authorization in the browser.
- In the cursor-agent terminal tool, after the same mcp.json entry, authenticate it with:
cursor-agent mcp login sleeper-hit-studio
Signing in
Dynamic client registration is the default path when no auth block is written, which is what Sleeper Hit Studio expects. The entry stays in mcp.json; sign-in is per session.
Good to know
- There is no
cursor-agent mcp addcommand — write the mcp.json entry, thencursor-agent mcp login. - If your Cursor build asks for a fixed OAuth client instead of registering one, its docs list the callback URLs that would need to be registered; the default registration path needs none.
Sources for these steps
- https://cursor.com/docs/context/mcp
- cursor-agent
--helpon 2026-10-10 (mcp login/list only, no add)
VS Code
The full authenticated connector, through GitHub Copilot agent mode.
Where it runs: VS Code with GitHub Copilot (agent mode), Desktop.
Add the connector
- Either run "MCP: Add Server" from the Command Palette (choose HTTP, paste the URL), or write the file yourself. A remote server is
"type": "http"plusurl:
Command Palette → MCP: Add Server → HTTP (HTTP or Server-Sent Events)
.vscode/mcp.json:
{ "servers": { "sleeperhit": { "type": "http", "url": "https://sleeperhit.studio/mcp" } } }
- In agent mode, open the MCP Servers section (or the MCP SERVERS view) and start the server; the first call opens the Sleeper Hit Studio sign-in.
Signing in
Copilot handles the OAuth flow in the browser and retries the call after you authorize. Servers show under MCP SERVERS in the Extensions view; "MCP: List Servers" manages them.
Good to know
- The file uses a top-level "servers" object — not the "mcpServers" key other editors use.
- Some builds document an explicit "oauth.clientId"; Sleeper Hit Studio registers clients dynamically, so start without one. If a build refuses a client without an explicit id, say so in #feedback — the connector answers with a standard 401 challenge first.
Sources for these steps
- https://code.visualstudio.com/docs/copilot/customization/mcp-servers
- https://code.visualstudio.com/docs/agents/reference/mcp-configuration
Windsurf
The full authenticated connector.
Where it runs: Windsurf editor.
Add the connector
- Open MCP settings and add the remote server by URL. The editor reads mcp_config.json; the remote key is
serverUrl(its docs also accepturl):
mcp_config.json:
{ "mcpServers": { "sleeper-hit-studio": { "serverUrl": "https://sleeperhit.studio/mcp" } } }
- Save, then hit refresh in the MCP menu; sign in to Sleeper Hit Studio when prompted.
Signing in
Sign-in opens the browser authorization. After it completes, reload the tool list (refresh in the MCP menu) so Cascade sees the connected server.
Good to know
- Config paths moved with the Cognition takeover: the in-editor "Open MCP config file" now opens the Cortex-managed file (~/.config/devin/mcp_config.json on macOS/Linux), while the editor still discovers ~/.codeium/windsurf/mcp_config.json. Check which one your build opens.
- Whether your Windsurf build registers the OAuth client dynamically or asks for a client id is not documented; try the plain
serverUrlentry first.
Sources for these steps
- https://docs.devin.ai/windsurf/plugins/cascade/mcp (Windsurf docs now served under the Devin/Cognition docs)
Gemini CLI
The full authenticated connector.
Where it runs: Gemini CLI in the terminal.
Add the connector
- Add the server with the http transport:
gemini mcp add --transport http sleeperhit https://sleeperhit.studio/mcp
- Or write it into .gemini/settings.json (project) or ~/.gemini/settings.json — a remote Streamable HTTP server is
httpUrl:
.gemini/settings.json:
{ "mcpServers": { "sleeperhit": { "httpUrl": "https://sleeperhit.studio/mcp" } } }
- Authorize with /mcp auth in a session (or
gemini mcpequivalents); check status withgemini mcp list.
Signing in
On a 401, Gemini CLI discovers the OAuth metadata, registers a client when the server supports it, and opens the browser. Tokens are kept in ~/.gemini/mcp-oauth-tokens.json.
Good to know
- Its OAuth callback is fixed to http://localhost:7777/oauth/callback, so sign-in fails in fully headless or remote-SSH setups (no way to paste a callback back).
- Model sign-in for Gemini Code Assist individual accounts changed in October 2026 (the suite moved to Antigravity). That is separate from the Sleeper Hit connector; if your build blocks all MCP use, check the Gemini CLI changelog first.
Sources for these steps
OpenCode
The full authenticated connector.
Where it runs: OpenCode in the terminal.
Add the connector
- Add the server to opencode.json (project) or ~/.config/opencode/opencode.json. A remote server is
type: "remote"; OpenCode handles the sign-in on its own:
opencode.json:
{ "$schema": "https://opencode.ai/config.json", "mcp": { "sleeperhit": { "type": "remote", "url": "https://sleeperhit.studio/mcp" } } }
- Sign in. OpenCode asks the first time a tool is used; to sign in up front, run:
opencode mcp auth sleeperhit
- Running OpenCode where a browser sign-in cannot finish? Use an API key from Dashboard → Developers instead, and turn the sign-in off for this server:
opencode.json:
{ "$schema": "https://opencode.ai/config.json", "mcp": { "sleeperhit": { "type": "remote", "url": "https://sleeperhit.studio/mcp", "oauth": false, "headers": { "Authorization": "Bearer {env:SLEEPERHIT_API_KEY}" } } } }
Signing in
On a 401, OpenCode reads the server's OAuth metadata, registers itself, and opens the Sleeper Hit sign-in in your browser. Tokens are kept in ~/.local/share/opencode/mcp-auth.json.
Good to know
- The browser sign-in hands back to OpenCode on this computer; on a remote machine or in a container, use the API-key config instead.
Sources for these steps
Any other client
The full authenticated connector.
Where it runs: Any MCP client that speaks Streamable HTTP and OAuth 2.1.
Add the connector
- Point the client at the connector URL with the Streamable HTTP transport:
https://sleeperhit.studio/mcp
- Choose the OAuth sign-in. The server advertises its metadata and registers clients dynamically (DCR) with PKCE (S256), so there is normally nothing to pre-register; the first call opens the Sleeper Hit Studio sign-in.
Signing in
A machine-readable capability manifest, with every capability's auth requirement and scopes, lives at https://sleeperhit.studio/capabilities.json; the agent-facing index at https://sleeperhit.studio/agent-index.json lists every docs page and its sections.
Good to know
- A brand-new account — yours or the client's user's — is confirmed once at signup: 18 or older, and agreement to the Terms of Service and Privacy Policy, in the account's own browser. A client cannot accept that for its user, and it does not repeat at every sign-in.
- A local (stdio) variant of the connector will ship on npm as @sleeperhit/mcp-server — coming soon. Until then this remote connector is the way in.
Sources for these steps
- https://modelcontextprotocol.io (transport), and this repository's connector contract in packages/web/src/server/remote-mcp.ts