Mimiq: test pages and sign-up flows on simulated people
Simulated people test your pages, copy and sign-up flows, and say why they would leave.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (9)
- LOWen mimiq.show_report
- LOWen mimiq.test_page
- LOWen mimiq.test_flow
- LOWen mimiq.test_copy
- LOWen mimiq.test_text
- LOWen mimiq.test_component
- LOWen mimiq.ask_audience
- LOWen mimiq.compare_copy
- LOWen mimiq.compare_urls
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"mimiq-mcp": {
"url": "https://mcp.mimiqai.com/mcp"
}
}
}Puntos de conexión remotos
https://mcp.mimiqai.com/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (9)
🟢mimiq.show_report(session_id, compare_session_id)
Show the finished result of a saved Mimiq test, or two saved tests compared: the call, counts, objections in simulated people's words, and a full report link. Use session IDs from an earlier test result or report URL. Reads your account only and spends no credits.
Esquema de entrada
{
"type": "object",
"properties": {
"session_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,100}$"
},
"compare_session_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,100}$"
}
},
"required": [
"session_id"
],
"additionalProperties": false
}Esquema de salida
{
"type": "object",
"properties": {
"title": {
"type": "string"
},
"kind": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"finished",
"running"
]
},
"progress": {
"type": "object",
"properties": {
"done": {
"type": "integer",
"minimum": 0
},
"total": {
"type": "integer",
"minimum": 1
}
},
"required": [
"done",
"total"
],
"additionalProperties": false
},
"headline": {
"type": "string"
},
"reason": {
"type": "string"
},
"report_url": {
"type": "string",
"format": "uri"
},
"limitation": {
"type": "string"
},
"versions": {
"type": "array",
"minItems": 0,
"maxItems": 2,
"items": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"title": {
"type": "string"
},
"counts": {
"type": "object",
"properties": {
"total": {
"type": "integer",
"minimum": 0
},
"stayed": {
"type": "integer",
"minimum": 0
},
"left": {
"type": "integer",
"minimum": 0
},
"finished": {
"type": "integer",
"minimum": 0
},
"partway": {
"type": "integer",
"minimum": 0
},
"rated": {
"type": "integer",
"minimum": 0
},
"understood": {
"type": "integer",
"minimum": 0
},
"for_them": {
"type": "integer",
"minimum": 0
}
},
"required": [
"total"
],
"additionalProperties": false
},
"votes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"option": {
"type": "string"
},
"count": {
"type": "integer",
"minimum": 0
}
},
"required": [
"option",
"count"
],
"additionalProperties": false
}
},
"unanswered": {
"type": "integer",
"minimum": 0
},
"answers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"person": {
"type": "string"
},
"option": {
"type": "string"
},
"reason": {
"type": "string"
}
},
"required": [
"person",
"option",
"reason"
],
"additionalProperties": false
}
},
"objections": {
"type": "array",
"items": {
"type": "object",
"properties": {
"quote": {
"type": "string"
},
"person": {
"type": "string"
},
"count": {
"type": "integer",
"minimum": 1
}
},
"required": [
"quote",
"person",
"count"
],
"additionalProperties": false
}
}
},
"required": [
"label",
"title",
"counts",
"objections"
],
"additionalProperties": false
}
}
},
"required": [
"title",
"kind",
"headline",
"reason",
"report_url",
"limitation",
"versions"
],
"additionalProperties": false
}🟡mimiq.test_page(url, audience, review_id, confirm_audience, audience_fit_acknowledged, ...)
Starts immediately unless the recruited crowd is wrong (more than 1 in 5 not the requested audience); the result includes the audience summary, examples and fit. Only a wrong crowd returns audience_review: show the warning, then use review_id, confirm_audience and audience_fit_acknowledged to continue, or audience_correction to recruit again. Show a web page to simulated people and hear how they react: who would stay, who would leave, and why. Each person scrolls the page and says what confused them, what they doubted and what would change their mind. Use it after you build or change a landing, pricing or signup page, then fix what they raised and test again. Needs a public URL (for localhost, open a tunnel first; see the server instructions). Returns each person's action, thoughts and objections, and the counts. With a key, the result ends with a link to the full report in the Mimiq app.
Esquema de entrada
{
"type": "object",
"properties": {
"url": {
"type": "string",
"format": "uri",
"maxLength": 2000,
"description": "The page to test. Must be publicly reachable. For localhost, open a cloudflared tunnel and pass the tunnel URL."
},
"audience": {
"type": "string",
"maxLength": 500,
"description": "Who the simulated people should be, in plain words, e.g. \"startup founders in SF\" or \"parents shopping for kids toys\". If omitted, Mimiq picks the likely audience from the content."
},
"review_id": {
"type": "string",
"maxLength": 100,
"description": "The review_id from a low-fit review or completed/running result. Bound to this URL and test kind."
},
"confirm_audience": {
"type": "boolean",
"description": "Start with the reviewed people after showing them to the user."
},
"audience_fit_acknowledged": {
"type": "boolean",
"description": "Set only after telling the user about an audience-fit warning and they choose to continue."
},
"audience_correction": {
"type": "string",
"maxLength": 1500,
"description": "Not quite? Change who and rerun: use with review_id. Recruits a new crowd under the existing credit rules; starts unless the new crowd is wrong, otherwise returns a new review."
},
"count": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 10,
"description": "How many simulated people (default 10, max 50). Each person uses one credit."
},
"goal": {
"type": "string",
"maxLength": 500,
"description": "What the page should get people to do, e.g. \"sign up for the waitlist\"."
},
"timeout_seconds": {
"type": "integer",
"minimum": 30,
"maximum": 900,
"default": 300
}
},
"required": [
"url"
]
}Esquema de salida
{
"type": "object",
"properties": {
"tool": {
"type": "string"
},
"report_url": {
"type": [
"string",
"null"
]
},
"summary_card": {
"type": "string"
},
"status": {
"type": "string"
},
"call": {
"type": "object",
"properties": {
"headline": {
"type": "string"
},
"reason": {
"type": "string"
},
"pick": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": true
},
"run": {
"type": "object",
"additionalProperties": true
}
},
"required": [
"tool"
],
"additionalProperties": true
}🟡mimiq.test_flow(url, audience, review_id, confirm_audience, audience_fit_acknowledged, ...)
Starts immediately unless the recruited crowd is wrong (more than 1 in 5 not the requested audience); the result includes the audience summary, examples and fit. Only a wrong crowd returns audience_review: show the warning, then use review_id, confirm_audience and audience_fit_acknowledged to continue, or audience_correction to recruit again. Send simulated people through a multi-step flow (signup, onboarding, checkout) in a real browser, clicking and typing, to find the step where they get stuck or give up. Slower than test_page, and each person uses 5 credits. Returns each person's steps, where they stopped and why.
Esquema de entrada
{
"type": "object",
"properties": {
"url": {
"type": "string",
"format": "uri",
"maxLength": 2000,
"description": "Where the flow starts. Must be publicly reachable. For localhost, open a cloudflared tunnel and pass the tunnel URL."
},
"audience": {
"type": "string",
"maxLength": 500,
"description": "Who the simulated people should be, in plain words, e.g. \"startup founders in SF\" or \"parents shopping for kids toys\". If omitted, Mimiq picks the likely audience from the content."
},
"review_id": {
"type": "string",
"maxLength": 100,
"description": "The review_id from a low-fit review or completed/running result. Bound to this URL and test kind."
},
"confirm_audience": {
"type": "boolean",
"description": "Start with the reviewed people after showing them to the user."
},
"audience_fit_acknowledged": {
"type": "boolean",
"description": "Set only after telling the user about an audience-fit warning and they choose to continue."
},
"audience_correction": {
"type": "string",
"maxLength": 1500,
"description": "Not quite? Change who and rerun: use with review_id. Recruits a new crowd under the existing credit rules; starts unless the new crowd is wrong, otherwise returns a new review."
},
"count": {
"type": "integer",
"minimum": 1,
"maximum": 10,
"default": 5,
"description": "How many simulated people (default 5, max 10; without a key a free flow has up to 3, and defaults to 3). Each runs a full browser session and uses 5 credits."
},
"goal": {
"type": "string",
"maxLength": 500,
"description": "The task each person tries, e.g. \"complete the signup and reach the dashboard\". Default: sign up and start using it."
},
"max_steps": {
"type": "integer",
"minimum": 10,
"maximum": 60,
"description": "Optional step limit per person (10 to 60). The server defaults to 40."
},
"timeout_seconds": {
"type": "integer",
"minimum": 60,
"maximum": 1800,
"default": 1200
}
},
"required": [
"url"
]
}Esquema de salida
{
"type": "object",
"properties": {
"tool": {
"type": "string"
},
"report_url": {
"type": [
"string",
"null"
]
},
"summary_card": {
"type": "string"
},
"status": {
"type": "string"
},
"call": {
"type": "object",
"properties": {
"headline": {
"type": "string"
},
"reason": {
"type": "string"
},
"pick": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": true
},
"run": {
"type": "object",
"additionalProperties": true
}
},
"required": [
"tool"
],
"additionalProperties": true
}🟢mimiq.test_copy(variant_a, variant_b, audience, count, timeout_seconds)
Show one piece of copy (a headline, tagline, value proposition, email subject line or call to action) to simulated people and hear how they react and why. To choose between two versions, use mimiq.compare_copy. This tool still accepts variant_b and then runs that same comparison. Returns each person's reaction, objections and what would help, and the counts. With a key, the result ends with a link to the full report in the Mimiq app.
Esquema de entrada
{
"type": "object",
"properties": {
"variant_a": {
"type": "string",
"maxLength": 20000,
"description": "The copy to test."
},
"variant_b": {
"type": "string",
"maxLength": 20000,
"description": "Optional second version. With it, this runs mimiq.compare_copy."
},
"audience": {
"type": "string",
"maxLength": 500,
"description": "Who the simulated people should be, in plain words, e.g. \"startup founders in SF\" or \"parents shopping for kids toys\". If omitted, Mimiq picks the likely audience from the content."
},
"count": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 10,
"description": "How many simulated people (default 10, max 50)."
},
"timeout_seconds": {
"type": "integer",
"minimum": 30,
"maximum": 900,
"default": 180
}
},
"required": [
"variant_a"
]
}Esquema de salida
{
"type": "object",
"properties": {
"tool": {
"type": "string"
},
"report_url": {
"type": [
"string",
"null"
]
},
"summary_card": {
"type": "string"
},
"status": {
"type": "string"
},
"call": {
"type": "object",
"properties": {
"headline": {
"type": "string"
},
"reason": {
"type": "string"
},
"pick": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": true
},
"run": {
"type": "object",
"additionalProperties": true
}
},
"required": [
"tool"
],
"additionalProperties": true
}🟢mimiq.test_text(text, audience, goal, count, timeout_seconds)
Show any text (a positioning statement, feature description, error message, instructions or an announcement) to simulated people and hear how they react. Pass goal to say what the text should achieve. Returns each person's reaction, objections and what would help. With a key, the result ends with a link to the full report in the Mimiq app.
Esquema de entrada
{
"type": "object",
"properties": {
"text": {
"type": "string",
"maxLength": 20000,
"description": "The text to test."
},
"audience": {
"type": "string",
"maxLength": 500,
"description": "Who the simulated people should be, in plain words, e.g. \"startup founders in SF\" or \"parents shopping for kids toys\". If omitted, Mimiq picks the likely audience from the content."
},
"goal": {
"type": "string",
"maxLength": 500,
"description": "What the text should achieve, e.g. \"get people to update their card\"."
},
"count": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 10,
"description": "How many simulated people (default 10, max 50)."
},
"timeout_seconds": {
"type": "integer",
"minimum": 30,
"maximum": 900,
"default": 180
}
},
"required": [
"text"
]
}Esquema de salida
{
"type": "object",
"properties": {
"tool": {
"type": "string"
},
"report_url": {
"type": [
"string",
"null"
]
},
"summary_card": {
"type": "string"
},
"status": {
"type": "string"
},
"call": {
"type": "object",
"properties": {
"headline": {
"type": "string"
},
"reason": {
"type": "string"
},
"pick": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": true
},
"run": {
"type": "object",
"additionalProperties": true
}
},
"required": [
"tool"
],
"additionalProperties": true
}🟢mimiq.test_component(component_html, component_text, audience, goal, count, ...)
Show a UI component (a button, card, form, modal, navigation or pricing table) to simulated people and hear whether they understand it, trust it and would use it. Provide component_html, component_text, or both. With a key, the result ends with a link to the full report in the Mimiq app.
Esquema de entrada
{
"type": "object",
"properties": {
"component_html": {
"type": "string",
"maxLength": 50000,
"description": "The HTML of the component."
},
"component_text": {
"type": "string",
"maxLength": 20000,
"description": "A description of the component (instead of, or with, the HTML)."
},
"audience": {
"type": "string",
"maxLength": 500,
"description": "Who the simulated people should be, in plain words, e.g. \"startup founders in SF\" or \"parents shopping for kids toys\". If omitted, Mimiq picks the likely audience from the content."
},
"goal": {
"type": "string",
"maxLength": 500,
"description": "What the component should achieve, e.g. \"get people to click upgrade\"."
},
"count": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 10,
"description": "How many simulated people (default 10, max 50)."
},
"timeout_seconds": {
"type": "integer",
"minimum": 30,
"maximum": 900,
"default": 180
}
},
"required": []
}Esquema de salida
{
"type": "object",
"properties": {
"tool": {
"type": "string"
},
"report_url": {
"type": [
"string",
"null"
]
},
"summary_card": {
"type": "string"
},
"status": {
"type": "string"
},
"call": {
"type": "object",
"properties": {
"headline": {
"type": "string"
},
"reason": {
"type": "string"
},
"pick": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": true
},
"run": {
"type": "object",
"additionalProperties": true
}
},
"required": [
"tool"
],
"additionalProperties": true
}🟢mimiq.ask_audience(audience, question, options, count, context, ...)
Ask simulated people a multiple-choice question (2 to 10 options) and get each person's pick and reasoning. Use it for naming, positioning, or which feature to build next. Each person answers on their own.
Esquema de entrada
{
"type": "object",
"properties": {
"audience": {
"type": "string",
"maxLength": 500,
"description": "Who to ask, e.g. \"SaaS founders with 10 to 50 employees\"."
},
"question": {
"type": "string",
"minLength": 1,
"maxLength": 500,
"description": "The question."
},
"options": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 2,
"maxItems": 10,
"description": "Answer options (2 to 10)."
},
"count": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 10,
"description": "How many simulated people (default 10, max 50)."
},
"context": {
"type": "string",
"maxLength": 500,
"default": "Product validation survey",
"description": "What the question is for."
},
"concurrency": {
"type": "integer",
"minimum": 1,
"maximum": 20,
"default": 6,
"description": "Parallel workers (default 6)."
},
"timeout_seconds": {
"type": "integer",
"default": 300,
"minimum": 30,
"maximum": 900
}
},
"required": [
"audience",
"question",
"options"
]
}Esquema de salida
{
"type": "object",
"properties": {
"tool": {
"type": "string"
},
"report_url": {
"type": [
"string",
"null"
]
},
"summary_card": {
"type": "string"
},
"status": {
"type": "string"
},
"call": {
"type": "object",
"properties": {
"headline": {
"type": "string"
},
"reason": {
"type": "string"
},
"pick": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": true
},
"run": {
"type": "object",
"additionalProperties": true
}
},
"required": [
"tool"
],
"additionalProperties": true
}🟢mimiq.compare_copy(version_a, version_b, format, audience, count, ...)
Compare two versions of copy or an email on the same simulated people and get Mimiq's call on which to ship. The same people see version A and version B. Mimiq's call combines a forecast of how people like them behave, asked in both orders, with how the same people moved: clear, leaning, or too close to call (no pick). Returns the call, the reason in one sentence, how many people moved toward each version, each version's top objections, and a link to the report. Without a key, an agent also gets one free A/B test on up to 10 simulated people per version, while the daily free A/B allowance lasts. With a key, any size. The forecast has held up on headlines (76% right on 1,000 real headline A/B tests, against 61% for the best rule of thumb); on emails, text messages and ads it was no better than chance at ranking small wording changes, and on real web page tests it did not beat the simplest guess.
Esquema de entrada
{
"type": "object",
"properties": {
"version_a": {
"type": "string",
"minLength": 1,
"maxLength": 20000,
"description": "Version A, usually the current one."
},
"version_b": {
"type": "string",
"minLength": 1,
"maxLength": 20000,
"description": "Version B, usually the new one."
},
"format": {
"type": "string",
"enum": [
"copy",
"email"
],
"default": "copy",
"description": "\"copy\" for a headline, tagline or short message people come across; \"email\" for an email in an inbox (a first line \"Subject: ...\" is read as the subject)."
},
"audience": {
"type": "string",
"maxLength": 500,
"description": "Who the simulated people should be, in plain words, e.g. \"startup founders in SF\" or \"parents shopping for kids toys\". If omitted, Mimiq picks the likely audience from the content."
},
"count": {
"type": "integer",
"minimum": 3,
"maximum": 50,
"default": 10,
"description": "How many simulated people see both versions (default 10). Use 5 or more: from 5 people up, Mimiq reads who moved. Uses count credits to recruit plus count for version B."
},
"timeout_seconds": {
"type": "integer",
"minimum": 60,
"maximum": 900,
"default": 480
}
},
"required": [
"version_a",
"version_b"
]
}Esquema de salida
{
"type": "object",
"properties": {
"tool": {
"type": "string"
},
"report_url": {
"type": [
"string",
"null"
]
},
"summary_card": {
"type": "string"
},
"status": {
"type": "string"
},
"call": {
"type": "object",
"properties": {
"headline": {
"type": "string"
},
"reason": {
"type": "string"
},
"pick": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": true
},
"run": {
"type": "object",
"additionalProperties": true
}
},
"required": [
"tool"
],
"additionalProperties": true
}🟢mimiq.compare_urls(url_a, url_b, audience, count, timeout_seconds)
Compare two web pages (for example a preview deployment and production) on the same simulated people and get Mimiq's call on which to ship. The same people see page A and page B. Mimiq's call combines a forecast, asked in both orders, with how the same people moved: clear, leaning, or too close to call (no pick). Returns the call, the reason in one sentence, how many people moved toward each page, each page's top objections, and a link to the report. Needs public URLs. Without a key, an agent also gets one free A/B test on up to 10 simulated people per version, while the daily free A/B allowance lasts. With a key, any size. On real web page tests the forecast did not beat the simplest guess in a pre-registered run: treat the call as a fast first read.
Esquema de entrada
{
"type": "object",
"properties": {
"url_a": {
"type": "string",
"format": "uri",
"maxLength": 2000,
"description": "Page A, usually the current one (for example production)."
},
"url_b": {
"type": "string",
"format": "uri",
"maxLength": 2000,
"description": "Page B, usually the new one (for example a preview deployment)."
},
"audience": {
"type": "string",
"maxLength": 500,
"description": "Who the simulated people should be, in plain words, e.g. \"startup founders in SF\" or \"parents shopping for kids toys\". If omitted, Mimiq picks the likely audience from the content."
},
"count": {
"type": "integer",
"minimum": 3,
"maximum": 50,
"default": 10,
"description": "How many simulated people see both pages (default 10). Use 5 or more: from 5 people up, Mimiq reads who moved."
},
"timeout_seconds": {
"type": "integer",
"minimum": 60,
"maximum": 900,
"default": 600
}
},
"required": [
"url_a",
"url_b"
]
}Esquema de salida
{
"type": "object",
"properties": {
"tool": {
"type": "string"
},
"report_url": {
"type": [
"string",
"null"
]
},
"summary_card": {
"type": "string"
},
"status": {
"type": "string"
},
"call": {
"type": "object",
"properties": {
"headline": {
"type": "string"
},
"reason": {
"type": "string"
},
"pick": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": true
},
"run": {
"type": "object",
"additionalProperties": true
}
},
"required": [
"tool"
],
"additionalProperties": true
}Comunidad
Evidencia