Openclaude MCP README

The full upstream README, mirrored for reference. Install config, tool schemas, adoption signals and our own overview live on the Openclaude MCP listing page.

OpenClaude MCP Server

Just Ruff Python Biome FastMCP

πŸ“– Installation Guide β€” quick start, manual setup, and troubleshooting

A high-performance control plane for Ollama-based local LLM sessions, with background memory consolidation (KAIROS), hybrid cloud planning (ULTRAPLAN), and real-time fleet monitoring. Optimized for RTX 4090 environments.

Features

  • Background Memory (KAIROS): Auto-consolidates session data into MEMORY.md using asynchronous background cycles. Configurable poll interval and consolidation budget. State persists across restarts.
  • Session Management: Launch, prompt, monitor, and stop multiple OpenClaude subprocesses concurrently. Persistent across restarts with usage analytics (prompts, output chars, estimated tokens).
  • Multimodal Input: Send images (png, jpeg, webp, gif) alongside text instructions via the send_multimodal tool. Works with any vision-capable Ollama model.
  • Ollama Control Plane: Model management with VRAM/speed/context metadata, health checks, default persistence.
  • Hybrid Planning (ULTRAPLAN): Optional cloud Opus/Sonnet handoff for complex reasoning, local execution. Token cost tracking included.
  • Fleet Observability: React dashboard with real-time SSE push, xterm.js terminal, system log viewer, KAIROS status, interactive API playground.
  • Interactive Examples: Live "Run" buttons on every example β€” calls the real backend, shows response JSON with timing.
  • API Reference: Searchable documentation with parameter tables, return schemas, env vars, error codes for all 15 tools.
  • Safety Guardrails: Kid-safe mode with content filters, proactive privacy reminders, caregiver alerts (file + webhook).
  • Dual Transport: MCP SSE (Claude Desktop) + REST bridge (webapp/curl) on the same port.

Quick Start

powershell
git clone https://github.com/sandraschi/openclaude-mcp
cd openclaude-mcp
just

This opens an interactive dashboard showing all available commands. Run just bootstrap to install dependencies, then just serve or just dev to start.

Manual Setup

If you don't have just installed: .\setup.ps1 .\start.ps1

  • SSE Endpoint: http://localhost:10932/sse
  • Fleet Dashboard: http://localhost:10933
  • API Events: http://localhost:10932/api/events (SSE push)
  • Health API: http://localhost:10932/api/health Or with Docker: docker compose up

Available Tools (15)

ToolAction
start_sessionInitialize a new Ollama session
send_promptExecute a prompt in an active session
send_multimodalSend text + images to a session (png, jpeg, webp, gif)
session_statusGet output/status/usage/elapsed of a session
list_sessionsList all active sessions
stop_sessionStop and clean up a session
kairos_enableActivate background memory consolidation
kairos_disableHalt background memory consolidation
kairos_logRetrieve KAIROS consolidation log
list_modelsInventory of available Ollama models
set_default_modelSet default model for new sessions
model_statusCheck VRAM and load status
ultraplanHybrid cloud/local planning cycle
fleet_dashboardPrefab UI fleet status overview
fleet_statusRaw fleet status JSON
caregiver_alert[KID-SAFE] Notify caregivers of high-risk interaction

Architecture

Code
                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                    β”‚  Claude Desktop  │── SSE ──────┐
                    β”‚  Cursor / VSCode β”‚             β”‚
                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜             β”‚
                                                    β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  REST  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  stdio (NDJSON)  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  React Webapp│───────►│  server.py (FastMCP 3.2)   │◄────────────────│  OpenClaude CLI   β”‚
β”‚  (SSE push)  │◄───────│  + SessionStore             β”‚    subprocess    β”‚  (Node.js/Bun)    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜        β”‚  + ModelRouter              │◄───────────────►│  + Ollama :11434  β”‚
                        β”‚  + KairosController         β”‚                 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                        β”‚  + SessionPersistence       β”‚
                        β”‚  + SSE Event Bus            β”‚
                        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Configuration (env vars)

VariableDefaultDescription
OPENCLAUDE_MCP_PORT10932Backend port
OPENCLAUDE_MCP_TOKENβ€”REST auth token (disable if unset)
OPENCLAUDE_DIRD:\Dev\repos\external\openclaudeOpenClaude source path
OPENCLAUDE_ULTRAPLAN_MODELclaude-sonnet-4-6Anthropic model for ULTRAPLAN
OPENCLAUDE_CONFIG_DIR~/.config/openclaudePersistence directory
KAIROS_POLL_SECONDS30KAIROS daemon poll interval
KAIROS_MAX_CONSOLIDATIONS100Max consolidations per session
CAREGIVER_WEBHOOK_URLβ€”Webhook for caregiver alerts

Prerequisites

  • Ollama (running locally)
  • Node.js (v20+)
  • Python 3.13+ with uv
  • Local model pulled (e.g., gemma4:26b, qwen3.5:35b-a3b)

Test Suite

powershell
uv run pytest                    # 79 tests (unit + smoke + integration + e2e)
uv run pytest tests/unit/        # fast, no external deps
uv run pytest tests/e2e/         # Anthropic API mocked via respx

License

MIT