Mimiq: AI agents use your app like your users and find what breaks

io.github.victorgulchenko由 GitHub 账号 victorgulchenko 发布v0.5.1更新于 Oct 28, 2026

AI agents use your app like your users, in real browsers, and report what is broken or confusing.

发布方自己的服务:Verified Codes

已验证Streamable HTTP可网页运行浏览器自动化开发者工具

概览

AI 生成的概览

Mimiq 让模拟 AI 代理在真实浏览器中像用户一样走完注册、结账等流程,并报告哪里出错、卡住,附步骤与截图。

可以做什么
  • 运行流程测试:给出预览、预发布或线上 URL 和一句自然语言任务,模拟代理在各自浏览器中点击、输入并填写表单
  • 查看结果:了解每个代理是完成、部分完成还是放弃,以及按命中人数排序的问题、步骤、截图和修复建议
  • 查看浏览器层记录:JavaScript 错误、失败或 4xx/5xx 请求、超过 3 秒的慢请求,按命中代理数分组
  • 按会话 ID 或报告链接重新打开已保存的报告,不消耗额度
适用场景
适合在助手刚完成或改动用户会经过的环节(注册、引导、结账、设置、新功能)后,先在预览或预发布环境跑一遍再合并上线,并在修复后重跑。
运行要求
远程 HTTP 端点 mcp.mimiqai.com,无需本地运行时。超出少量免费试用后需要 Mimiq 账号和 API 密钥,通过 Authorization Bearer 头(或 X-API-Key)发送;每个代理消耗额度。被测应用需有公网可访问地址,localhost 需借助隧道。受保护预览和登录页可选配置访问凭据。
安装前请注意
每次运行消耗额度(每个代理 5 点),付费方案需购买,免费试用有限。API 密钥属于机密,不要写进会提交的配置文件。代理会以用户身份操作应用,应指向预览或预发布环境而非生产数据。为受保护预览或测试账号提供的凭据只在浏览器中填入,但仍需谨慎提供。开启 localhost 隧道期间页面可被公网访问。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Mimiq: AI agents use your app like your users and find what breaks,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.victorgulchenko%2Fmimiq-mcp/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "mimiq-ai-agents-use-your-app-like-your-u": {
      "type": "http",
      "url": "https://mcp.mimiqai.com/mcp"
    }
  }
}

README

Mimiq MCP Server

Your agent built it. AI agents use it like your users before you ship.

Point Mimiq at a preview or staging URL and a task in plain words, such as signing up or reaching checkout. No test scripts. Each agent acts as one of your users: it opens the app in its own real browser, clicks, types and fills in your forms (with an inbox of its own for verification codes), and the report shows what was broken, what did nothing, where each agent got stuck or gave up and why, with the step and a screenshot. Fix what they hit and run it again on the new build.

[Install in VS Code] [Install in Cursor]

Tools

ToolWhat it does
mimiq.test_flowAI agents go through a flow on your preview, staging or live URL in real browsers and report what broke, what did nothing and where they got stuck, step by step with screenshots. 5 credits an agent.
mimiq.show_reportShows a saved report again. Reads your account only and spends no credits.

Ask your agent directly, or let it test what it just built:

"Have three agents sign up on this preview and tell me where they get stuck"

"Check the new checkout on the preview before I merge"

"Run Mimiq on staging with parents shopping for school shoes, then fix what they hit"

"Run it again on the fixed build"

What the agents find, and the limits

  • Errors on screen, buttons and links that do nothing, forms that reject good input, dead ends, and steps where agents wait, give up or go the wrong way because of the wording.
  • What the browser recorded: JavaScript errors, failed or 4xx/5xx requests and requests slower than 3 seconds, on the step each happened.
  • Each problem comes with which agents hit it, the step, the screenshot and a suggested fix, ranked by how many agents hit it.
  • The agents are simulated users. They find problems fast; they do not forecast how many real people will convert.
  • They cannot pay with real cards, and CAPTCHAs or bot protection can stop them. Use a preview or staging URL without bot protection.

