I made it up

API Reference

All tools are accessed via the MCP connection at https://mcp.imadeitup.ai/mcp. Tools are named with a category_action convention (e.g., persona_create, conversation_ask_persona).

Use the sidebar to jump to a specific tool. Async operations (run_interview, analysis) return a taskId — poll with task_status and retrieve results with task_result.

Persona Tools

persona_create persona

Generate realistic made-up personas with detailed psychological profiles. IMPORTANT: If the user specifies a number in their request (e.g., 'six engineers', 'three doctors'), use that number for the count parameter. We will suggest clarifications for broad demographics or generate immediately for specific ones.

ParameterTypeDescription
demographic stringrequiredmaxLength: 1000 The demographic description for persona generation (max 1000 characters)
count integeroptionalmin: 1, max: 6, default: 3 Number of personas to generate (max 6). IMPORTANT: Extract this number from the user's request if they specify it (e.g., "six engineers" = count: 6)
force booleanoptionaldefault: false Skip demographic review and generate immediately
addToGroup stringoptional Add personas to existing group by UUID. Use group/list or group/search to find group IDs.
groupName stringoptional Custom name for the auto-created group. If omitted, a name is generated from the demographic.
skipGroup booleanoptionaldefault: false Skip group assignment entirely. Personas will be created without being added to any group.
persona_list persona

Browse all available made-up personas with optional demographic filtering. Supports pagination using limit (max results per page) and offset (number to skip) parameters

ParameterTypeDescription
demographicQuery stringoptional Optional filter by demographic name or description
limit numberoptionaldefault: 20 Maximum number of personas to return (1-50)
offset numberoptionaldefault: 0 Number of personas to skip for pagination (e.g., offset=20 for page 2 with limit=20)
persona_details persona

Show complete background information for a specific made-up persona

ParameterTypeDescription
personaId stringrequired Unique identifier for the persona (UUID string)

Group Tools

group_create group

Create a new saved made-up persona group with specified made-up personas

ParameterTypeDescription
name stringrequiredminLength: 1, maxLength: 100 Name for the saved group (1-100 characters)
description stringoptional Optional description of the group (max 500 characters)
personaIds arrayrequiredminItems: 1, maxItems: 9 Array of persona IDs (UUIDs) to include in the group (max 9)
group_list group

List all saved made-up persona groups for the authenticated user

No parameters required.

group_details group

Get detailed information about a specific saved made-up group including all made-up personas

ParameterTypeDescription
groupId stringoptional Group ID (UUID) to retrieve
groupName stringoptional Group name to retrieve (alternative to groupId)
group_update group

Update a saved group: add/remove made-up personas, rename, or update description

ParameterTypeDescription
groupId stringoptional Group ID (UUID) to update
groupName stringoptional Group name to update (alternative to groupId)
newName stringoptional New name for the group
newDescription stringoptional New description for the group
addPersonaIds arrayoptional Persona IDs (UUIDs) to add to the group
removePersonaIds arrayoptional Persona IDs (UUIDs) to remove from the group
group_delete group

Delete a saved made-up persona group (this will not delete the made-up personas themselves)

ParameterTypeDescription
groupId stringoptional Group ID (UUID) to delete
groupName stringoptional Group name to delete (alternative to groupId)

Conversation Tools

conversation_ask_persona conversation

Have a conversation with a specific made-up persona who responds in character according to their psychological profile and background. IMPORTANT: Pass the user's exact question/dialogue unmodified - do not rephrase, summarize, or interpret their words. OPTIONAL: Set includeRating=true to generate numeric rating distributions (1-5 scale with probabilities). Optionally specify scaleType (purchase_intent, importance, satisfaction, likelihood, agreement, sentiment) to match your question construct.

ParameterTypeDescription
personaId stringrequired Unique identifier for the persona (UUID string)
question stringrequiredminLength: 1, maxLength: 500 The exact question or dialogue to ask the persona - pass through user's words unmodified, do not rephrase or interpret
includeRating booleanoptional Generate numeric rating distributions (1-5 scale with probabilities)
scaleType enumoptional Optional scale type hint for SSR rating conversion (only used if includeRating=true). Selects hardcoded anchor statements to match the question construct.
conversation_ask_group conversation

