Connects Claude to Perspective AI's conversational form platform. You get 22 tools that let you design adaptive conversation agents (interviewer, concierge, evaluator, advocate types), analyze transcripts and trust scores, manage embed deployments, and wire up automations to Slack, HubSpot, or webhooks. The design flow is conversational: describe what you want to capture, refine with natural language, grab a preview link, then push live. Especially useful if you're replacing static forms with AI-driven qualification flows and want to iterate on conversation logic or route high-intent leads without leaving your editor. Authentication via OAuth or personal access token.
Public tool metadata for what this MCP can expose to an agent.
workspace_listLists every workspace the user can access, with workspace_id, uniqueName (slug), and display name. Behavior: - Read-only. Page size 20, sorted by name. Pass nextCursor back as cursor to fetch the next page. - Optional search matches against name, uniqueName (slug), member emai...2 paramsLists every workspace the user can access, with workspace_id, uniqueName (slug), and display name. Behavior: - Read-only. Page size 20, sorted by name. Pass nextCursor back as cursor to fetch the next page. - Optional search matches against name, uniqueName (slug), member emai...
cursorstringsearchstringworkspace_getReturns details for a single workspace by id or uniqueName (slug): name, plan, and member count. Behavior: - Read-only. - Errors when the workspace does not exist or you do not have access. - Accepts either workspace_id or uniqueName (slug). - Does NOT report whether this work...1 paramsReturns details for a single workspace by id or uniqueName (slug): name, plan, and member count. Behavior: - Read-only. - Errors when the workspace does not exist or you do not have access. - Accepts either workspace_id or uniqueName (slug). - Does NOT report whether this work...
workspace_idstringworkspace_get_defaultReturns the user's default workspace (id, uniqueName, name) so you can use it as the `workspace_id` argument for other tools without prompting. Behavior: - Read-only. Takes no parameters. - Picks the default by priority: explicit user default > first owned workspace with activ...Returns the user's default workspace (id, uniqueName, name) so you can use it as the `workspace_id` argument for other tools without prompting. Behavior: - Read-only. Takes no parameters. - Picks the default by priority: explicit user default > first owned workspace with activ...
No parameter schema in public metadata yet.
perspective_listLists perspectives — either browsing one workspace or searching by name/title across every workspace the user can access. Items include perspective_id, name, title, status, conversation count, and workspace info. Behavior: - Read-only. - Browse mode (workspace_id, no query): l...3 paramsLists perspectives — either browsing one workspace or searching by name/title across every workspace the user can access. Items include perspective_id, name, title, status, conversation count, and workspace info. Behavior: - Read-only. - Browse mode (workspace_id, no query): l...
querystringcursorstringworkspace_idstringperspective_getReturns the full configuration for one perspective: prompt/setup, outline, structured-output fields, status, basic stats, and the preview/share/direct URLs. Behavior: - Read-only. - Errors when the workspace or perspective is not found or you do not have access. - Stats here a...2 paramsReturns the full configuration for one perspective: prompt/setup, outline, structured-output fields, status, basic stats, and the preview/share/direct URLs. Behavior: - Read-only. - Errors when the workspace or perspective is not found or you do not have access. - Stats here a...
workspace_idstringperspective_idstringperspective_get_preview_linkReturns a shareable URL that opens the perspective in preview mode, so you (or a teammate) can have a sample conversation with it before deploying. Behavior: - Read-only. The same stable preview URL every time for a given perspective; the link does not expire. - Conversations...2 paramsReturns a shareable URL that opens the perspective in preview mode, so you (or a teammate) can have a sample conversation with it before deploying. Behavior: - Read-only. The same stable preview URL every time for a given perspective; the link does not expire. - Conversations...
workspace_idstringperspective_idstringperspective_get_statsReturns aggregate conversation counts and breakdowns for a perspective over a chosen window (7d, 30d, 90d, or all). Includes totals, completion rate, average duration, plus distributions by period, trust score band, and status. Behavior: - Read-only. - Errors when the perspect...3 paramsReturns aggregate conversation counts and breakdowns for a perspective over a chosen window (7d, 30d, 90d, or all). Includes totals, completion rate, average duration, plus distributions by period, trust score band, and status. Behavior: - Read-only. - Errors when the perspect...
periodstring7d · 30d · 90d · alldefault: 30dworkspace_idstringperspective_idstringperspective_get_embed_optionsReturns the deployment artifacts for a perspective: the share_url and direct_url for outreach plus ready-to-paste embed snippets (fullpage, widget, popup, slider, float, card) and an SDK reference (script URL, events, URL/brand/theme params, JS API methods, callbacks). Behavio...2 paramsReturns the deployment artifacts for a perspective: the share_url and direct_url for outreach plus ready-to-paste embed snippets (fullpage, widget, popup, slider, float, card) and an SDK reference (script URL, events, URL/brand/theme params, JS API methods, callbacks). Behavio...
workspace_idstringperspective_idstringperspective_list_conversationsLists conversations for a perspective, with optional filters by status, trust score range, and date range. Each item includes conversation_id, status, structured-output fields, trust score, and a transcript URL. Behavior: - Read-only. - Errors when the perspective is not found...8 paramsLists conversations for a perspective, with optional filters by status, trust score range, and date range. Each item includes conversation_id, status, structured-output fields, trust score, and a transcript URL. Behavior: - Read-only. - Errors when the perspective is not found...
cursorstringstatusstringcompleted · partial · abandoned · in_progressdate_tostringdate_fromstringworkspace_idstringperspective_idstringtrust_score_maxnumbertrust_score_minnumberperspective_get_conversationReturns the full record for a single conversation: rendered transcript, summary, trust assessment with per-dimension scores and recommendations, structured-output fields, voice-message snippet URLs, duration, and timestamps. Behavior: - Read-only. - Errors when the conversatio...2 paramsReturns the full record for a single conversation: rendered transcript, summary, trust assessment with per-dimension scores and recommendations, structured-output fields, voice-message snippet URLs, duration, and timestamps. Behavior: - Read-only. - Errors when the conversatio...
workspace_idstringconversation_idstringperspective_get_conversationsReturns a token-efficient batch of conversations for bulk analysis. Default output is summaries only (id, summary, trust_score, status, created_at) plus the perspective outline; opt in to full XML transcripts via include_transcripts=true. Default format is TOON (compact); JSON...10 paramsReturns a token-efficient batch of conversations for bulk analysis. Default output is summaries only (id, summary, trust_score, status, created_at) plus the perspective outline; opt in to full XML transcripts via include_transcripts=true. Default format is TOON (compact); JSON...
limitnumbercursorstringformatstringtoon · jsondefault: toonperiodstring7d · 30d · 90d · alldefault: 30dstatusstringcompleted · partial · abandoned · in_progressworkspace_idstringperspective_idstringtrust_score_maxnumbertrust_score_minnumberinclude_transcriptsbooleanperspective_createCreates a new perspective in DRAFT status from a natural-language description and starts the design agent. Returns immediately with a job_id and status "pending"; long-poll perspective_await_job with that job_id to receive the generated outline or follow-up question. Behavior:...3 paramsCreates a new perspective in DRAFT status from a natural-language description and starts the design agent. Returns immediately with a job_id and status "pending"; long-poll perspective_await_job with that job_id to receive the generated outline or follow-up question. Behavior:...
descriptionstringworkspace_idstringagent_contextstringresearch · form · survey · advocateperspective_respondSends the user's answer to a follow-up question raised by the design agent during perspective creation, then re-runs the design step. Returns a new pending job_id; long-poll perspective_await_job for the next terminal state. Behavior: - Appends the user's reply to the design c...3 paramsSends the user's answer to a follow-up question raised by the design agent during perspective creation, then re-runs the design step. Returns a new pending job_id; long-poll perspective_await_job for the next terminal state. Behavior: - Appends the user's reply to the design c...
responsestringworkspace_idstringperspective_idstringperspective_updateApplies natural-language feedback to an existing perspective's outline (e.g., "make it shorter", "add a budget question", "warmer tone"). Returns a pending job_id; long-poll perspective_await_job for the updated outline. Behavior: - Each call kicks off another design pass and...3 paramsApplies natural-language feedback to an existing perspective's outline (e.g., "make it shorter", "add a budget question", "warmer tone"). Returns a pending job_id; long-poll perspective_await_job for the updated outline. Behavior: - Each call kicks off another design pass and...
feedbackstringworkspace_idstringperspective_idstringperspective_await_jobLong-polls a perspective-design job (started by perspective_create, perspective_respond, or perspective_update) and returns either its terminal result or another "pending" envelope to keep polling. Behavior: - Read-only — observes a running design job. Safe to call repeatedly....3 paramsLong-polls a perspective-design job (started by perspective_create, perspective_respond, or perspective_update) and returns either its terminal result or another "pending" envelope to keep polling. Behavior: - Read-only — observes a running design job. Safe to call repeatedly....
job_idstringwait_msintegerprogress_cursorintegerautomation_listLists every automation configured on a perspective with its trigger, channel (sensitive details redacted), execution mode, enabled state, schedule description, and recent error/success metadata. Behavior: - Read-only. - Errors when the perspective is not found or you do not ha...2 paramsLists every automation configured on a perspective with its trigger, channel (sensitive details redacted), execution mode, enabled state, schedule description, and recent error/success metadata. Behavior: - Read-only. - Errors when the perspective is not found or you do not ha...
workspace_idstringperspective_idstringautomation_createCreates an automation on a perspective. Triggers: per_interview (fires on every completed conversation) or scheduled (daily/weekly digest). Channels: webhook, email, slack, hubspot. Execution modes: direct (fast, deterministic) or agent (LLM-powered). Behavior: - Each call cre...3 paramsCreates an automation on a perspective. Triggers: per_interview (fires on every completed conversation) or scheduled (daily/weekly digest). Channels: webhook, email, slack, hubspot. Execution modes: direct (fast, deterministic) or agent (LLM-powered). Behavior: - Each call cre...
automationobjectworkspace_idstringperspective_idstringautomation_updateUpdates fields on an existing automation. Pass a partial updates object with only the fields you want to change; omitted fields are preserved. Toggling enabled or changing schedule/channel/condition takes effect on the next scheduled run. Behavior: - Saves the change to the sa...4 paramsUpdates fields on an existing automation. Pass a partial updates object with only the fields you want to change; omitted fields are preserved. Toggling enabled or changing schedule/channel/condition takes effect on the next scheduled run. Behavior: - Saves the change to the sa...
updatesobjectworkspace_idstringautomation_idstringperspective_idstringautomation_deletePermanently deletes an automation. Pauses any scheduled sends first, then removes the automation. Behavior: - DESTRUCTIVE and irreversible — the automation cannot be recovered. No undo. Confirm with the user before calling. - Errors when the perspective or automation is not fo...3 paramsPermanently deletes an automation. Pauses any scheduled sends first, then removes the automation. Behavior: - DESTRUCTIVE and irreversible — the automation cannot be recovered. No undo. Confirm with the user before calling. - Errors when the perspective or automation is not fo...
workspace_idstringautomation_idstringperspective_idstringautomation_testRuns a single end-to-end execution of an existing automation against a mock conversation, returning success/failure plus the channel target and duration. Mirrors a real production firing. Behavior: - Sends REAL messages by default: posts the configured webhook, sends the confi...6 paramsRuns a single end-to-end execution of an existing automation against a mock conversation, returning success/failure plus the channel target and duration. Mirrors a real production firing. Behavior: - Sends REAL messages by default: posts the configured webhook, sends the confi...
test_dataobjectworkspace_idstringautomation_idstringoverride_emailstringperspective_idstringoverride_webhookstringintegration_manageRead-only inspector for workspace integrations. Operations: "list" enumerates the registered providers (currently slackbot, hubspot, gmail) and connection status; "connect" returns a setup URL the user opens in a browser to complete OAuth; "search_tools" returns the available...4 paramsRead-only inspector for workspace integrations. Operations: "list" enumerates the registered providers (currently slackbot, hubspot, gmail) and connection status; "connect" returns a setup URL the user opens in a browser to complete OAuth; "search_tools" returns the available...
querystringproviderstringslackbot · hubspot · gmailoperationstringlist · connect · search_toolsworkspace_idstringparticipant_inviteCreates participant invites for a perspective and returns 48-hour magic-link URLs, optionally sending invitation emails. Pass EITHER participants (creates new invites) OR invite_ids (reuses existing invites, minting a fresh 48h link) — never both. Behavior: - With participants...7 paramsCreates participant invites for a perspective and returns 48-hour magic-link URLs, optionally sending invitation emails. Pass EITHER participants (creates new invites) OR invite_ids (reuses existing invites, minting a fresh 48h link) — never both. Behavior: - With participants...
invite_idsarraysend_emailbooleanparticipantsarrayworkspace_idstringcustom_messagestringcustom_subjectstringperspective_idstring
Forms are costing you business. An AI concierge turns them into conversations.
MCP server for Perspective AI. An AI Concierge replaces static forms with adaptive AI conversations that understand real situations, structure key information automatically, and trigger the right next step.
Rigid forms cause drop-off, weaken qualification, and strip away context. Perspective uses adaptive AI to capture structured data and trigger automation, so you understand what truly matters to your customers and can make decisions with conviction.
Once connected, your AI assistant can design conversation agents, analyze conversations, deploy embeds, and automate follow-ups directly from Claude Desktop, Claude Code, Cursor, or any MCP-compatible client. Try prompts like:
Design a Concierge that qualifies pricing-page leads by budget and timeline.
Why are people abandoning my lead-capture concierge this week?
Whenever a conversation scores above 80 on trust, push it to HubSpot and ping #sales in Slack.
See Use cases for the full workflow and Available tools for the tool surface.
Add the MCP URL to your client and complete a one-time browser sign-in. Tokens stay out of config files; every connected app shows up under Settings → Connected Apps in your workspace, and you can revoke access anytime.
The MCP URL is the same for everyone:
https://getperspective.ai/mcp
claude mcp add --transport http perspective https://getperspective.ai/mcp
Add to your mcp.json:
{
"mcpServers": {
"perspective": {
"type": "http",
"url": "https://getperspective.ai/mcp"
}
}
}
Open the Add custom connector modal and fill:
| Field | Value |
|---|---|
| Name | Perspective AI |
| Remote MCP server URL | https://getperspective.ai/mcp |
Click Add, then complete the OAuth browser flow. (Manual path: Customize → Connectors → Add custom connector. See Anthropic's guide. Available on Free, Pro, Max, Team, and Enterprise plans.)
Stdio-only clients can use mcp-remote, which discovers OAuth metadata automatically:
{
"mcpServers": {
"perspective": {
"command": "npx",
"args": ["mcp-remote", "https://getperspective.ai/mcp"]
}
}
}
The first time you call a Perspective tool, your client opens a browser window to complete OAuth. Subsequent requests reuse the token.
If your client doesn't support OAuth or you'd rather authenticate with a long-lived token, generate one at Perspective AI Settings → MCP.

perspective.mcpbclaude mcp add perspective --transport http https://getperspective.ai/mcp --header "Authorization: Bearer YOUR_TOKEN"
Add to your mcp.json:
{
"mcpServers": {
"perspective": {
"type": "http",
"url": "https://getperspective.ai/mcp",
"headers": {
"Authorization": "Bearer YOUR_TOKEN"
}
}
}
}
For stdio-only clients, use mcp-remote with an explicit Authorization header:
{
"mcpServers": {
"perspective": {
"command": "npx",
"args": [
"mcp-remote",
"https://getperspective.ai/mcp",
"--header",
"Authorization: Bearer YOUR_TOKEN"
]
}
}
}
See the full MCP documentation for troubleshooting and advanced setup.
Once connected, your AI assistant can call the following 22 tools, grouped by lifecycle stage:
Workspaces
Design & iterate
Deploy & distribute
Analyze
Automate
Once installed, ask your AI assistant to drive the full perspective lifecycle: design, deploy, analyze, and automate.
Design & iterate. Create any of four conversation agent types:
Browse 180+ templates or use cases by role and industry for inspiration. Example prompts:
Deploy & distribute. Embed on your site or send personalized invites to specific participants:
Analyze: "Why are people abandoning my lead-capture concierge this week? Pull the drop-off conversations and summarize the top reasons."
Automate: "Whenever a conversation scores above 80 on trust, push it to HubSpot as a contact and ping #sales in Slack."
Authorization header to https://getperspective.ai/mcp..mcpb bundle is a thin stdio-to-HTTP proxy; it does not store or cache responses locally.npm install
npm run pack
Outputs perspective.mcpb in the current directory.
npm run release
Bumps version, commits, tags, and pushes. GitHub Action creates the release.