Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.inlace.co/llms.txt

Use this file to discover all available pages before exploring further.

Use Lace with your coding agent. When you log and approve a decision in the Decision Canvas, it becomes a scoped change request with evidence, spatial context, screenshots, and a suggested fix. The MCP server lets your coding agent pull those decisions, see exactly what needs to change, and write the code.
Claude Code querying Lace MCP for approved decisions

Get started

Install Lace MCP for your coding tool:
Install in CursorOr install from the terminal:
npx lace-mcp install cursor
Restart Cursor, then open a new chat and ask about approved Lace decisions.
The MCP server only works while the Lace desktop app is open and you’re signed in.

How it works

1

Log a decision

In the Decision Canvas, capture a screenshot, select UI elements, and approve a decision. It persists with the screenshot, spatial context, and comments.
2

Your agent queries Lace

It calls list_decisions, picks one, then calls apply_decision to get screenshots, targeting, and step-by-step instructions.
3

The agent ships the change

It writes the code change and you review the diff.

Technical reference

MCP server

The Lace MCP server is registered under the name lace and exposes three tools:

list_decisions

Returns all approved product decisions as a summary list. Parameters: none Returns:
FieldTypeDescription
idstringUnique decision identifier
headlinestringMain decision headline
insightHeadlinestring | nullThe specific insight that was approved
elementEidstring | nullElement ID within the UI
appNamestring | nullApplication where the decision applies
approvedAtstringISO timestamp of approval

get_decision

Returns full details for a single decision — the card, element targeting, bounding box, and inline screenshots. Use this for browsing and inspecting decisions. Parameters:
ParameterTypeDescription
idstringDecision ID from list_decisions
Returns:
FieldTypeDescription
idstringDecision identifier
cardobjectDecision card with headline, body, evidence, and insights
insightIndexnumberWhich insight was approved (index into card.insights)
elementEidstring | nullTarget element ID
bboxarray | nullNormalized bounding box [left, top, right, bottom] in 0-1 coordinates
screenobject{appName, windowTitle, shotId}
approvedAtstringISO timestamp
Screenshots (raw and annotated) are returned as inline JPEG images when available.

apply_decision

Returns everything needed to implement a decision: screenshots, the decision card, element targeting, and step-by-step implementation instructions. Call this instead of get_decision when your agent is implementing a change. Parameters:
ParameterTypeDescription
idstringDecision ID from list_decisions
Returns:
  • Annotated screenshot (JPEG, when available)
  • Raw screenshot (JPEG)
  • Implementation prompt with:
    • Decision card (headline, approved insight, suggested fix, evidence)
    • Target element (element ID, bounding box, screen info)
    • Step-by-step instructions to locate the element and implement the fix
    • Constraints on what not to modify

Config file locations

ToolConfig file
Claude Code~/.claude.json
Cursor~/.cursor/mcp.json
Codex CLI~/.codex/config.toml

Troubleshooting

The Lace desktop app must be open and signed in. Open the app and retry.
You need to approve nudges first. Open Lace, review the insight cards, and approve at least one.
Restart your coding tool fully (quit and reopen), then confirm the Lace server appears in your MCP settings.
Screenshots are stored locally alongside the Lace app data. If they were deleted or the app was reinstalled, the decision will still return card and targeting data but without images.