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.
我该使用它吗
质量与安全性
发现(9)
- LOW在 mimiq.show_report 中
- LOW在 mimiq.test_page 中
- LOW在 mimiq.test_flow 中
- LOW在 mimiq.test_copy 中
- LOW在 mimiq.test_text 中
- LOW在 mimiq.test_component 中
- LOW在 mimiq.ask_audience 中
- LOW在 mimiq.compare_copy 中
- LOW在 mimiq.compare_urls 中
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"mimiq-mcp": {
"url": "https://mcp.mimiqai.com/mcp"
}
}
}远程端点
https://mcp.mimiqai.com/mcpstreamable-http它能做什么
工具清单
工具(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.
输入模式
{
"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
}输出模式
{
"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.
输入模式
{
"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"
]
}输出模式
{
"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.
输入模式
{
"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"
]
}输出模式
{
"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.
输入模式
{
"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"
]
}输出模式
{
"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.
输入模式
{
"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"
]
}输出模式
{
"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.
输入模式
{
"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": []
}输出模式
{
"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.
输入模式
{
"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"
]
}输出模式
{
"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.
输入模式
{
"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"
]
}输出模式
{
"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.
输入模式
{
"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"
]
}输出模式
{
"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
}社区
证据