mcpField
F
five46

five46

Local
github.comDeveloper Tools3Updated 1w ago

About five46

five46 is a locally run AI agent for developers who want to check a browser flow or API in plain English and receive a pass/fail verdict. Successful runs produce standalone Playwright or `node:test` specs; it also supports CI, a GitHub Action, and MCP.

Key features

  1. 01Plain-English browser and API checks
  2. 02Pass/fail reports with failure hypotheses
  3. 03Standalone Playwright or `node:test` specs
  4. 04Read-only API checks by default
  5. 05CI and GitHub Action support
  6. 06Assertion verification and repeat runs

Use cases

  1. 01Check a feature before writing tests
  2. 02Run acceptance criteria against a PR preview
  3. 03Turn a successful check into a regression test

MCP support

An MCP server lets IDE assistants run five46 checks as an MCP tool.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"sekharsdet-five46": {
"command": "npx",
"args": [
"-y",
"five46"
],
"env": {
"FIVE46_LLM_PROVIDER": "<FIVE46_LLM_PROVIDER>",
"FIVE46_LLM_API_KEY": "<FIVE46_LLM_API_KEY>",
"FIVE46_MCP_ALLOW_WRITES": "<FIVE46_MCP_ALLOW_WRITES>",
"FIVE46_MCP_ALLOW_DELETES": "<FIVE46_MCP_ALLOW_DELETES>",
"FIVE46_MCP_CONCURRENCY": "<FIVE46_MCP_CONCURRENCY>"
}
}
}
}
Run commandnpx -y five46
Environment variables to set
FIVE46_LLM_PROVIDERLLM provider to use: openai, anthropic, gemini, groq, or bedrock
FIVE46_LLM_API_KEYSecretYour own API key for the chosen provider (for bedrock, your AWS region instead)
FIVE46_MCP_ALLOW_WRITESSet to 1 to unlock POST/PUT/PATCH for the five46_api tool (read-only by default)
FIVE46_MCP_ALLOW_DELETESSet to 1 to unlock DELETE (five46_api) and destructive-looking browser clicks (five46_test)
FIVE46_MCP_CONCURRENCYMax concurrent scenarios for story mode (default: 2 for five46_test, 3 for five46_api; hard-capped at 5)

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npmfive460.2.3

Tools

2

Saved tool list · updated 2w ago

ParameterTypeRequiredDescription
urlstringYesThe live http(s) or file:// URL to test
goalstringNoWhat the agent should accomplish — provide exactly one of `goal`/`story`. A vague goal would burn real BYOK cost on an unfocused run.
storystringNoA raw, possibly multi-scenario user story/acceptance-criteria text to split into independent goals and run with bounded concurrency (see `concurrency` context, set via FIVE46_MCP_CONCURRENCY on the server, never a per-call argument). Mutually exclusive with `goal` — provide exactly one.
headedbooleanNoWatch it drive a real visible browser instead of headless (default false)
maxStepsintegerNoStep budget (default 15, hard-capped at 50 regardless of what is passed)
storageStatePathstringNoRelative path (under the configured project root) to a session file previously captured by `five46 login` — starts the browser already authenticated

Details

From the project README

five46

npm version npm downloads CI license: MIT node

Say what should work, in plain English. An AI agent checks it against your real app or API, using your own LLM key, and hands you a real Playwright test.

five46 driving a real browser through a login, add-to-cart, and checkout flow, then confirming the order was placed

You just built something and want to know whether it actually works, before writing a test. Give five46 a goal like "log in and confirm the dashboard loads" or "create a user via POST, then confirm it via GET". An LLM (OpenAI, Anthropic, Gemini, Groq or AWS Bedrock, with your key) drives your real app or API one action at a time. It tells you honestly whether the goal was met, with a root-cause hypothesis when it wasn't. A successful run is saved as a standalone Playwright (or node:test) spec, so today's check becomes tomorrow's regression test, and running it needs no five46 or LLM.

Quick start

npm install -g five46
npx playwright install chromium   # one-time browser download
five46 config                     # pick a provider and paste a key (Gemini's is free)
five46 doctor                     # confirms the key works
five46 test http://localhost:3000 --goal "log in as [email protected] and confirm the dashboard says Welcome back"