Ask a question to a group of personas. Use groupId for exact matches, groupName for smart matching to groups, or personaIds for direct specification. IMPORTANT: Pass the user's exact question/dialogue unmodified - do not rephrase, summarize, or interpret their words. OPTIONAL: Set includeRating=true to generate numeric rating distributions for each persona (1-5 scale with probabilities). Optionally specify scaleType (purchase_intent, importance, satisfaction, likelihood, agreement, sentiment) to match your question construct.

ParameterTypeDescription
question stringrequiredminLength: 1, maxLength: 500 The exact question or dialogue to ask all personas - pass through user's words unmodified, do not rephrase or interpret
groupId stringoptional PREFERRED: Exact UUID of group
groupName stringoptional Name of group (supports fuzzy matching)
personaIds arrayoptional Direct persona IDs for ad-hoc groups
includeRating booleanoptional Generate numeric rating distributions for each persona response (1-5 scale with probabilities)
scaleType enumoptional Optional scale type hint for SSR (only used if includeRating=true). Selects hardcoded anchor statements to match the question construct.
conversation_continue conversation

Continue an existing threaded conversation with a made-up persona

ParameterTypeDescription
conversationId stringrequired Required conversation ID from a previous conversation/ask-persona response
question stringrequired The next question or message in the conversation
conversation_continue_group conversation

Continue an existing group conversation with the same made-up personas or a subset of them

ParameterTypeDescription
groupConversationId stringrequired ID of the group conversation to continue
question stringrequired Next question for the group
personaIds arrayoptional Optional: subset of personas to continue with. If omitted, continues with all original personas
conversation_explain conversation

Get detailed psychological analysis explaining why a made-up persona responded the way they did to your question. Use the messageId from any conversation response

ParameterTypeDescription
messageId stringrequired The messageId from conversationInfo in any conversation/ask-persona or conversation/continue response - this UUID identifies the specific message to explain

Research Tools

run_interview research

Conduct structured interviews with personas. Returns text responses with automated sentiment analysis converting each response into 1-5 rating distributions and aggregate statistics (mean, distribution) per question. Match scaleType to question construct (satisfaction, likelihood, etc.). Returns Task ID - poll with task_status, retrieve with task_result.

ParameterTypeDescription
groupId stringoptional UUID of saved group to interview
groupName stringoptional Name of saved group to interview
personaIds arrayoptional Array of persona UUIDs to interview directly (up to 6 personas)
protocol enumoptionalvalues: "structured", default: "structured" Interview protocol type (currently: structured only)
questions arrayrequiredminItems: 1, maxItems: 6 Questions to ask with optional per-question scale types (1-6 questions). Each question can specify its own semantic scale for construct-valid rating.
includeRating booleanoptionaldefault: false Generate Likert-scale ratings for responses via SSR. Enable for quantitative analysis, disable for exploratory/thematic research. Adds ~$0.00012 per response for embeddings.
analysis research

Perform statistical and thematic analysis on completed interviews. Provides descriptive statistics, group comparisons (t-test/ANOVA), outlier detection, and optional qualitative theme extraction for demographic segments. Requires Pro+ subscription. Use approve=false for preview/cost estimate. Returns Task ID - poll with task_status, retrieve with task_result.

ParameterTypeDescription
interviewIds arrayrequiredminItems: 1, maxItems: 200 UUIDs of interviews for analysis
goal stringoptional Natural language description of analysis goal
mode enumoptionalvalues: "full" | "qualitative" | "quantitative", default: "full" Analysis type: full (stats + themes, requires ratings), qualitative (themes only, no ratings needed), quantitative (stats only, requires ratings)
approve booleanoptionaldefault: false Set to true to execute analysis, false for preview
config objectoptional
retrieve research

Retrieve detailed data for analysis drill-down. Fetch full interview transcripts by interview_ids, specific exchanges by exchange_ids, all exchanges for conversation_ids, or persona profiles by persona_ids. Use exchange_ids from analysis outliers to investigate, or filter by codes to explore thematic clusters. Requires Pro+ subscription.

