Skip to content

MCP Tools

The MCP daemon exposes 45+ tools organized into functional groups. All tools are available to any MCP-aware agent (Claude Code, Cursor, Kiro, Windsurf, …).

Install the agent playbook

The fastest way to learn the full toolset is to install @harness-fe/skill:

bash
npx @harness-fe/skill install

This drops a SKILL.md into your agent project with the complete tool catalog, mental model, decision flow, and usage examples.

Tool groups

Identity & topology

ToolDescription
tab.listList all known tabs with their project, session, and URL
project.listList all projects seen by the daemon
project.treeProject hierarchy (parent → child for micro-frontends)
dashboard.openReturn (and optionally open) the dashboard URL

Page interaction

ToolDescription
page.navigateNavigate to a URL in the active tab
page.clickClick an element by selector
page.typeType text into an element
page.scrollScroll the page or an element
page.screenshotCapture a screenshot (returns base64 PNG)
page.dom_queryQuery DOM elements and return their properties
page.evaluateRun arbitrary JS in the page context
page.wait_forWait for an element or condition
page.set_htmlReplace the innerHTML of an element
page.set_styleInject or override CSS
page.reloadReload the current page

Telemetry

ToolDescription
console.tailLast N console log entries (log/warn/error)
network.tailLast N network requests
network.getFull details of a single request by ID
ws.tailLast N WebSocket frames
ws.getFull details of a single WS frame
errors.tailLast N unhandled errors
session.tailRaw timeline slice — all event types
session.summarySession metadata + event counts
session.listList sessions for a project

Wait & idle

ToolDescription
network.wait_forWait for a network request matching a pattern
network.wait_for_idleWait until no in-flight requests remain

Replay & forensics

ToolDescription
session.recordings.listList rrweb recording chunks for a session
session.recordings.sliceReturn chunks overlapping a time window
session.replay.createBundle chunks into a shareable rrweb player URL

Source intelligence

ToolDescription
project.where_isLocate a component or source file — returns file path + line
project.sourceRead source files from the project tree
project.module_graphAST-derived component map for the project

Visitor journey

ToolDescription
visitor.listList known visitors
visitor.getVisitor metadata
visitor.journeyOrdered session chain for a visitor
visitor.timelineMerged cross-tab event timeline for a visitor

Project memory

ToolDescription
project.memory.setWrite a persistent key/value memory entry for a project
project.memory.getRead a memory entry
project.memory.listList all memory entries for a project
project.memory.deleteDelete a memory entry

Build & storage

ToolDescription
build.listList builds for a project
build.getBuild metadata

Selector syntax

Most page interaction tools accept a selector object:

jsonc
// By CSS
{ "css": "button.submit" }

// By component name (source-aware — requires build plugin)
{ "comp": "SubmitButton" }

// By source location
{ "loc": "src/components/SubmitButton.tsx:42" }

// By visible text
{ "text": "Submit order" }

// Combine for precision
{ "comp": "CartBadge", "css": "button" }

The comp: and loc: forms only work when the build plugin has instrumented the source.

Further reading

Released under the MIT License.