You get a pass or fail (and a matching exit code), a report with screenshots and, for failures, a root-cause hypothesis, plus a five46-agent-*.spec.ts you can commit and run with npx playwright test. Testing an API instead? Use five46 api <base-url> --goal "...". It's read-only unless you pass --allow-writes.

Status: early and actively developed. Verified end-to-end against dozens of real-world sites and APIs.

Check every pull request

The five46 GitHub Action reads the Acceptance criteria section of a pull request's description and checks each item against the PR's preview deployment. It keeps one PR comment up to date with the verdict per criterion, why each failure failed, and a ready-to-commit spec for every criterion that passed.

on: deployment_status   # Vercel, Netlify and other preview deploys
jobs:
  five46:
    if: github.event.deployment_status.state == 'success'
    runs-on: ubuntu-latest
    permissions: { contents: read, pull-requests: write }
    steps:
      - uses: sekharsdet/five46-action@v1
        with:
          url: ${{ github.event.deployment_status.target_url }}
          api-key: ${{ secrets.FIVE46_API_KEY }}

How it compares

five46Playwright Test Agentsplaywright codegenCloud AI testing platforms
You provideA goal or acceptance criteria in plain EnglishA seed test and a request, inside an AI coding toolYour own clicksTest descriptions in their app
RunsCLI, CI, GitHub Action or MCP toolInside an AI coding tool, such as VS CodeLocally, while you clickTheir cloud
Built to give a pass/fail verdict on the appYes, with a root-cause hypothesisNot its focus: it generates and repairs testsNoYes
API testingYes (node:test output)Browser-focusedNoVaries
Proves assertions catch failuresYes (--verify mutation check)No built-in checkNoVaries
LLM and costYour key, any of 5 providersYour coding agent's modelNoneTheir subscription
Your app data goes toOnly your LLM providerYour coding agent's providerNowhereTheir platform
OutputPlain Playwright or node:test filesPlain Playwright filesPlain Playwright filesUsually their runner

Already working in an AI coding tool and growing a Playwright suite there? Playwright's own agents are a great fit, especially the healer for keeping existing tests green. five46 is for getting a verdict: is this feature working right now, in CI or on a PR, for a browser flow or an API, with any LLM you already pay for. More detail is in Why five46.

Highlights

  • Safe by default. API runs are read-only unless you unlock writes; destructive-looking clicks ("Delete account") are blocked unless allowed.
  • Login credentials never reach the LLM. It sees placeholders, and the real values are filled in locally. Log in once, then reuse the session.
  • Acceptance criteria in, verdicts out. --story splits a user story or ticket into independent scenarios and reports pass/fail per criterion.
  • Specs you can trust. --verify-clean-session re-runs the spec cold; --verify mutates its assertions and requires them to fail.
  • Works with any current key. If your provider retires a model, five46 finds a current one your key can use. You can also pin one with FIVE46_LLM_MODEL.
  • Fits your tools. CI-friendly exit codes, --report JSON for dashboards, flaky-run detection (--repeat), video recording, and an MCP server for IDE assistants.

Docs

  • Configuration: providers, getting a key, five46 doctor, choosing models
  • CLI reference: every command and flag, login sessions, API testing, story mode, verification, reports
  • MCP server: use five46 from an IDE-embedded AI assistant
  • Security model: what leaves your machine, what five46 guards, and what's your call
  • Why five46: design choices, the full feature list, comparisons
  • CHANGELOG

Known limitations

  • No closed shadow DOM traversal. Elements inside a mode: "closed" shadow root aren't visible to the agent's page snapshot (a closed shadow root is deliberately inaccessible to external tooling in general, not just five46). Open shadow roots, the overwhelming majority of real-world web components, work fine, as do <iframe> and <frame> content.
  • Chromium only for browser mode, with no Firefox or WebKit yet.
  • A run itself is not deterministic. The same goal against the same page can take a different path next time. The generated spec is the frozen, repeatable artifact.

Contributing

Issues and pull requests are welcome. See CONTRIBUTING.md.

git clone https://github.com/sekharsdet/five46.git
cd five46
npm install
npm run build
node dist/cli.js test <url> --goal "..."
npm test

If five46 is useful to you, a ⭐ on GitHub helps other people find it.

License

MIT

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.