ParameterTypeDescription
interview_ids arrayoptional Fetch full transcripts for these interviews
exchange_ids arrayoptional Fetch specific exchanges by ID
conversation_ids arrayoptional Fetch all exchanges for these conversations
persona_ids arrayoptional Fetch full persona profiles
filter objectoptional Filter exchanges by extracted codes

Task Tools

task_status task

Check the status and progress of a long-running task. Returns current status (queued/running/completed/failed/cancelled), progress percentage (0-100), and optional progress message. Use this to poll tasks that return a taskId

ParameterTypeDescription
taskId stringrequired Task ID returned from async tool call
task_result task

Retrieve the final result of a completed long-running task. Returns the full result data if status is 'completed', or an error if the task failed. Use task_status first to check if ready

ParameterTypeDescription
taskId stringrequired Task ID returned from async tool call
task_cancel task

Cancel a running long-running task (cooperative cancellation). The task will stop at the next cancellation check point. Only works for tasks with status 'queued' or 'running'

ParameterTypeDescription
taskId stringrequired Task ID to cancel
task_list task

List recent long-running tasks for the current user. Shows task summaries ordered by creation time (newest first). Filter by status (queued/running/completed/failed/cancelled) and limit results (max 50). Use this to see your task history and find taskIds

ParameterTypeDescription
status enumoptional Filter by task status (optional)
limit numberoptionalmin: 1, max: 50, default: 20 Maximum number of tasks to return (1-50, default: 20)

Subscription Tools

subscription_plans subscription

View available subscription plans and pricing. No parameters required

No parameters required.

subscription_status subscription

View current subscription plan and usage statistics. No parameters required

No parameters required.

subscription_manage subscription

General subscription management. Params: action={upgrade|portal}, tier={plus|pro|max}, currency={usd|eur|gbp}. IMPORTANT: Before calling, infer currency from conversation (user location/preferences) or explicitly ask the user which currency they prefer

ParameterTypeDescription
action enumoptionalvalues: "upgrade" | "portal", default: "portal" Action to take: 'upgrade' for checkout flow or 'portal' for billing/management
tier enumoptional Subscription tier to upgrade to: plus ($7/€7/£6), pro ($14/€13/£11), max ($50/€47/£42)
currency enumoptionalvalues: "usd" | "eur" | "gbp", default: "usd" Currency for pricing: usd (dollars), eur (euros), gbp (pounds). IMPORTANT: Infer from conversation history (user's location, previous mentions) or explicitly ask the user which currency they prefer before calling this tool
subscription_upgrade subscription

Upgrade to a higher subscription tier. Params: tier={plus|pro|max}, currency={usd|eur|gbp}. Returns Stripe checkout URL for payment. IMPORTANT: Before calling, infer currency from conversation (user location/preferences) or explicitly ask the user which currency they prefer

ParameterTypeDescription
tier enumrequiredvalues: "plus" | "pro" | "max" Subscription tier to upgrade to: plus ($7/€7/£6), pro ($14/€13/£11), max ($50/€47/£42)
currency enumoptionalvalues: "usd" | "eur" | "gbp", default: "usd" Currency for pricing: usd (dollars), eur (euros), gbp (pounds). IMPORTANT: Infer from conversation history (user's location, previous mentions) or explicitly ask the user which currency they prefer before calling this tool
subscription_portal subscription

Access Stripe billing portal to manage subscription (paid users only). Update payment method, view invoices, cancel subscription. No parameters required

No parameters required.

System Tools

system_about system

Learn about I Made It Up: how made-up personas work, getting started guide, workflows, and important terms

No parameters required.

system_feedback system

Submit feedback in your own words about your experience. Describe what happened, what you expected, or suggestions for improvement

ParameterTypeDescription
message stringrequiredminLength: 1 Your feedback in your own words - describe what happened, what you expected, or what you'd like to see
category enumoptional Optional: Categorize your feedback (bugReport for issues, featureRequest for new features, generalFeedback for praise/suggestions, other for everything else)

← Documentation