Connect clients
Any MCP client that supports remote servers over HTTP can connect to Chatway. Point it at the Chatway MCP endpoint and complete the sign-in prompt — there is no client ID or secret to create, because Chatway registers your client automatically.
Server URL
https://mcp.chatway.app/mcp
Chatway recognises Claude, ChatGPT, Cursor, Codex, Gemini, Grok, VS Code, OpenCode, Manus, Muse, Devin, Cline, and Goose, and labels the connection with that name so you can tell your connections apart. Any other client is recorded as a custom integration.
Before you start
During sign-in you choose four things. It helps to know them in advance:
| Choice | Notes |
|---|---|
| Connection name | How this connection appears in Chatway. Use something like "Claude – support triage". |
| Widgets & channels | Which inboxes the assistant may touch. All are selected by default. |
| Permissions | What the assistant may read and do. Write permissions need owner or admin. |
| Reply as | The agent that replies and other write actions are attributed to. Defaults to you. |
You can change all four later without reconnecting. See Manage connections.
Where to add it
Most clients now have a UI for this, so you rarely need to edit a config file.
| Client | Add it here |
|---|---|
| Claude | Customize → Connectors → Add custom connector |
| Claude Code | claude mcp add --transport http |
| ChatGPT | Browse Plugins → "+" (Developer mode on; web only) |
| Codex | Settings → MCP servers → Add server |
| Gemini | ~/.gemini/settings.json · /mcp auth chatway |
| Cursor | Customize → MCPs |
| VS Code | Command Palette → MCP: Add Server |
| Grok | grok.com/connectors → New Connector → Custom |
| Devin | Settings → Cascade → Manage MCPs → Add Server |
| Cline | IDE extension: MCP Servers → Remote Servers · CLI: cline mcp install |
| Goose | Extensions → Add custom extension |
| Manus | Settings → MCP / Connectors |
| Muse | Settings → MCP Servers |
| OpenCode | opencode mcp add |
Claude
Works with claude.ai, Claude Desktop, Cowork, and the mobile apps.
Free, Pro, and Max plans
- Go to Customize → Connectors.
- Click +, then Add custom connector.
- Enter a name and paste the Chatway server URL.
- Click Add, then Connect and complete the Chatway sign-in flow.
Free plans are limited to one custom connector.
Team and Enterprise plans
Only an Owner can add the connector, and each member then connects individually so Claude only reaches inboxes that person can already access.
- An Owner goes to Organization settings → Connectors.
- Click Add, hover Custom, and choose Web.
- Paste the Chatway server URL and click Add.
- Each member then opens Settings → Connectors, finds the connector labelled Custom, and clicks Connect.
Leave the OAuth Client ID and Secret fields in Advanced settings empty — Chatway registers Claude automatically.
Claude reaches your MCP server from Anthropic's cloud, not from your computer. This is true even in Claude Desktop, so the server has to be reachable over the public internet.
Claude Code
One command in your terminal:
claude mcp add --transport http --scope user chatway "https://mcp.chatway.app/mcp"
--scope user makes Chatway available in every project. Leave it off and the server is only
added to the project you ran the command in, which is the most common reason it seems to vanish.
claude mcp list then shows ! Needs authentication. Start a session, run /mcp, select
chatway, and choose Authenticate. Your browser opens the Chatway sign-in. After you
approve, the status should be ✔ Connected.
Some CLI versions also accept claude mcp login chatway for the same browser flow.
ChatGPT
Custom MCP apps are set up on chatgpt.com (web only) — not in the mobile app. OpenAI documents them under Apps, with Developer mode required before you can create or use a custom MCP app.
Plan differences (per OpenAI)
| Plan | Custom MCP apps |
|---|---|
| Free | Not available |
| Plus / Pro | Developer mode available. Pro can connect custom MCP apps with read/fetch permissions. |
| Business, Enterprise, Edu | Full MCP including write/modify tools (admin-controlled). Workspace admins enable Developer mode, create and test apps, then publish them for the workspace. |
Exact labels move occasionally; if a path below does not match your account, look under Settings → Apps or Workspace settings → Apps.
1. Turn on Developer mode
- Open Settings → Apps (or Workspace settings → Apps on Business / Enterprise / Edu).
- Open Apps settings and turn Developer mode on.
Each admin or owner must enable Developer mode for themselves — the toggle does not apply to the whole workspace at once.
2. Create the app
- Go to the Browse Plugins page and click "+" to add a new plugin.
- Fill in:
| Field | Value |
|---|---|
| Name | Chatway |
| Description | Access your Chatway inbox and take actions |
| MCP Server URL | https://mcp.chatway.app/mcp |
| Authentication | OAuth |
- Leave Client ID and Client Secret empty — Chatway registers ChatGPT automatically.
- Complete the Chatway sign-in flow.
Created apps often appear under Drafts until you publish them for a workspace.
3. Use it in a chat
- Start a new conversation on the web.
- Open the + menu and choose Developer mode.
- Enable the Chatway app.
Ask something read-only first, such as "List my 5 most recent Chatway conversations." ChatGPT confirms write actions separately in the conversation, on top of Chatway's own confirmation for bulk and destructive tools.
Business, Enterprise, and Edu. A workspace admin must allow custom apps, create and test the app, then publish it from Workspace settings → Apps. Enterprise/Edu admins can further limit who gets Developer mode and which published apps each person can use. After you change permissions in Chatway, refresh the app so ChatGPT picks up the new tool list.
Codex
Codex shares one MCP configuration across the ChatGPT desktop app, the CLI, and the IDE extension. Add it once and it is available in all three.
Desktop app (recommended)
- Open Settings → MCP servers.
- Select Add server.
- Enter
chatwayas the name, choose Streamable HTTP, and paste the server URL. - Save, then select Restart.
- Click Authenticate on the
chatwayrow and complete sign-in.
Leave bearer token and header fields blank — Chatway uses OAuth. Type /mcp in the composer to
see connected servers.
IDE extension
Open the gear menu → MCP servers → Add server, enter the same details, then Restart extension. Click Authenticate if the row asks for it.
CLI
codex mcp add chatway --url "https://mcp.chatway.app/mcp"
codex mcp login chatway
Config file
For project-only access, edit .codex/config.toml in a trusted project (or ~/.codex/config.toml
for every project):
[mcp_servers.chatway]
url = "https://mcp.chatway.app/mcp"
Then run codex mcp login chatway. Do not set bearer_token_env_var or http_headers.
Gemini
The Gemini CLI connects to remote MCP servers over streamable HTTP and completes OAuth in your local browser. Dynamic client registration uses the display name Gemini CLI MCP Client; Chatway recognises that client as Gemini so reconnects update the same connection instead of creating duplicates.
- Edit
~/.gemini/settings.json(create the file if needed). - Add a
chatwayentry undermcpServerswithhttpUrlset to the Chatway server URL. - Start the CLI, connect to the server, or run
/mcp auth chatwaywhen prompted.
{
"mcpServers": {
"chatway": {
"httpUrl": "https://mcp.chatway.app/mcp"
}
}
}
OAuth requirements from Google:
- A local browser must open for sign-in.
- Redirects use loopback (
http://127.0.0.1orhttp://localhost, often with/oauth/callback). - Optional
redirectUriin server config pins the port if your environment needs it.
Tokens are stored in ~/.gemini/mcp-oauth-tokens.json. Re-run /mcp auth chatway if access
expires. See the Gemini CLI MCP server guide
for transport details and advanced OAuth options.
Cursor
UI
- Open Customize in the sidebar and click MCPs.
- Click Add Custom MCP (or New MCP Server).
- Add the Chatway entry below, save, and complete the browser sign-in.
You can also open Cursor Settings → Tools & MCP and click + Add Custom MCP — it writes
the same mcp.json file.
Config file
.cursor/mcp.json for one project, ~/.cursor/mcp.json for all of them:
{
"mcpServers": {
"chatway": {
"url": "https://mcp.chatway.app/mcp"
}
}
}
Cursor infers the transport from the presence of url, so no type field is needed. Leave out
headers and auth as well; Chatway uses dynamic registration, so the OAuth flow starts on its
own.
VS Code
Requires GitHub Copilot in Agent mode.
- Open the Command Palette (
Cmd/Ctrl + Shift + P) and run MCP: Add Server. - Choose HTTP (not stdio), then Workspace or Global.
- Paste the Chatway server URL and a name of
chatway. - Trust the server when VS Code asks, then complete Chatway sign-in.
Or edit mcp.json yourself — .vscode/mcp.json for the workspace, or MCP: Open User
Configuration for the global file:
{
"servers": {
"chatway": {
"type": "http",
"url": "https://mcp.chatway.app/mcp"
}
}
}
Two VS Code specifics matter here. The root key is servers, not mcpServers — a block
copied from Cursor is valid JSON and gets silently ignored. And "type": "http" is required;
without it VS Code treats the entry as a local process and fails. Run MCP: List Servers to
confirm Chatway loaded and see its tool count.
Grok
Custom connectors are available on Grok's paid tiers.
- Go to grok.com/connectors.
- Click New Connector, then select Custom.
- Enter
Chatwayas the name and paste the server URL. - Complete the Chatway sign-in flow.
Grok then discovers Chatway's tools and offers them in conversations alongside its built-in connectors.
On Business and Enterprise plans a team admin has to provision it first: sign in to console.x.ai, select your team, go to Grok Business → Connectors, click + Add Connector, choose Other, and enter the server URL.
Devin
- Open Devin Settings → Cascade → Manage MCPs.
- Click + Add Server, then View raw config to edit the JSON.
- Add the Chatway entry, save, and click Refresh.
{
"mcpServers": {
"chatway": {
"serverUrl": "https://mcp.chatway.app/mcp"
}
}
}
Devin uses serverUrl, not url, for remote servers. A config copied from Cursor parses
fine but leaves Devin with no endpoint, so the server appears to load and then shows zero
tools. The file lives at ~/.config/devin/mcp_config.json, and Devin only supports global configuration. Click Refresh after every
edit.
Cline
Cline runs as a standalone CLI and as an IDE extension (VS Code, JetBrains, and other
supported editors). The Remote Servers UI in the Cline panel is available only after you
install the extension in an IDE — it is not part of the terminal-only CLI. If you use Cline from
the command line, add Chatway with cline mcp install or cline mcp instead.
See the Cline MCP overview for the latest client details.
IDE extension (Remote Servers UI)
- Install the Cline extension in your editor and open the Cline panel.
- Click the MCP Servers icon.
- Open the Remote Servers tab.
- Enter
chatwayas the server name and paste the server URL. - Choose Streamable HTTP as the transport type.
- Click Add Server and complete Chatway sign-in when prompted.
You can also open Configure → Configure MCP Servers to edit the extension’s MCP JSON directly.
CLI (cline mcp install)
From a terminal (requires a TTY), pre-fill the server and open Cline’s add-server wizard. It still
prompts for auth (including OAuth) before saving to ~/.cline/mcp.json:
cline mcp install chatway --transport http https://mcp.chatway.app/mcp
cline mcp add is an alias for cline mcp install. For the full menu (list, edit, enable, delete
servers), run:
cline mcp
Choose Add server, pick Remote (HTTP), name it chatway, paste the Chatway URL, and
complete OAuth when asked. Non-interactive listing: cline config mcp.
Manual JSON
If you edit JSON instead of using the Remote Servers form, the type field is not optional.
CLI config lives at ~/.cline/mcp.json; the IDE extension uses its own MCP settings file opened
from Configure MCP Servers.
{
"mcpServers": {
"chatway": {
"type": "streamableHttp",
"url": "https://mcp.chatway.app/mcp",
"disabled": false
}
}
}
Omitting type makes Cline fall back to legacy SSE, which fails against Chatway with a 400
because it sends a GET where Chatway expects a POST.
Goose
Desktop
- Open Extensions → Add custom extension.
- Choose Remote (Streamable HTTP).
- Enter
chatwayas the name and the Chatway server URL as the endpoint. - Complete sign-in when prompted.
CLI
goose configure
Choose Add Extension → Remote Extension (Streamable HTTP), then enter chatway and the
Chatway URL.
To edit ~/.config/goose/config.yaml directly:
extensions:
chatway:
enabled: true
type: streamable_http
name: chatway
uri: https://mcp.chatway.app/mcp
timeout: 300
Goose differs from every other client on three counts: the top-level key is extensions, the
endpoint field is uri, and the transport is streamable_http with an underscore. Restart Goose
after editing the file.
OpenCode
The interactive command is the current way:
opencode mcp add
Choose a remote server, name it chatway, and paste the Chatway URL. Then authenticate:
opencode mcp auth chatway
opencode mcp list
Or write opencode.json yourself (project root, or ~/.config/opencode/opencode.json globally):
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"chatway": {
"type": "remote",
"url": "https://mcp.chatway.app/mcp",
"enabled": true
}
}
}
Leave oauth unset so OpenCode uses dynamic registration. Do not set oauth: false — that is
only for API-key servers.
Manus
- Open Manus and go to Settings → MCP / Connectors.
- Choose Add custom MCP server.
- Paste the Chatway server URL.
- Sign in to Chatway and select the widgets and channels to connect.
Muse
Works with Muse Code and other MCP-compatible Muse clients.
- Open your Muse settings and go to MCP Servers.
- Add a new remote MCP server (streamable HTTP).
- Enter Chatway as the server name.
- Paste the Chatway MCP connection URL:
https://mcp.chatway.app/mcp
- Save the configuration and start a new Muse session.
- When prompted, sign in to Chatway and authorize the widgets, channels, and permissions you want Muse to access.
CLI alternative. If the session reports that the server requires OAuth, run
muse mcp login chatway (use the server name you chose in settings). Muse registers the OAuth
client dynamically — leave Client ID and Client Secret empty in any advanced fields.
Official reference: MCP servers in Muse Code.
OAuth allowlist. Muse Code registers via dynamic client registration. Loopback callbacks
(http://127.0.0.1 / http://localhost) and the muse:// redirect scheme are on Chatway's MCP
OAuth allowlist — no manual client ID or secret.
Any other client
Most clients accept the standard remote server format:
{
"mcpServers": {
"chatway": {
"url": "https://mcp.chatway.app/mcp"
}
}
}
Look for a "remote MCP server" or "streamable HTTP" option, restart or reload the client if it asks, and complete Chatway's sign-in on first use. Chatway speaks streamable HTTP and supports OAuth 2.1 with PKCE and dynamic client registration, so no manual credentials are needed.
Completing authorization
The first request from a new client starts the OAuth flow in your browser:
- Sign in to Chatway, or continue with your existing session.
- Name the connection.
- Select the widgets and channels the assistant may access.
- Review the permissions, pick the agent replies are sent as, and authorize.
- You are returned to your client, which stores the token and reconnects silently from then on.
You must grant at least one read permission and select at least one widget or channel, otherwise the connection would have nothing to work with.
Verify the connection
Ask the assistant something read-only:
List my 5 most recent Chatway conversations.
If it answers with real conversations, you are connected. Owners and admins also see the connection in Chatway under AI → External AI.
Troubleshooting
Most failures are one of two things: the client never finished the OAuth flow, or the config uses a key name that client does not read.
| Symptom | Cause and fix |
|---|---|
| No Chatway tools appear at all | The OAuth flow did not finish, or the connection was disconnected. Inbox tools are only published once a live connection exists — reconnect the client. |
| Server loads but shows zero tools | Usually a wrong endpoint key. Devin needs serverUrl, Goose needs uri, everyone else uses url. |
| VS Code ignores the entry entirely | The root key must be servers, not mcpServers, and "type": "http" is required. |
Cline returns 400 |
Set "type": "streamableHttp". Without it Cline uses legacy SSE. |
ChatGPT shows only search / fetch |
Developer mode is off, or your plan only allows read/fetch MCP. Turn Developer mode on under Settings → Apps, and use Business / Enterprise / Edu for full write tools. |
| ChatGPT has no Create button | You are on the free plan, not on the web app, or a workspace admin has not allowed custom apps. |
| Claude Code can't find the server | It was added at project scope. Re-add it with --scope user. |
401 with a WWW-Authenticate header |
The token is missing, expired, or revoked. Reconnect the client. |
403 insufficient_scope |
The token lacks the mcp:use scope. Remove the server from your client and add it again. |
403 on one specific tool |
That permission was not granted, or your role does not allow it. See Permissions & access. |
| "Conversation not found for the authorized sources" | The conversation belongs to a widget or channel this connection cannot access. Add it under Manage access. |
405 |
The endpoint only accepts POST. Let your MCP client handle the transport rather than opening the URL in a browser. |
429 |
You hit the 120 requests per minute limit for this connection. Retry after a short delay. |
| Assistant asks to confirm an action | Expected for bulk and destructive actions. See Tool reference. |
| OpenCode never starts OAuth | Do not set oauth: false. Leave oauth unset and run opencode mcp auth chatway. |