42 tools · one namespace · zero glue code

Your agent just gets it.

Kifas ships a first-party MCP server that turns your testing platform into a tool surface for Claude Code, Cursor, Windsurf, and any MCP-compliant client. Install once. Author tests, log into Gmail, save state, run on 120 browsers, read results — all from the same prompt.

Read the docs
42tools shipped
4first-class clients
110msp50 tool latency
0glue code lines
~/acme-web · kifas-mcp demo
# Install for your client of choice
$ npx @kifas/mcp@latest --install claude-code
→ Wrote ~/.claude/mcp.json
→ Authenticated as maya@acme.dev
→ Loaded 42 tools scoped to project: acme-web

$ claude /mcp
┌──────────────────────────────────────────┐
kifas
│ 42 tools · authenticated · ready │
│ ✓ workflow.* (8) │
│ ✓ auth.*, state.* (10) │
│ ✓ browser.*, device.* (7) │
│ ✓ run.* (9) │
│ ✓ inbox.* (4), tunnel.* (4) │
└──────────────────────────────────────────┘
claude > "Test our checkout. New Gmail user,
promo GUMBO20, verify the total. iPhone 16."


→ Kifas: workflow.create("checkout-promo") ✓
→ Kifas: device.spawn("iphone-16") 820ms
→ Kifas: auth.add("gmail", "qa+test@acme.dev")
→ Kifas: workflow.add_node("auth") ✓
→ Kifas: workflow.add_node("action", ai_explore: true)
→ Kifas: workflow.add_node("assert", response: "/api/orders")
→ Kifas: workflow.connect(...) 7 edges drawn

Workflow saved: checkout-promo@0.1.0
claude > "Run it. Tell me the order total."

→ Kifas: workflow.run("checkout-promo@0.1.0")
· 14 nodes · iPhone 16 · iOS 18.2
· spawned in 820ms
· ai.step compiled to getByRole+tap
· order.status = 200
· order.total = $43.39 · passed in 4.2s

Run r_a8f29 · trace at app.kifas.io

// Compiled spec written to:
// tests/checkout-promo.spec.ts
First-class clients

One install command. Pick your stack.

We ship maintained installers for the four MCP clients most teams already run. Manual config takes 30 seconds for everything else.

C
Claude Code
Anthropic's terminal agent. The one we built it for first.
npx @kifas/mcp --install claude-code
Cursor
IDE agent — tools surface in the chat panel.
npx @kifas/mcp --install cursor
W
Windsurf
Codeium's flow-state agent. Cascade-ready.
npx @kifas/mcp --install windsurf
+
Anything else
Drop the manual config block into your client's mcp.json.
see the manual config →docs
Tool reference

42 tools, organised the way an agent would ask.

Every Kifas primitive is reachable from MCP with the same shape it has in the SDK. No proprietary names, no surprise verbs.

Workflow 8
Auth + state 10
Devices 7
Run control 9
Inboxes 4
Tunnel 4
workflow.create(name → workflow_id)
Create an empty workflow.
workflow.add_node(type, primitive, ai_explore?)
Add a typed node. Returns node_id.
workflow.connect(from, to, label?)
Draw an edge between two nodes.
workflow.run(workflow_id, env?, parallels?)
Run a workflow. Returns run_id and stream URL.
workflow.publish(workflow_id, version)
Tag a semver, lock as name@version.
workflow.diff(a, b)
Three-way diff between two workflow revisions.
workflow.read(workflow_id)
Return the canonical JSON for an existing workflow.
workflow.delete(workflow_id)
Soft-delete (recoverable for 30 days).
Prompt patterns

Talk to your test infra like a teammate.

A short library of prompts that work well with Kifas's tool surface. Steal liberally.

Test what I just shipped

"Look at my last commit. Write Kifas tests covering the new behavior. Run them. Report which fail."
reads diff · drafts 4 workflows · runs in parallel · 3 passed, 1 failed

Reproduce a flake

"Workflow 'checkout-regress' has 4% flake. Run 50 in parallel, find the failing step, propose a fix."
run.flake_score · 50 parallel · isolated to step 7 race condition

Mass-author from a spec

"Read /docs/checkout.md. For each user story, build a Kifas workflow. Run on iPhone 16 and Pixel 9."
12 workflows authored · 24 runs · grouped 3 likely root causes

Hand the keyboard to your agent.

Free tier, generous MCP quota. The first green agent-authored run takes under 3 minutes.

Start freeRead the MCP docs