Skip to content

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.

URLhttps://platform-api.viite.ai/api/mcp
TransportStreamable HTTP
AuthOAuth 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 registrationDynamic Client Registration — no client id or secret to paste
PKCES256
Scopesopenid profile email offline_access
RefreshEach refresh token works once: refreshing returns a new one and retires the old.

Registration only accepts a redirect URI the server trusts, and /authorize checks it again:

  • Hosted connectors — https on claude.ai, claude.com or chatgpt.com.
  • A native loopback callback — http:, host localhost, 127.0.0.1 or [::1], any port, a path of exactly /callback or /mcp/oauth/callback, and no query. For example http://127.0.0.1:53682/callback or http://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.

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.

Terminal window
pi mcp add viite --url https://platform-api.viite.ai/api/mcp --oauth-client-name "Pi"
pi mcp login viite

pi 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.

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:

Terminal window
claude mcp add --transport http viite https://platform-api.viite.ai/api/mcp

then /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.

A harness can connect when it has all of these:

  • a Streamable HTTP MCP client;
  • OAuth discovery from the 401 — it follows resource_metadata to 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_access scope, 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.

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.