
Your agent needs to work with Perspective AI: spin up conversation agents from a brief, read what participants actually said, and push findings into the rest of your stack. You open the developer docs expecting the familiar split, where the REST API is the full surface and MCP is the convenient subset. Perspective is built the other way around. The Perspective AI MCP server is the broadest programmatic interface, the REST API is deliberately narrow, and each has its own auth rules. Here's what each path covers, what each costs in production, and how to run either one for many users at once.
Perspective's developer docs split the surface four ways: the MCP server for the broadest automation, REST for narrow backend workflows, webhooks for event delivery, and the Embed SDK for the participant-facing experience. In Perspective's vocabulary, a perspective is a single conversation agent, whether in draft or live.
Perspective hosts and maintains a remote MCP server over streamable HTTP. It lives at a single /mcp endpoint on Perspective's domain, and the URL is the same for every customer. Its tools cover workspaces, the Agent Library, perspective design, deployment, status and insights, results, conversation analysis, transcript import, participants, automations, integrations, and Slack channels: 35 tools in Scalekit's connector reference. Clients authenticate with OAuth, which Perspective recommends, or with a workspace-scoped MCP key sent as a bearer token. The official reference is the "Use the Perspective AI MCP" page in Perspective's developer docs.
The REST API lives under /api/v1/ and has two endpoints. POST /api/v1/perspective/create creates a perspective and runs the design agent during the request; it requires an MCP key. GET /api/v1/embed/config/:researchId is public and unauthenticated, and exists so the Embed SDK can load theme and welcome settings. Around those sit outbound webhooks for conversation events and the Embed SDK for rendering conversations in your product. Perspective's "API Overview" page states that listing perspectives, reading conversations, inviting participants, and managing automations belong on MCP. Jigsaw's content-moderation Perspective API is an unrelated product.
Four dimensions decide this for a production agent: what it can do, how it authenticates, what you operate, and when each path wins. On Perspective, the first dimension is lopsided and the second is where teams get surprised.
Tool names are Perspective's native names; inside Scalekit they carry a perspectiveaimcp_ prefix.
The REST gap is structural. The create endpoint can return a needs_input status with a followUpQuestion, and no REST endpoint accepts the answer; perspective_respond exists only on MCP. Transcripts, summaries, and analysis never come back over REST, and webhooks carry each conversation's structured output and metadata, not transcripts. Any agent that reasons over results is an MCP agent. The MCP gaps are narrower and mostly involve a person. Webhook automations are created disabled, with a configure_url where someone enters the endpoint and auth header, because Perspective keeps those secrets out of the chat. integration_manage returns setup links instead of connecting Slack or HubSpot itself. A fully headless provisioning flow stalls at both steps.
OAuth is Perspective's recommended MCP path: one browser sign-in, after which the client manages the connection. Scalekit's connector reference lists it as OAuth 2.1 with Dynamic Client Registration (DCR). Since June 2026, users pick which workspaces an assistant can reach when they approve it, and every connected app appears under Connected Apps in Perspective's settings, revocable at any time. The catch is the audience. OAuth access tokens are bound to /mcp, so the REST create endpoint rejects them and accepts only MCP keys, while still checking on every request that the key's user can reach the workspaceSlug in the body. Webhooks run the other direction: Perspective authenticates to you with a static header you configure.
MCP keys let a job with no browser call Perspective's MCP server. A key is created in the Perspective UI, scoped to the workspaces you pick, and shown once; rotating it means deleting it and creating a replacement. It also reaches its workspaces only while its creator remains a member. Here's the failure that shows up months in. A nightly digest job calls MCP with a key the product manager created during setup. She moves teams, gets removed from the workspace, and every tool call starts returning access errors. The REST create endpoint would answer 404, workspace not found or no access, rather than 401. The key is still valid. Its owner's membership isn't.
Perspective owns tool schemas, argument validation, and workspace access checks. Four behaviors from the tool descriptions land on you. Long-running work is async: design, deep exploration, and transcript import return a job_id, and perspective_await_job blocks for at most 45 seconds per call, so your loop re-polls with the returned progress_cursor. Creates aren't idempotent: perspective_create, automation_create, and participant_invite write a new record on every call, so a blind retry duplicates work. automation_test sends real messages and, for insight automations, consumes analysis credits. And the credential, OAuth token or MCP key, is yours to store, refresh, and revoke.
Everything the MCP server would have handled. You construct requests, map 400, 401, 404, and 500 responses, and retry 500 errors after a short delay. You run a webhook receiver that verifies the auth header you configured, acknowledges with a 2xx inside the 30-second timeout, and deduplicates on X-Idempotency-Key when Perspective sends one, since retries reuse the key and bodies aren't signed. Perspective treats any 4xx from your endpoint as permanent, so a bad deploy that returns 401 loses those deliveries instead of queueing them for retry.
Perspective's MCP surface is unversioned and moving quickly. The changelog shows conversation analysis tools arriving on July 13, 2026, transcript import on August 28, and Agent Library tools on September 4, alongside an August 17 fix after stricter clients rejected an older tool-schema format. That pace is good for capability and bad for determinism: a tool list that changes mid-quarter changes what your model sees. Pin what the agent can call. An explicit allowlist in a Scalekit Virtual MCP server keeps new tools out of context until you add them, and Anthropic's mcp-client-2026-09-15 beta header can pin a server's tool list within a conversation. The REST reference, versioned under /api/v1/, was last updated in May 2026.
Both paths require per-user credential isolation in a multi-tenant B2B agent. MCP's OAuth flow gives you a token per user; the REST endpoint gives you a key per user. In neither case does the path solve storage, rotation, or revocation. The numbers compound fast: 200 customer organizations with three connected users each is 600 credentials, each with its own lifecycle. An OAuth grant can be revoked from Perspective's Connected Apps screen at any moment, and your agent finds out from a failed tool call. An MCP key is long-lived, rotates only when someone deletes and recreates it in the UI, and works for whoever holds it across every workspace in its scope.
Neither path gives you encrypted, tenant-isolated storage, refresh before expiry, a revocation signal, or an audit trail that ties each tool call to the user who authorized it. For Perspective, the MCP path is the one worth scaling, because it carries the whole surface. Scalekit's Perspective AI MCP connector runs the OAuth 2.1 flow with DCR, stores each user's tokens, and refreshes them, so Perspective credentials never touch your agent runtime. The one REST call that needs an MCP key stays yours to manage, and perspective_create covers the same job over MCP. Scope stays a function of identity: what the user can't do in Perspective, the agent can't do.
Recommended reading: When an Employee Leaves, Who Revokes Their AI Agent's Access?
Scalekit ships one Perspective connector, perspectiveaimcp, which routes tool calls to Perspective's own MCP server. There's no separate REST connector; the REST surface is one keyed endpoint that the MCP tools already cover. The examples use Python and the Anthropic SDK, because Scalekit's Node SDK can't mint Virtual MCP session tokens yet, and one language keeps both integration modes comparable.
Create a Perspective AI MCP connection in the Scalekit dashboard under AgentKit, then Connections. Copy SCALEKIT_ENVIRONMENT_URL, SCALEKIT_CLIENT_ID, and SCALEKIT_CLIENT_SECRET from Developers, then API Credentials, into your .env file, along with ANTHROPIC_API_KEY. Every connection_name in code must match the connection name in the dashboard exactly; a mismatch is the most common integration error. The Perspective AI MCP connector docs list all 35 tools with their parameters.
Scalekit keys every credential to your own user identifier. The first time a user connects, send them the authorization link: they sign in to Perspective once and approve the workspaces your agent may reach. The connected account then stays ACTIVE until the grant stops working, for example when the user revokes it in Perspective.
This call doesn't load a connector catalog. list_scoped_tools returns tools bound to this user's connected account, filtered here to seven read-only research tools. On Perspective the difference is large. Scalekit's reference describes the 35 tools in about 9,200 words, roughly 260 per tool, because each description carries behavior notes and when-not-to-use guidance. Sending all 35 costs well over 10,000 tokens on every request before the agent does any work. The seven below account for about 1,400 words, a cut of roughly 85%. The fix is not better prompting. It is surface reduction.
Claude chooses from the scoped list, and execute_tool runs each call against Perspective with the user's stored credential. Upstream failures raise ScalekitToolException; returning them to the model as is_error results lets it recover, for example by listing perspectives when a name doesn't match. A ScalekitToolUnauthorizedException means the grant itself failed, so the loop stops and sends the user back to Step 1. The pattern follows Scalekit's Anthropic framework guide.
The SDK loop suits agents where your code owns orchestration. MCP-native frameworks want an endpoint instead, and connecting one straight to Perspective's server exposes all 35 tools and leaves per-user token handling to you. A Scalekit Virtual MCP server fixes both halves. You declare once, per agent role, which connections and which tools it exposes. Before each run, you mint a short-lived session token bound to one user's connected accounts. One server definition serves every tenant, no credentials are shared between users, and there is no MCP server to deploy or host. The endpoint is static; the identity is not.
This research-to-roadmap agent reads Perspective insights and files Linear issues for themes that have none. Linear isn't among Perspective's workspace integrations, which currently cover Slack, HubSpot, Gmail, Google Docs, Notion, Confluence, Salesforce, and Prodege. Perspective contributes five read-only tools and Linear contributes three, with linear_issue_create as the only write. The Linear connector docs list its other tools.
Confirm the user's Perspective and Linear accounts are both active, then mint a token for this run only. The default lifetime is about an hour and the ceiling is 24 hours, so set expiry just above the expected run time. There's no refresh call; you mint again. The Virtual MCP setup guide covers updating and deleting servers.
Anthropic's MCP connector calls the Virtual MCP server from Anthropic's side, so there's no tool loop in your code. It's a beta feature and isn't eligible for Zero Data Retention. Weigh one tradeoff: tool calls run with no checkpoint in your code, so linear_issue_create executes the moment the model decides. If a person must approve writes, use the Step 3 loop, where your code sees every tool_use block before execute_tool runs. CrewAI, Mastra, and Claude Code can connect to the same URL with the session token as an Authorization: Bearer header.
Recommended reading: What Is a Virtual MCP Server? Scoped Tools and Per-User Auth
The same multi-connector shape runs through Scalekit's agent templates. The CSAT agent template emails surveys from Gmail and logs responses to Freshdesk tickets, and the performance review collector template gathers feedback from Airtable and Google Forms into Notion. Both are collection pipelines where a Perspective Evaluator or Concierge agent could replace the static survey or form. The CRM AI agent template shows the downstream half: conversation output becoming HubSpot record updates.
Once agents act for many users, the question stops being whether a call worked and becomes whose credential made it. Every execute_tool call returns an execution_id, and tool failures raise ScalekitToolException with tool_error_code, tool_error_message, and the same execution_id for correlation. In the Scalekit dashboard, AgentKit, then Connected Accounts, shows each user's account status, refresh history, and tool execution logs. When a Perspective grant is revoked or a refresh fails, the account leaves ACTIVE, and the connected_account.status_updated and connected_account.token_refresh_failed webhooks push that change to your system without polling.
Three questions that come up in security reviews become answerable: which user's credential performed a given Perspective write, when that credential last refreshed, and what status the account held when the agent acted. That's also the revocation signal neither native path provides. A user who removes your app under Perspective's Connected Apps otherwise surfaces only as tool errors; here it arrives as a status transition you can route to a re-authorization prompt.
Recommended reading: Audit Trails for Agent Auth in B2B SaaS
If your agent reads Perspective data, designs conversation agents, or works across tools, build on MCP; on Perspective there's no REST alternative for any of that. If your workflow reacts to finished conversations, add webhooks for the events and keep the model out of that path. Reserve the REST create endpoint for a synchronous provisioning step that can live with an MCP key. A production Perspective agent usually needs both: MCP for reasoning over research and webhooks for event-driven sync. Either way, every user brings a Perspective credential, and the tool surface keeps growing. Scoped tools, per-user tokens, and a log of every call are what make that safe for more than one customer.
Building a Perspective AI agent and want help with the auth model, tool scoping, or a multi-tenant rollout? Talk to us for immediate help. To start on your own, the Perspective AI MCP connector docs cover setup and every tool, the Scalekit connector catalog covers the other apps your agent will touch, and AgentKit pricing starts with a free tier of 5,000 tool calls a month and unlimited connected accounts.