On every pull request

The Mimiq preview check GitHub Action runs the agents on each Vercel, Netlify or Cloudflare Pages preview and keeps one comment on the pull request with what they hit. Any other CI can call the same endpoint: it is plain JSON-RPC over HTTP.

bash
curl -s https://mcp.mimiqai.com/mcp \  -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" \  -H "Authorization: Bearer $MIMIQ_API_KEY" \  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"mimiq.test_flow","arguments":{"url":"'"$PREVIEW_URL"'","goal":"Sign up and start using it","count":3}}}'

Setup

Claude Code

bash
claude mcp add --transport http mimiq https://mcp.mimiqai.com/mcp --header "Authorization: Bearer $MIMIQ_API_KEY"

Or in .mcp.json at your project root (Claude Code reads ${MIMIQ_API_KEY} from your environment, so the key stays out of the repo):

json
{  "mcpServers": {    "mimiq": {      "type": "http",      "url": "https://mcp.mimiqai.com/mcp",      "headers": { "Authorization": "Bearer ${MIMIQ_API_KEY}" }    }  }}

Leave out the header to use the free try.

Make it part of every change

Add these lines to your project's CLAUDE.md or AGENTS.md, and your agent checks a customer-facing change before it calls it done:

markdown
## Before calling a user-facing change doneAfter changing anything a user goes through (signup, onboarding, checkout,settings, a new feature), run mimiq.test_flow on the preview URL with the taska user would try. Fix what the agents hit, then run it again. Ask me beforeusing more than 25 credits.

Codex

In ~/.codex/config.toml (or .codex/config.toml in your project):

toml
[mcp_servers.mimiq]url = "https://mcp.mimiqai.com/mcp"bearer_token_env_var = "MIMIQ_API_KEY"

Cursor

In ~/.cursor/mcp.json or .cursor/mcp.json (do not commit a file with a key in it):

json
{  "mcpServers": {    "mimiq": {      "url": "https://mcp.mimiqai.com/mcp",      "headers": { "Authorization": "Bearer mq_sk_..." }    }  }}

VS Code (GitHub Copilot)

In .vscode/mcp.json; VS Code asks for the key once and stores it:

json
{  "inputs": [{ "type": "promptString", "id": "mimiq-key", "description": "Mimiq API key", "password": true }],  "servers": {    "mimiq": {      "type": "http",      "url": "https://mcp.mimiqai.com/mcp",      "headers": { "Authorization": "Bearer ${input:mimiq-key}" }    }  }}

Windsurf

In ~/.codeium/windsurf/mcp_config.json:

json
{  "mcpServers": {    "mimiq": {      "serverUrl": "https://mcp.mimiqai.com/mcp",      "headers": { "Authorization": "Bearer mq_sk_..." }    }  }}

Claude Desktop

Through mcp-remote, in the Claude Desktop config:

json
{  "mcpServers": {    "mimiq": {      "command": "npx",      "args": ["-y", "mcp-remote", "https://mcp.mimiqai.com/mcp", "--header", "Authorization:${MIMIQ_AUTH}"],      "env": { "MIMIQ_AUTH": "Bearer mq_sk_..." }    }  }}

Keys and the free try

  • Without a key, each agent gets one free test: one flow with up to 3 agents, while the daily free allowance lasts. Anything larger needs a key, and the tool says so before anything is spent.
  • Get a key: create a free account at www.mimiqai.com/sign-up (it includes 50 credits). Open Settings, find "Use Mimiq from your coding agent", and choose "Create a key". The key starts with mq_sk_ and is shown once.
  • Send it on every request as Authorization: Bearer mq_sk_... (X-API-Key: mq_sk_... works too). The setup snippets above do this.
  • Credits: an agent in a flow uses 5 credits. Buy more at www.mimiqai.com/app/usage: a one-time Starter of 120 credits for $9, or plans from $19 a month.

Signed-in pages and protected previews

