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.
~/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) │
└──────────────────────────────────────────┘
$ 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 > "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
→ 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
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.