Connect Business Studio to your MCP harness
The Claude connector and the ChatGPT connector are hosted: the assistant’s own servers sign in to Business Studio. A harness — a coding agent or MCP client that runs on your computer — connects to the same remote Model Context Protocol server. It gets the same tools, the same OAuth sign-in and the same per-account scoping. The difference is where the sign-in lands: a harness receives it on your own machine, through a loopback callback.
The server
Section titled “The server”| URL | https://platform-api.viite.ai/api/mcp |
| Transport | Streamable HTTP |
| Auth | OAuth 2.1. An unauthenticated request gets a 401 whose WWW-Authenticate header carries resource_metadata, pointing at /.well-known/oauth-protected-resource; the authorization-server metadata is on platform-api.viite.ai too. |
| Client registration | Dynamic Client Registration — no client id or secret to paste |
| PKCE | S256 |
| Scopes | openid profile email offline_access |
| Refresh | Each refresh token works once: refreshing returns a new one and retires the old. |
Redirect URIs
Section titled “Redirect URIs”Registration only accepts a redirect URI the server trusts, and /authorize checks it again:
- Hosted connectors —
httpsonclaude.ai,claude.comorchatgpt.com. - A native loopback callback —
http:, hostlocalhost,127.0.0.1or[::1], any port, a path of exactly/callbackor/mcp/oauth/callback, and no query. For examplehttp://127.0.0.1:53682/callbackorhttp://localhost:1456/mcp/oauth/callback.
Everything else is refused, at registration and at /authorize. That includes custom URI schemes
such as vscode:// or cursor://, on purpose: any app on your computer can claim a scheme, while
only a process you run can listen on your loopback port.
When a client registered nothing but loopback redirects, the consent screen says so — it warns you that the app signing in runs on your own computer. Approve only a sign-in you started.
What a harness can do
Section titled “What a harness can do”Fifteen tools, the same as the hosted connectors. The Claude connector guide describes each one.
- Board —
list_tasks,get_task,create_task,update_task,merge_cards - Posts —
list_destinations,create_post,upload_asset - Links and analytics —
create_tracked_link,get_funnel_report - CRM —
search_contacts,log_activity,link_records,state_fact - Memory —
remember
Nothing is published or archived without your approval on the board: a post moves to reviewed
only when you ask for it — see Publishing.
Tested end to end with Pi 1.x.
pi mcp add viite --url https://platform-api.viite.ai/api/mcp --oauth-client-name "Pi"pi mcp login viitepi mcp login opens your browser: sign in to Business Studio and choose Approve. Then
pi mcp list shows the server with 15 tools. Ask Pi something that calls one — “list my
in-progress cards” runs list_tasks.
Pi needs a model provider with credit to answer you at all. That is separate from the MCP connection: an error from your model provider says nothing about Business Studio.
Claude Code
Section titled “Claude Code”The verified path is the claude.ai connector: add Business Studio once in Claude (Connect it), and the connector follows your Claude account into Claude Code. There is nothing to add on the command line.
Adding the server to Claude Code directly also fits the redirect policy:
claude mcp add --transport http viite https://platform-api.viite.ai/api/mcpthen /mcp to sign in. Claude Code registers http://localhost:<port>/callback, which the server
accepts. This should work; it has not yet been run against production.
Cline v4.1.26 and later signs in through http://127.0.0.1:<port>/mcp/oauth/callback on a port from
1456 to 1461, and the server accepts that redirect. Supported by the server; the end-to-end test
is pending.
Other harnesses
Section titled “Other harnesses”A harness can connect when it has all of these:
- a Streamable HTTP MCP client;
- OAuth discovery from the
401— it followsresource_metadatato the protected-resource and authorization-server metadata; - Dynamic Client Registration;
- PKCE with
S256; - a loopback redirect on
/callback(or/mcp/oauth/callback), with no query string; - the
offline_accessscope, so it gets a refresh token and keeps the session without signing you in again.
Not supported today: Continue and Google ADK.
Building a harness that misses one of these? Tell us through Contact us in the Business Studio dashboard.
Troubleshooting
Section titled “Troubleshooting”invalid_redirect_uri at registration or sign-in. The harness asked for a redirect the server
does not accept. Check the path — exactly /callback or /mcp/oauth/callback, nothing after it,
no query string — and the scheme: http on loopback, never a custom scheme like vscode://.
invalid_grant when refreshing. Refresh tokens rotate: each one works once. A harness that
replays an old token, or lost the new one (say, it crashed mid-refresh), gets invalid_grant. Sign
in again — pi mcp login viite in Pi.
Errors about credit, quota or an API key. These come from the harness’s model provider, not
from Business Studio. The MCP connection is independent of it; pi mcp list (or your harness’s
equivalent) still shows the tools.
