perspective-ai avatar

Perspective AI

perspective-ai/mcp

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.

tools
22
transport
HTTP
last updated
Apr 28, 2026

Tools

22 tools

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 params

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

Parameters* required
cursorstring
Pagination cursor from previous response
searchstring
Case-insensitive match against name, uniqueName (slug), member emails, and website
workspace_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 params

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

Parameters* required
workspace_idstring
Workspace ID (from workspace_get_default or workspace_list)
workspace_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 params

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

Parameters* required
cursorstring
Pagination cursor from previous response
querystring
Search by name or title. Enables cross-workspace search.
workspace_idstring
Optional: workspace to list from. Required for browse mode, optional for search mode.
perspective_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 params

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

Parameters* required
perspective_idstring
Perspective ID (from perspective_list or perspective_create)
workspace_idstring
Workspace ID (from workspace_get_default or workspace_list) or workspace slug (uniqueName)
perspective_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 params

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

Parameters* required
perspective_idstring
Perspective ID (from perspective_list or perspective_create)
workspace_idstring
Workspace ID (from workspace_get_default or workspace_list) or workspace slug (uniqueName)
perspective_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 params

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

Parameters* required
periodstring
Time period: 7d, 30d, 90d, or allone of 7d · 30d · 90d · alldefault: 30d
perspective_idstring
Perspective ID (from perspective_list or perspective_create)
workspace_idstring
Workspace ID (from workspace_get_default or workspace_list) or workspace slug (uniqueName)
perspective_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 params

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

Parameters* required
perspective_idstring
Perspective ID (from perspective_list or perspective_create)
workspace_idstring
Workspace ID (from workspace_get_default or workspace_list) or workspace slug (uniqueName)
perspective_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 params

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

Parameters* required
cursorstring
Pagination cursor from previous response
date_fromstring
Filter from date (ISO 8601)
date_tostring
Filter to date (ISO 8601)
perspective_idstring
Perspective ID (from perspective_list or perspective_create)
statusstring
Filter by conversation statusone of completed · partial · abandoned · in_progress
trust_score_maxnumber
Maximum trust score (0-100)
trust_score_minnumber
Minimum trust score (0-100)
workspace_idstring
Workspace ID (from workspace_get_default or workspace_list) or workspace slug (uniqueName)
perspective_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 params

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

Parameters* required
conversation_idstring
Conversation ID (from perspective_list_conversations)
workspace_idstring
Workspace ID (from workspace_get_default or workspace_list) or workspace slug (uniqueName)
perspective_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 params

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

Parameters* required
cursorstring
Pagination cursor from previous response
formatstring
Output format: toon (default, token-efficient) or jsonone of toon · jsondefault: toon
include_transcriptsboolean
Include full conversation transcripts. Default false (summaries only) to reduce tokens. Set true only when you need message-level details.default: false
limitnumber
Number of conversations per batch (max 50)default: 10
periodstring
Time period filterone of 7d · 30d · 90d · alldefault: 30d
perspective_idstring
Perspective ID (from perspective_list or perspective_create)
statusstring
Filter by conversation statusone of completed · partial · abandoned · in_progress
trust_score_maxnumber
Maximum trust score (0-100)
trust_score_minnumber
Minimum trust score (0-100)
workspace_idstring
Workspace ID (from workspace_get_default or workspace_list) or workspace slug (uniqueName)
perspective_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 params

Creates 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:...

Parameters* required
agent_contextstring
Agent behavior mode: 'research' (deep exploratory conversations, default), 'form' (service-oriented with routing), 'survey' (structured with minimal deviation), 'advocate' (listen, then respond wit...one of research · form · survey · advocate
descriptionstring
Natural language description of research goals
workspace_idstring
Optional: workspace to create in. If not provided, uses the user's default workspace.
perspective_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 params

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

Parameters* required
perspective_idstring
Perspective ID (from perspective_create with status 'needs_input')
responsestring
User's response to the follow-up question
workspace_idstring
Workspace ID (from workspace_get_default or workspace_list) or workspace slug (uniqueName)
perspective_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 params

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

Parameters* required
feedbackstring
Natural language feedback: 'make it shorter', 'add budget question', etc.
perspective_idstring
Perspective ID (must have outline - status OUTLINE_DEFINED or later)
workspace_idstring
Workspace ID (from workspace_get_default or workspace_list) or workspace slug (uniqueName)
perspective_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 params

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

Parameters* required
job_idstring
Job ID returned by create/respond/update
progress_cursorinteger
Resume the progress stream at this chunk index. Use the value returned in the previous pending response to avoid duplicate progress notifications.
wait_msinteger
Long-poll duration in milliseconds (default 30000, max 45000)
automation_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 params

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

Parameters* required
perspective_idstring
Perspective ID
workspace_idstring
Workspace ID (from workspace_get_default or workspace_list) or workspace slug (uniqueName)
automation_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 params

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

Parameters* required
automationobject
Automation to create
perspective_idstring
Perspective ID
workspace_idstring
Workspace ID (from workspace_get_default or workspace_list) or workspace slug (uniqueName)
automation_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 params

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

Parameters* required
automation_idstring
Automation ID
perspective_idstring
Perspective ID
updatesobject
Partial fields to update (pass `enabled` to toggle)
workspace_idstring
Workspace ID (from workspace_get_default or workspace_list) or workspace slug (uniqueName)
automation_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 params

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

Parameters* required
automation_idstring
Automation ID
perspective_idstring
Perspective ID
workspace_idstring
Workspace ID (from workspace_get_default or workspace_list) or workspace slug (uniqueName)
automation_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 params

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

Parameters* required
automation_idstring
Automation ID
override_emailstring
Override the configured recipient (email channel only)
override_webhookstring
Override the configured webhook URL (webhook channel only)
perspective_idstring
Perspective ID
test_dataobject
Mock interview data for the test run
workspace_idstring
Workspace ID (from workspace_get_default or workspace_list) or workspace slug (uniqueName)
integration_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 params

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

Parameters* required
operationstring
The operation to performone of list · connect · search_tools
providerstring
Provider (required for connect/search_tools)one of slackbot · hubspot · gmail
querystring
Search query (required for 'search_tools')
workspace_idstring
Workspace ID (from workspace_get_default or workspace_list) or workspace slug (uniqueName)
participant_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 params

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

Parameters* required
custom_messagestring
Custom message body in the email. Only used when send_email is true.
custom_subjectstring
Custom email subject line. Only used when send_email is true.
invite_idsarray
Invite IDs from a previous call. Reuses existing invite records. Mutually exclusive with participants.
participantsarray
Participants to create new invites for. Mutually exclusive with invite_ids.
perspective_idstring
Perspective ID (from perspective_list or perspective_create)
send_emailboolean
When true, sends invitation emails. When false (default), only returns invite URLs.default: false
workspace_idstring
Workspace ID (from workspace_get_default or workspace_list) or workspace slug (uniqueName)

Sponsors

Readme

Perspective AI

Perspective AI MCP Server

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.

What this MCP server does

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:


View the full README on GitHub

Details

Repository
github.com/perspective-ai/mcp
Website
getperspective.ai/docs/build/mcp
Transport
HTTP
Registry
MCP registry, active