Maple MCP Server

Local setup required. This server has to be cloned and prepared on your machine before you register it in Claude Code.
1

Set the server up locally

Run this once to clone and prepare the server before adding it to Claude Code.

Run in terminal
npm install
npm run dev
2

Register it in Claude Code

After the local setup is done, run this command to point Claude Code at the built server.

Run in terminal
claude mcp add maple -- node "<FULL_PATH_TO_MCP>/dist/index.js"

Replace <FULL_PATH_TO_MCP>/dist/index.js with the actual folder you prepared in step 1.

README.md

Unified MCP server for agent observability, safety control, and behavior evolution.

Maple

Unified MCP server for agent observability, safety control, and behavior evolution.

Maple is the "Sentry + Git" layer for high-agency agents:

  • Observe every step
  • Replay/fork risky branches
  • Audit and intervene with guardrails
  • Learn from anonymized traces to evolve safer skills

Built with mcp-use + Apps SDK widgets.

What Is Implemented

1) Observability + Control

  • observe_session: capture and render timeline widget
  • replay_fork: branch from any step and simulate forward
  • audit_risk: rule + anomaly risk dashboard
  • guard_action: allow/block/pending with quarantine support
  • ingest_session_event: stream external bridge events into active trace

2) ML Anomaly Detection (Simple Embeddings)

  • ml_anomaly_report: embedding-based behavior outlier detection
  • Lightweight hash embeddings + cosine similarity baseline
  • Supports community baseline from anonymized shared traces

3) Network Effects

  • share_trace_anon: anonymize and publish trace patterns to shared pool
  • suggest_evolved_skills: generate evolved skill suggestions from shared traces
  • Behavior signatures + shared dataset create compound data advantage

4) YC App Layer (Moat / Traction / Revenue)

  • yc_app_brief: live YC-ready narrative generated from product metrics
  • Emphasizes:
    • Moat: trace + fork + risk label data flywheel
    • Traction: OpenClaw integration and safety intervention activity
    • Revenue: freemium ladder (Free, Pro $9, Team $29, Enterprise $99)

MCP Tools

  • observe_session
  • replay_fork
  • audit_risk
  • ml_anomaly_report
  • guard_action
  • ingest_session_event
  • share_trace_anon
  • suggest_evolved_skills
  • yc_app_brief
  • list_traces
  • export_trace

API Endpoints

  • GET /health
  • GET /judge (judge standalone page)
  • GET /api/traces
  • GET /api/traces/:traceId
  • GET /api/community/stats
  • GET /api/community/traces
  • GET /api/yc/brief?focus=full|moat|traction|revenue
  • GET /api/firewall/state
  • POST /api/firewall/chat
  • POST /api/firewall/decision (strict pre-execution allow/block gate)

Key Project Files

  • index.ts: tool + route orchestration
  • src/core/risk-engine.ts: rule engine + embedding anomaly integration
  • src/ml/embeddings.ts: simple embedding implementation
  • src/ml/anomaly-detector.ts: cosine-sim anomaly detection
  • src/network/anonymizer.ts: anonymized trace transformation
  • src/network/shared-trace-store.ts: community pool + skill suggestions
  • src/strategy/yc-narrative.ts: moat/traction/revenue narrative builder
  • resources/trace-timeline/widget.tsx
  • resources/replay-simulator/widget.tsx
  • resources/risk-dashboard/widget.tsx

Quick Start

npm install
npm run dev

Inspector: http://localhost:3000/inspector

Hardcoded Demo Stack (OpenClaw + Maple)

This repo now includes a one-command hardcoded demo setup:

  • OpenClaw gateway on ws://127.0.0.1:19001
  • OpenClaw bridge adapter on http://127.0.0.1:8787
  • Maple gateway auth disabled in this build
  • Bridge token generated at startup (or provided via env)
OPENCLAW_VERSION= npm run demo:install-openclaw
npm run demo:up

Then open:

  • Judge GUI: http://localhost:3000/judge
  • Inspector: http://localhost:3000/inspector

Guided Demo Mode (No Manual JSON)

The Judge GUI now has Guided Demo Controls so you can run the full flow without Inspector copy/paste:

  1. Open /judge and wait for auto-connect
  2. Click Run Full Flow

Or step through:

  1. 1) Start
  2. 2) Audit
  3. 3) Block
  4. 4) Fork

Judge page now includes Firewall Chat in Control view:

  • Ask natural-language questions ("status update", "why blocked?", "what should we do next?")
  • Chat replies are generated from live firewall context (/api/firewall/state)

This uses internal demo APIs:

  • POST /api/demo/start
  • POST /api/demo/audit
  • POST /api/demo/block
  • POST /api/demo/fork
  • POST /api/demo/full

demo:up also auto-opens both pages on macOS (set DEMO_OPEN_BROWSER=0 to disable).

Single-Trace Agent Action Logging (Hackathon)

For a reliable judge demo, run one stable trace and append every action to it.

npm run trace:demo

What this does:

  • Starts (or reuses) one trace for a stable sessionId
  • Logs all agent actions through POST /api/openclaw/events using the same traceId
  • Includes type, actor, prompt/message, command, url, toolName, and unique eventId
  • Runs a preflight firewall preview and logs Maple's block/allow message into the same trace

Open http://localhost:3000/judge, then select the printed trace ID to see #0, #1, #2....

If you want to integrate this into your own runtime, use:

  • scripts/maple-trace-logger.mjs
  • logAction(...) for generic events
  • logWebGet(...), logMarketplaceSearch(...), logMarketplaceToolCall(...) wrappers

Example:

import { createMapleTraceLogger } from "./scripts/maple-trace-logger.mjs";

const logger = createMapleTraceLogge

Tools (9)

observe_sessionCapture and render timeline widget for agent sessions.
replay_forkBranch from any step and simulate forward.
audit_riskRule and anomaly risk dashboard.
guard_actionAllow, block, or pending action with quarantine support.
ingest_session_eventStream external bridge events into active trace.
ml_anomaly_reportEmbedding-based behavior outlier detection.
share_trace_anonAnonymize and publish trace patterns to shared pool.
suggest_evolved_skillsGenerate evolved skill suggestions from shared traces.
yc_app_briefGenerate a live YC-ready narrative from product metrics.

Environment Variables

DEMO_OPEN_BROWSERControls if the demo browser opens automatically on macOS.

Configuration

claude_desktop_config.json
{"mcpServers": {"maple": {"command": "node", "args": ["/path/to/maple/index.js"]}}}

Try it

Observe the current agent session and render the timeline.
Run an audit on the recent agent actions to check for risk anomalies.
Fork the current agent branch to simulate a different outcome.
Generate a YC-ready narrative brief based on my current agent metrics.
Check for any anomalous behavior in the latest trace using the ML report tool.

Frequently Asked Questions

What are the key features of Maple?

Real-time agent session observability and timeline rendering. Risk-based action guardrails with quarantine support. Branching and replaying agent execution paths. ML-based anomaly detection using hash embeddings. Community-driven skill evolution via anonymized trace sharing.

What can I use Maple for?

Monitoring high-agency agents for safety and compliance. Debugging agent failures by replaying specific execution branches. Detecting anomalous agent behavior before it causes system damage. Generating performance and traction narratives for startup reporting. Collaboratively evolving agent skills through shared anonymized trace data.

How do I install Maple?

Install Maple by running: npm install && npm run dev

What MCP clients work with Maple?

Maple works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep Maple docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Need the old visual installer? Open Conare IDE.
Open Conare