Pass access to test_flow for a preview behind Vercel Deployment Protection (vercel_bypass), a browser password prompt (basic_auth) or pages behind a sign-in (login, a test account). The agents type placeholders; the real values are filled in only in the browser, kept apart from the test and deleted when the run ends, and never appear in results or reports. Access comes with paid credits.

Report links

With a key, every run is saved to your account, and the result ends with a link to it in the Mimiq app (/app/t/...). Put the link in your summary so your human can open the full report, the agents' steps and their screenshots. Reports are private until you share them from the app.

Without a key, runs stay private to the agent that ran them and cannot be opened in the app; the result says how to get a key instead.

What a run returns

  • Each agent's journey_steps: what it did at each step, where it was, and what it said.
  • Where each agent stopped and why: finished, got partway, or gave up.
  • The problems the agents hit, ranked by how many hit them, with the steps.
  • browser_caught: what the browser itself recorded on your site, grouped and ranked by how many agents hit each: JavaScript errors, requests that failed or answered 4xx or 5xx (including your hosted backend, such as Supabase or Firebase), and requests slower than 3 seconds. The summary card lists them too.
  • counts, a plain summary_card, and report_url (with a key).

Who the agents are

By default Mimiq builds agents who match who the app is for, from the page. Pass audience in plain words to choose ("freelance designers", "parents shopping for school shoes"). The run starts right away unless the recruited agents are wrong (more than 1 in 5 not the requested audience); then the result is status: "audience_review": show the warning, then continue with review_id, confirm_audience: true and audience_fit_acknowledged: true, or recruit again with review_id and audience_correction. In the app you can also build agents from your own customers (a CSV; names, emails and phone numbers are stripped before upload).

Localhost

Mimiq needs a public URL. For a local dev server, open a temporary tunnel with cloudflared (free, no account) and pass its URL. The page is public while the tunnel runs, so your agent should tell you before it opens one:

bash
cloudflared tunnel --url http://localhost:3000 > /tmp/mimiq_tunnel.log 2>&1 &sleep 5; grep -o 'https://[^ |]*trycloudflare.com' /tmp/mimiq_tunnel.log

Errors

Every error carries a code, a plain message and a request_id. Credit and key errors also carry how_to_get_a_key (the steps, the header and the .mcp.json).

CodeWhat it meansWhat to do
INSUFFICIENT_CREDITSreason says which: free_try_used, free_flow_too_big, free_flows_used_today, network_monthly_limit, or out_of_credits (with a key).Get a key, run fewer agents, or buy more credits.
UNAUTHORIZEDThe key was not accepted (invalid_key).Check it starts with mq_sk_ and is still listed in Settings.
INVALID_INPUTA missing field, or a URL Mimiq cannot reach (localhost, a private address).Fix the input; for localhost, use a tunnel.
SIM_FAILEDThe run failed, for example the page did not load. A failed run is refunded.Check the URL loads in a normal browser, then call again.
SIM_TIMEOUTThe run outlasted timeout_seconds. It keeps going on Mimiq's side.With a key, open the report link later; or call again with a longer timeout.
RATE_LIMITEDToo many calls from one network in a minute.Wait a minute.

Self-hosting

Against your own Mimiq API:

bash
cd mcp-hostedMIMIQ_API_URL=http://127.0.0.1:8000/api node src/server.js

Point your agent at http://127.0.0.1:8787/mcp.

