Integrations
Trace is the evidence layer — other Molar products produce traces; Trace consumes, displays, and shares them. Third-party tools connect via CI ingest, GitHub App, Slack unfurl, and the public MCP surface.
Molar platform
Guard + Mender (native)
Note:
Guard captures traces on every check. You can also ingest bundles manually or via Cartographer runners.
| Direction | Behavior |
|---|---|
| Trace → Guard | Overview links to source check /checks/{id} |
| Trace → Mender | Promote to fix on confirmed diffs |
Setup: Enable trace capture in Guard project settings when auto-capture ships (default on for new projects). Today: @molar/trace-capture on Cartographer runners or POST /v1/traces/ingest.
Deep link: GitHub check annotation → trace.molar.it/traces/{id} with failure step selected.
Tag line: failure → trace → mender.
Cartographer (agent runs)
| Direction | Behavior |
|---|---|
| Cartographer → Trace | Agent crawl runs emit agent.thought / agent.action on AGENT ribbon |
| Trace → Cartographer | "Open agent run" from source metadata when run_type=cartographer |
Cartographer exports Playwright tests from discovered flows; Guard runs those tests; Trace captures the Guard execution. Cartographer itself can also emit traces during exploratory crawls.
Capture is provided by the @molar/trace-capture package — installed with the CLI and Guard runner.
Clones (state panel)
| Direction | Behavior |
|---|---|
| Clones → Trace | clone.state events at step boundaries; world snapshots for Layer 2 |
| Trace → Clones | Open in Clones from inspector → /sessions/{runId} |
Trace shows what each clone returned during the run. Layer 2 replay calls POST /api/clones/world/restore — impossible without Molar-owned simulators.
Molar dashboard (app.molar.it)
- One sign-in across Guard, Cartographer, Clones, and Trace
- App switcher and shared run history
- Central hub: recent failures, shortId search — deep links into Trace
- Billing and usage on one invoice for bundle orgs
MCP at api.molar.it/mcp exposes Trace tools alongside Cartographer, Guard, and Clones — see the capability manifest at docs.molar.it/.well-known/molar-capabilities.json.
CI systems
Bring your own Playwright suite
// playwright.config.ts
export default {
reporter: [
["list"],
["@molar/reporter/playwright", { token: process.env.MOLAR_TOKEN }],
],
};
Your existing tests, retries, fixtures, reporters, teardown, and exit status remain authoritative. Molar observes completed results and promotes redacted NDJSON, Playwright trace ZIPs, and attachments into a linked Trace + Guard run. Upload failure is bounded and cannot turn a passing suite red or a failing suite green.
Install:
npm install --save-dev @molar/reporter
export MOLAR_TOKEN=molar_pat_xxx
The PAT or service token must include mcp:write; the control plane narrows that
grant to Cartographer's internal traces:write capability at ingest.
Bring your own Cypress suite
// cypress.config.ts
import { defineConfig } from "cypress";
import { installMolarCypress } from "@molar/reporter/cypress";
export default defineConfig({
e2e: {
setupNodeEvents(on, config) {
return installMolarCypress(on, config);
},
},
});
The adapter uses Cypress's Node-side after:spec / after:run lifecycle,
preserves the exact configuration object, skips non-executed tests, and attaches
screenshots/video when present. Parallel Cypress machines each promote only the
spec results they actually executed.
Both adapters default to https://api.molar.it/api/v1/traces/ingest. Override
with MOLAR_TRACE_INGEST_URL for self-hosted Molar. The endpoint accepts PAT or
service bearer authentication and creates the canonical Trace + synthetic Guard
run; there is no separate reporter-only result store.
GitHub Actions
Pattern:
- Guard action or
molar runcompletes - Workflow uploads trace bundle OR relies on automatic cloud capture
gh pr commentwith traceshort_idlink- Check run annotation includes "Open trace"
Example annotation URL: https://app.molar.it/r/xY9zQ2mNp
GitHub App
| Capability | Used by |
|---|---|
| PR check annotations | Guard → Trace link |
| Status on promote | Mender PR creation |
Important: Debugger uses the GitHub App installation token — not the user's login OAuth token. Prevents confused-deputy when user OAuth would be over-scoped.
Install: Org settings → Integrations → GitHub → select repos.
Slack
| Feature | Behavior |
|---|
Configure when shipped: Trace settings → Integrations → Slack → OAuth to workspace.
Linear / Jira
No native bi-directional sync in v1 — use public share links:
- Share modal →
public-read, 7-day expiry, hide Debugger - Paste
https://app.molar.it/r/{shortId}into ticket - Embed mode:
/r/{shortId}/embedfor iframe in Linear document
MCP (coding agents)
Endpoint: https://api.molar.it/mcp (OAuth 2.1 + PKCE)
Scopes:
| Scope | Allows |
|---|---|
mcp:trace:read | list_traces, get_trace, read events |
mcp:debug | Debugger context attachment |
mcp:run | Layer 2 replay trigger (with confirmation) |
Claude Code / Cursor install:
{
"mcpServers": {
"molar": {
"url": "https://api.molar.it/mcp",
"auth": "oauth"
}
}
}
Solo dev: PAT or static org token on standalone Cartographer MCP (local only — not production).
Agent workflow example:
- CI fails → agent receives
short_idin check output get_trace→ signed URLs + failure summarymolar_debug_run→ ask "why did step 7 fail?"- Engineer patches locally →
molar_replay_tracefrom step 6 - Human promotes to Mender
External observability
Trace captures synthetic test runs with Clone state and Layer 2 — complement your existing monitoring stack. Export of trace summary.json via webhook is available from the Trace API.
For production incidents, link Guard prod-monitor traces — same viewer, source=schedule.
EU data residency
Pin workspace to eu-west-1 (Team+): workers, S3 bucket, and Debugger API calls stay in-region (. Share links still work globally but data at rest remains EU when enabled.
Integration checklist
| Step | Action |
|---|---|
| 2 | Install GitHub App for Debugger source reads |
| 3 | Mint org API key for CI ingest (traces:write) |
| 5 | Register MCP OAuth for agent IDE |
| 6 | Verify Clones registered for scenarios needing Layer 2 |
See Quick start and Workers & ingestion for pipeline details.