https://mcp.plain.com/mcp, which signs in as that person with OAuth. Don’t ask the person for an API key: the MCP server needs none, and an API key belongs to a machine user, not to them.
Follow the steps in order. Steps 1 to 4 only read. In step 5, nothing in the workspace changes until the person agrees to it.
When the person has to choose, such as which labels to create or which Slack channels to connect, use your host’s question tool if it has one, such as AskUserQuestion in Claude Code. Otherwise ask in chat.
When you’ve handed the person something to do, such as signing up or approving Slack, and they say they’re done, check it with a tool if you can, then move straight on to the next step.
Related resources:
- MCP server reference: MCP server lists every tool and host-specific troubleshooting
- Docs index:
https://www.plain.com/docs/llms.txt - OAuth metadata:
https://mcp.plain.com/.well-known/oauth-protected-resource/mcp
1. Check for an existing connection
If Plain tools are already loaded in your session, callgetMyWorkspace. When it returns a workspace, tell the person its name and ID and ask whether it’s the workspace they want to set up. A connection is bound to one workspace, so it might be the wrong one. If it is the right one, go to step 4.
If no Plain tools are loaded, ask whether the person already has a Plain workspace. If they do, or they gave you a workspace ID (it starts with w_), go to step 3 and check after connecting that getMyWorkspace returns that workspace. Otherwise, or if getMyWorkspace fails with No workspace ID provided, start at step 2.
2. Have the person sign up and create a workspace
The person signs up themselves. You can’t create an account or a workspace for them. Send them this link and wait for them to say they’re done:- Sign up with Google or their work email
- Name their workspace when Plain asks
- Come back to you once the workspace exists
No workspace ID provided, and the person has to reconnect.
3. Connect the Plain MCP server
Add the server for the host you’re running in. Every host opens a browser window for the person to sign in to Plain and pick the workspace. The person must finish that sign-in themselves.Claude Code
Run this command, then ask the person to run/mcp, select plain, and choose Authenticate:
Codex
Run this command. Codex detects that the server uses OAuth and opens the browser sign-in:Cursor
Add the server to~/.cursor/mcp.json, or to .cursor/mcp.json in the project:
Claude and Claude desktop
You can’t add a connector from inside a chat. Ask the person to:- Go to Customize → Connectors
- Click +, then Add custom connector
- Name it
Plainand set the URL tohttps://mcp.plain.com/mcp - Click Connect next to the new connector and sign in
ChatGPT
Ask the person to:- Turn on Developer Mode in Settings → Apps → Advanced settings
- Click Create app, name it
Plain, and set the URL tohttps://mcp.plain.com/mcp - Set authentication to OAuth, click Create, and sign in
Other hosts
Any host that supports remote MCP servers over HTTP with OAuth works. Point it athttps://mcp.plain.com/mcp. If your host can’t connect to remote MCP servers, tell the person you can’t set up Plain from here and send them to Claude or ChatGPT with the steps above.
When the connection is up, call getMyWorkspace and confirm the workspace name with the person.
Find Plain’s apps
Some Plain tools open an app: an interactive Plain view inside the chat where the person reviews and edits what you set up. Hosts that render MCP Apps show the view. Other hosts get the same result as text.- Find them: search your Plain tools for ones whose description says they show the person a view, such as
suggestLabelsandshowWorkflow - Always use one when it exists: after you make a change, or to propose one, open the app for it so the person can check and change your work
- Don’t repeat the view: when an app shows the result, don’t list the same details again in chat
4. Read the setup checklist
CallworkspaceSetup. It returns the same onboarding checklist the person sees in the Plain app, with a steps list of key and isComplete. Also call getLabels, workflows and workspaceSlackChannelIntegrations so you know what already exists. Tell the person in a sentence what’s done and what’s left.
If workspaceSetup returns a not-yet-implemented error, the checklist isn’t available for this workspace. Work through step 5 from what the other reads returned, and treat each step’s status as unknown. Any other error goes to If something fails.
5. Walk the person through each step
Go through the steps that aren’t complete one at a time, in the order of the table below, which follows the onboarding in the Plain app. Two steps don’t go by the checklist: includeCONNECT_CHANNELS while connectedSlackChannels is empty, and always include SET_UP_WORKFLOWS. Leave out email and SET_UP_TIERS for now, even if the checklist lists them. Finish each step before you start the next, and don’t save steps for a list at the end:
- A step you can do with tools: tell the person exactly what you’ll create, wait for a yes, do it, then show the result
- A step the person does in the app: give them that step’s link, wait for them to say they’re done, check it with a tool if you can, then move on
- A step the person wants to skip: move on
Once the checklist steps are done, offer test threads:
createAllTestThreads fills the inbox with example conversations from test customers, so the person can practice replying.
If you change a workflow, watch for 2 traps:
- Unpublished by default:
createWorkflowcreates a draft, and the checklist only counts a published workflow. If the person doesn’t approve publishing withupdateWorkflow, report it as a draft. - Steps get replaced:
bulkUpsertWorkflowStepsdeletes every step you don’t pass it. Never run it on an existing workflow without the complete list of steps.
Links
Replaceworkspace_id_here with the ID from getMyWorkspace, which starts with w_. Never send a link with a placeholder in it.
If the workspace syncs its members from a directory, the invite page redirects to the members list. The person adds teammates in their identity provider instead.
6. Finish in the Plain app
When every step is done or skipped, give the person:- What you set up: a short list, grouped by checklist step
- What they skipped: each with its link, so they can come back to it
- Their workspace:
https://app.plain.com/workspace/workspace_id_here