VariableDefaultWhat it sets
MIMIQ_API_URLhttp://127.0.0.1:8000/apiThe Mimiq API
MIMIQ_APP_URLhttps://mimiqai.comWhere report links point
MIMIQ_MCP_PUBLIC_URLhttps://mcp.mimiqai.com/mcpThe URL shown in setup help
PORT / HOST8787 / 127.0.0.1Where this server listens. Behind a proxy, keep 127.0.0.1 and have the proxy set X-Real-IP (it identifies the caller's network for rate limits and the free try).
RATE_MAX_CALLS10Tool calls per network per minute
EMIC_API_KEYnoneTurns on submit_agent_feedback (hidden without it)
POSTHOG_API_KEYnoneUsage events

Development

ChatGPT account linking and inline reports

The plugin uses OAuth account linking with S256 PKCE. Existing API-key and keyless clients continue to work. Verified ChatGPT calls require an OAuth-linked account for tests; the backend remains responsible for credits and ownership. Use mimiq.show_report after a test finishes to render its saved report in an MCP Apps host. It reads the account's report without spending credits.

OAuth discovery is available at /.well-known/oauth-protected-resource and /.well-known/oauth-authorization-server. The authorization, registration, token and revocation routes live under /oauth/. A configured OPENAI_APPS_CHALLENGE is served verbatim at /.well-known/openai-apps-challenge; without it that route returns 404.

See deploy/plugin.env.example and deploy/openai-mtls.nginx.conf.example before enabling the ChatGPT integration. Trustworthy ChatGPT identification requires certificate verification at the existing proxy, with Node bound to loopback. Client name and User-Agent hints alone do not establish identity. The report HTML is checked in and self-contained, so serving it adds no runtime dependencies.

The OAuth HTTP test needs Python with fastapi and uvicorn; set MIMIQ_TEST_PYTHON if they are not in the default Python. Widget DOM tests use the parent web app's development jsdom dependency after root npm ci. Without these development dependencies, the corresponding tests explicitly skip. In the full Mimiq checkout, npm run widget:build rebuilds embedded fonts and scripts, npm run widget:check detects drift, and npm run widget:verify -- --screenshots runs browser checks and captures the three example reports. Browser capture needs root development dependencies and a working local Playwright browser.

Commands

bash
npm test                        # unit tests, the tools against a mocked APInpm run vendor                  # rebuild src/vendor/app-logic.js from the app (src/mimiq/lib)MIMIQ_API_URL=http://127.0.0.1:8000/api MIMIQ_E2E_API_KEY=mq_sk_... npm run e2e   # compare_copy end to end, 3 people./deploy.sh --dry               # what a deploy would sync (see deploy.sh)

src/vendor/app-logic.js is generated from the app's compare.ts, model.ts, readout.ts and names.ts; a test fails when it no longer matches them.

License

MIT

来源:README.md,提交 7fa92ad

工具

2

mimiq.show_report

Show a Mimiq report

Show the finished result of a saved Mimiq run: what the agents hit, where each stopped and why, and a link to the full report. Use the session ID from an earlier run or a report URL. Reads your account only and spends no credits.

输入参数session_id必填compare_session_id

mimiq.test_flow

Test a flow

Use this after you build or change anything a user goes through (signup, onboarding, checkout, settings, a new feature), on the preview or staging URL, and again after each fix. AI agents, each acting as one of the app's users, open it in their own real browser and try the task by clicking, typing and filling in forms (they get a working inbox for verification codes). They report what was broken, what did nothing, where they got stuck or gave up and why, with the step and a screenshot, and the problems ranked by how many agents hit them. Pass the URL and, as goal, the task a user would try in plain words. For a protected preview or pages behind a sign-in, pass access (a Vercel bypass secret, a username and password, or a test account). Each agent keeps going until it finishes the task or gets stuck, so a run takes a few minutes, longer for a long task; each agent uses 5 credits. It starts right away and the result includes the audience summary, examples and fit. If the recruited crowd is not the requested audience (more than 1 in 5 wrong) or the page could not be read to check its market, the result is an audience_review instead: show the warning, then continue with review_id, confirm_audience and audience_fit_acknowledged, or recruit again with audience_correction.

输入参数url必填goalcountaccessdevicesaudiencemax_stepsreview_idtimeout_secondsconfirm_audienceaudience_correctionaudience_fit_acknowledged

版本历史

6
  1. v0.5.1最新Oct 22, 2026
  2. v0.5.0Oct 22, 2026
  3. v0.4.2Oct 20, 2026
  4. v0.4.1Sep 28, 2026
  5. v0.4.0Sep 24, 2026
  6. v0.2.1Sep 16, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

其他 Find 集成