elvatis-mcp
Officialelvatis-mcp is an MCP server that connects AI clients to smart home control, memory, cron automation, OpenClaw orchestration, and multi-LLM sub-agent tools.
Smart home: read entity states, control lights, Tado thermostats, Hue scenes, Roborock vacuum, sensors, and Home Assistant automations.
Memory: write, read, and search daily memory logs on the OpenClaw server.
Cron automation: list, trigger, create, edit, delete, and inspect cron jobs and their history.
AI sub-agents: run tasks via Claude, Gemini, Codex, local LLMs, or the OpenClaw agent, with session resume and rate limiting.
Prompt orchestration: split complex prompts into sub-tasks and execute them across agents in dependency order.
System management: health-check all services, manage local LLM models, view OpenClaw logs, transfer files, run remote shell/Docker/systemd commands, deploy services, and manage a llama.cpp server.
Notifications: send messages via WhatsApp, Telegram, or the last-used channel.
Allows sending prompts to Google Gemini via local CLI for long-context, multimodal tasks and research.
Provides tools for smart home control via Home Assistant, including reading entity states, controlling lights, thermostats, scenes, vacuum, sensors, and automations.
Supports local LLMs via Ollama as a backend for free, private inference, useful for classification, formatting, and extraction.
Allows sending coding tasks to OpenAI Codex via local CLI for debugging, file editing, and shell scripts.
Allows sending notifications via Telegram through the OpenClaw notification system.
Allows sending notifications via WhatsApp through the OpenClaw notification system.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@elvatis-mcp turn off the living room lights"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
elvatis-mcp
MCP server for OpenClaw -- expose your smart home, memory, cron automation, and AI sub-agent orchestration to Claude Desktop, Cursor, Windsurf, and any MCP-compatible AI client.
What is this?
elvatis-mcp connects Claude (or any MCP client) to your infrastructure:
Smart home control via Home Assistant (lights, thermostats, vacuum, sensors)
Memory system with daily logs stored on your OpenClaw server
Cron job management and triggering
Multi-LLM orchestration through 5 AI backends: Claude, OpenClaw, Google Gemini, OpenAI Codex, and local LLMs
Smart prompt splitting that analyzes complex requests, routes sub-tasks to the right AI, and executes the plan with rate limiting
The key idea: Claude is the orchestrator, but it can delegate specialized work to other AI models. Coding tasks go to Codex. Research goes to Gemini. Simple formatting goes to your local LLM (free, private). Trading and automation go to OpenClaw. prompt_split figures out the routing automatically, and prompt_split_execute runs the plan with rate limiting on cloud agents.
Related MCP server: hass-mcp-server
What is MCP?
Model Context Protocol is an open standard by Anthropic that lets AI clients connect to external tool servers. Once configured, Claude can directly call your tools without copy-pasting.
Multi-LLM Architecture
You (Claude Desktop / Code / Cursor)
|
MCP Protocol (stdio/HTTP)
|
elvatis-mcp server
|
+--------+--------+--------+--------+--------+--------+
| | | | | | |
Claude OpenClaw Gemini Codex Local llama Home
(CLI) (SSH) (CLI) (CLI) LLM .cpp Asst.
| | | | (HTTP) (proc) (REST)
Reason Plugins 1M ctx Coding | | |
Write Trading Multi- Files LM Stu Turbo- Lights
Review Auto. modal Debug Ollama Quant Climate
Notify Rsch Shell (free!) cache VacuumSub-Agent Comparison
Tool | Backend | Transport | Auth | Best for | Cost |
| Claude (Anthropic) | Local CLI | Claude Code login | Complex reasoning, writing, code review. For non-Claude MCP clients. | API usage |
| OpenClaw (plugins) | SSH | SSH key | Trading, automations, multi-step workflows | Self-hosted |
| Google Gemini | Local CLI | Google login | Long context (1M tokens), multimodal, research | API usage |
| OpenAI Codex | Local CLI | OpenAI login | Coding, debugging, file editing, shell scripts | API usage |
| LM Studio / Ollama / llama.cpp | HTTP | None | Classification, formatting, extraction, rewriting | Free |
Session Resume
claude_run, gemini_run, and codex_run use CLI session resume to eliminate cold-start overhead. On the first call a new session is created; subsequent calls resume it so the model receives only the new message instead of re-processing the full conversation history.
Metric | Without session resume | With session resume |
Prompt size per request | 18-25 KB | <1 KB (new message only) |
Claude Sonnet response time | 80-120s (50% hang rate) | 5-10s |
Silent hang rate | ~50% | Near 0% |
Sessions are persisted to ~/.openclaw/cli-bridge/cli-sessions.json and expire after 2 hours of inactivity or 50 requests. The session_id is returned in every response so you can inspect which session was used.
Smart Prompt Splitting
The prompt_split tool analyzes complex prompts and breaks them into sub-tasks:
User: "Search my memory for TurboQuant notes, summarize with Gemini,
reformat as JSON locally, then save a summary to memory"
prompt_split returns:
t1: openclaw_memory_search -- "Search memory for TurboQuant" (parallel)
t3: local_llm_run -- "Reformat raw notes as clean JSON" (parallel)
t2: gemini_run -- "Summarize the key findings" (after t1)
t4: openclaw_memory_write -- "Save summary to today's log" (after t2, t3)Use prompt_split_execute to run the plan automatically, or let Claude execute it step by step. Tasks run in dependency order with parallel groups executed concurrently. Three analysis strategies:
Strategy | Speed | Quality | Uses |
| Instant | Good for clear prompts | Keyword matching, no LLM call |
| 5-30s | Better reasoning | Your local LLM analyzes the prompt |
| 5-15s | Best quality | Gemini-flash analyzes the prompt |
| Varies | Best available | Short-circuits simple prompts, then tries gemini -> local -> heuristic |
Available Tools (34 total)
Home Assistant (7 tools)
Tool | Description |
| Read any Home Assistant entity state |
| Control lights: on/off/toggle, brightness, color temperature, RGB |
| Control Tado thermostats: temperature, HVAC mode |
| Activate Hue scenes by room |
| Control Roborock vacuum: start, stop, dock, status |
| Read all temperature, humidity, and CO2 sensors |
| List, trigger, enable, or disable HA automations |
Memory (3 tools)
Tool | Description |
| Write a note to today's daily log |
| Read today's memory log |
| Search memory files across the last N days |
Cron Automation (7 tools)
Tool | Description |
| List all scheduled OpenClaw cron jobs |
| Trigger a cron job immediately by ID |
| Get scheduler status and recent run history |
| Create a new cron job (cron expression, interval, or one-shot) |
| Edit an existing cron job (name, message, schedule, model) |
| Delete a cron job by ID |
| Show recent execution history for a cron job |
OpenClaw Agent (4 tools)
Tool | Description |
| Send a prompt to the OpenClaw AI agent (all plugins available) |
| Check if the OpenClaw daemon is running |
| List all installed plugins |
| Send a notification via WhatsApp, Telegram, or last-used channel |
AI Sub-Agents (5 tools)
Tool | Description |
| Send a prompt to Claude via the local CLI. For non-Claude MCP clients (Cursor, Windsurf). |
| Send a prompt to Google Gemini via the local CLI. 1M token context. |
| Send a coding task to OpenAI Codex via the local CLI. |
| Send a prompt to a local LLM (LM Studio, Ollama, llama.cpp). Free, private. Supports streaming. |
| Start/stop/configure a llama.cpp server with TurboQuant cache support. |
System Management (4 tools)
Tool | Description |
| Health check all services at once with latency (HA, SSH, LLM, CLIs) |
| List, load, or unload models on LM Studio / Ollama |
| View gateway, agent, or system logs from the OpenClaw server |
| Upload, download, or list files on the OpenClaw server via SSH |
Routing and Orchestration (3 tools)
Tool | Description |
| Show routing guide. Pass a task to get a specific tool recommendation. |
| Analyze a complex prompt, split into sub-tasks with agent assignments. |
| Execute a split plan: dispatch subtasks to agents in dependency order with rate limiting. |
Dashboard
Endpoint | Description |
| Auto-refreshing HTML dashboard (service health, loaded models) |
| JSON API for programmatic status checks |
Test Results
All tests run against live services (LM Studio with Deepseek R1 Qwen3 8B, OpenClaw server via SSH).
elvatis-mcp integration tests
Local LLM (local_llm_run)
Model: deepseek/deepseek-r1-0528-qwen3-8b
Response: "negative"
Tokens: 401 (prompt: 39, completion: 362)
PASS local_llm_run: simple classification (21000ms)
Extracted: {"name":"John Smith","age":34}
PASS local_llm_run: JSON extraction (24879ms)
Error: Could not connect to local LLM at http://localhost:19999/v1/chat/completions
PASS local_llm_run: connection error handling (4ms)
Prompt Splitter (prompt_split)
Strategy: heuristic
Agent: codex_run
Summary: Fix the authentication bug in the login handler
PASS prompt_split: single-domain coding prompt routes to codex (1ms)
Strategy: heuristic
Subtasks: 3
t1: codex_run -- "Refactor the auth module"
t2: openclaw_run -- "check my portfolio performance and"
t3: home_light -- "turn on the living room lights"
Parallel groups: [["t1","t3"],["t2"]]
Estimated time: 90s
PASS prompt_split: heuristic multi-agent splitting (0ms)
Subtasks: 4, Agents: openclaw_memory_write, gemini_run, local_llm_run
Parallel groups: [["t1","t3","t4"],["t2"]]
PASS prompt_split: cross-domain with dependencies (1ms)
Strategy: local->heuristic (fallback)
Subtasks: 1
PASS prompt_split: local LLM strategy (with fallback) (60007ms)
Routing Guide (mcp_help)
Guide length: 2418 chars
PASS mcp_help: returns guide without task (0ms)
Recommendation: local_llm_run (formatting task)
PASS mcp_help: routes formatting task to local_llm_run (0ms)
Recommendation: codex_run (coding task)
PASS mcp_help: routes coding task to codex_run (0ms)
Memory Search via SSH (openclaw_memory_search)
Query: "trading", Results: 5
PASS openclaw_memory_search: finds existing notes (208ms)
-----------------------------------------------------------
11 passed, 0 failed, 0 skipped
-----------------------------------------------------------Run the tests yourself:
npx tsx tests/integration.test.tsPrerequisites: .env configured, local LLM server running, OpenClaw server reachable via SSH.
Benchmarks
See BENCHMARKS.md for the full benchmark suite, methodology, and community contribution guide.
Reference Hardware
Component | Spec |
CPU | AMD Threadripper 3960X (24 cores / 48 threads) |
GPU | AMD Radeon RX 9070 XT Elite (16 GB GDDR6) |
RAM | 128 GB DDR4 |
OS | Windows 11 Pro |
Runtime | LM Studio + Vulkan ( |
Local LLM Inference (LM Studio, Vulkan GPU, --gpu max)
Median of 3 runs, max_tokens=512. Tasks: classify (1-word sentiment), extract (JSON), reason (arithmetic), code (Python function). Vulkan is the recommended runtime for AMD RX 9070 XT (wins 4 of 5 models over ROCm).
Model | Params | classify | extract | reason | code | avg tok/s |
Phi 4 Mini Reasoning | 3B | 2.6s | 1.9s | 4.7s | 4.8s | 106 |
Deepseek R1 0528 Qwen3 | 8B | 3.0s | 6.5s | 7.2s | 7.4s | 70 |
Qwen 3.5 9B | 9B | 6.2s | 4.0s | 8.4s | 7.2s | 48 |
Phi 4 Reasoning Plus | 15B | 0.4s | 9.7s | 3.5s | 9.9s | 40 |
GPT-OSS 20B | 20B | 0.6s | 0.6s | 0.6s | 1.9s | 63 |
GPU speedup vs CPU (Deepseek R1 8B, Vulkan): classify 7.2x faster, extract 3.8x faster.
Sub-Agent Comparison (same task, different backends)
Agent | Backend | Avg Latency | Cost | Notes |
local_llm_run | GPT-OSS 20B (Vulkan GPU) | 1.0s | Free | 4x faster than Codex, 6x faster than Claude |
codex_run | OpenAI Codex CLI | 4.1s | Pay-per-use | Best for coding tasks |
claude_run | Claude Sonnet 4.6 | 6.3s (5-10s with session resume) | Pay-per-use | Best for complex reasoning |
gemini_run | Gemini 2.5 Flash | 34.0s | Free tier | CLI startup overhead, best for long context |
Service Latency (system_status)
Service | Latency | Notes |
Home Assistant (REST API) | 48-84 ms | Local network, direct HTTP |
OpenClaw SSH | 273-299 ms | LAN SSH + command execution |
Local LLM (model list) | 19-38 ms | LM Studio localhost API |
Claude CLI (version check) | 472-478 ms | CLI startup overhead |
Codex CLI (version check) | 131-136 ms | CLI startup overhead |
Gemini CLI (version check) | 4,700-4,900 ms | CLI startup + auth check |
prompt_split Accuracy (heuristic strategy)
Metric | Result |
Pass rate | 10/10 (100%) |
Task count accuracy | 10/10 (100%) |
Avg agent match | 100% |
Latency | <1ms (no LLM call) |
Improvements in v0.8.0+: word boundary regex matching, comma-clause splitting for multi-agent prompts, per-tool routing rules, openclaw_notify routing. See BENCHMARKS.md for the full test corpus.
Want to contribute benchmarks from your hardware? See BENCHMARKS.md.
Requirements
Node.js 18 or later
OpenSSH client (built-in on Windows 10+, macOS, Linux)
A running OpenClaw instance accessible via SSH
A Home Assistant instance with a long-lived access token
Optional (for sub-agents):
claude_run:npm install -g @anthropic-ai/claude-codeand runclaudeonce to authenticategemini_run:npm install -g @google/gemini-cliandgemini auth logincodex_run:npm install -g @openai/codexandcodex loginlocal_llm_run: any OpenAI-compatible local server:
Installation
Install globally:
npm install -g @elvatis_com/elvatis-mcpOr use directly via npx (no install required):
npx @elvatis_com/elvatis-mcpEvery release is built and published by GitHub Actions from a pushed v* tag,
out of the exact commit that tag names.
SECURITY.md sets out what that path does and
does not guarantee, and how to verify a version you have installed.
CHANGELOG.md records what each release contains.
Where Can I Use It?
elvatis-mcp works in every MCP-compatible client. Each client uses its own config file.
Client | Transport | Config file |
Claude Desktop / Cowork (Windows MSIX) | stdio |
|
Claude Desktop / Cowork (macOS) | stdio |
|
Claude Code (global, all projects) | stdio |
|
Claude Code (this project only) | stdio |
|
Cursor / Windsurf / other | stdio or HTTP | See app documentation |
Claude Desktop and Cowork share the same config file. Claude Code is a separate system.
Configuration
1. Create your .env file
cp .env.example .env# Required
HA_URL=http://your-home-assistant:8123
HA_TOKEN=your_long_lived_ha_token
SSH_HOST=your-openclaw-server-ip
SSH_USER=your-ssh-username
SSH_KEY_PATH=~/.ssh/your_key
# Optional: Local LLM
LOCAL_LLM_ENDPOINT=http://localhost:1234/v1 # LM Studio default
LOCAL_LLM_MODEL=deepseek-r1-0528-qwen3-8b # or omit to use loaded model
# Optional: Sub-agent models
GEMINI_MODEL=gemini-2.5-flash
CODEX_MODEL=o32. Configure your MCP client
Claude Desktop (macOS)
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"elvatis-mcp": {
"command": "npx",
"args": ["-y", "@elvatis_com/elvatis-mcp"],
"env": {
"HA_URL": "http://your-home-assistant:8123",
"HA_TOKEN": "your_token",
"SSH_HOST": "your-openclaw-server-ip",
"SSH_USER": "your-username",
"SSH_KEY_PATH": "/Users/your-username/.ssh/your_key"
}
}
}
}Claude Desktop (Windows MSIX)
Open this file (create it if needed):
%LOCALAPPDATA%\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\claude_desktop_config.json{
"mcpServers": {
"elvatis-mcp": {
"command": "C:\\Program Files\\nodejs\\node.exe",
"args": ["C:\\path\\to\\elvatis-mcp\\dist\\index.js"],
"env": {
"HA_URL": "http://your-home-assistant:8123",
"HA_TOKEN": "your_token",
"SSH_HOST": "your-openclaw-server-ip",
"SSH_USER": "your-username",
"SSH_KEY_PATH": "C:\\Users\\your-username\\.ssh\\your_key"
}
}
}
}On Windows, always use full absolute paths. The MSIX sandbox does not resolve
~or relative paths.
Claude Code (this project)
Copy .mcp.json.example to .mcp.json (gitignored, never committed) and fill in your paths and SSH details. Then copy .env.example to .env for the remaining config.
Claude Code (global)
claude mcp add --scope user elvatis-mcp -- node /path/to/elvatis-mcp/dist/index.jsHTTP Transport (remote clients)
MCP_TRANSPORT=http MCP_HTTP_PORT=3333 npx @elvatis_com/elvatis-mcpConnect your client to http://your-server:3333/mcp.
Environment Variables
Required
Variable | Description |
| Home Assistant base URL, e.g. |
| OpenClaw server hostname or IP |
Optional
Variable | Default | Description |
| -- | Home Assistant long-lived access token |
|
| SSH port |
|
| SSH username |
|
| Path to SSH private key |
|
| OpenClaw Gateway URL |
| -- | Optional Gateway API token |
| -- | Named agent for |
|
| Default model for |
| -- | Default model for |
|
| Local LLM server URL (LM Studio default) |
| -- | Default local model (omit to use server's loaded model) |
|
| Transport mode: |
|
| HTTP port |
| -- | Set to |
|
| Directory for persistent usage data (rate limiter) |
| -- | JSON string with per-agent rate limit overrides |
Local LLM Setup
elvatis-mcp works with any OpenAI-compatible local server. Three popular options:
LM Studio (recommended for desktop)
Download from lmstudio.ai
Load a model (e.g. Deepseek R1 Qwen3 8B, Phi 4 Mini)
Click "Local Server" in the sidebar and enable it
Server runs at
http://localhost:1234/v1(the default)
Ollama
ollama serve # starts server on port 11434
ollama run llama3.2 # downloads and loads modelSet LOCAL_LLM_ENDPOINT=http://localhost:11434/v1 in your .env.
llama.cpp
llama-server -m model.gguf --port 8080Set LOCAL_LLM_ENDPOINT=http://localhost:8080/v1 in your .env.
Recommended models by task
Model | Size | Best for |
Phi 4 Mini | 3B | Fast classification, formatting, extraction |
Deepseek R1 Qwen3 | 8B | Reasoning, analysis, prompt splitting |
Phi 4 Reasoning Plus | 15B | Complex reasoning with quality |
GPT-OSS | 20B | General purpose, longer responses |
Reasoning models (Deepseek R1, Phi 4 Reasoning) wrap their chain-of-thought in
<think>tags. elvatis-mcp strips these automatically to give you clean responses.
SSH Setup
The cron, memory, and OpenClaw tools communicate with your server via SSH.
# Verify connectivity
ssh -i ~/.ssh/your_key your-username@your-server "openclaw --version"
# Optional: SSH tunnel for OpenClaw WebSocket gateway
ssh -i ~/.ssh/your_key -L 18789:127.0.0.1:18789 -N your-username@your-serverOn Windows, elvatis-mcp automatically resolves the SSH binary to C:\Windows\System32\OpenSSH\ssh.exe and retries on transient connection failures. Set SSH_DEBUG=1 for verbose output.
/mcp-help Slash Command
In Claude Code, the /mcp-help slash command shows the full 34-tool routing guide as formatted output:
/mcp-help # full guide
/mcp-help openclaw_status # help for a specific tool
/mcp-help analyze this trading strategy for risk # routing recommendationRate Limiting
Cloud sub-agents (claude_run, codex_run, gemini_run) are rate-limited to prevent runaway costs. Default limits:
Agent | /min | /hr | /day | Est. cost/call |
| 5 | 30 | 200 | $0.03 |
| 5 | 30 | 200 | $0.02 |
| 10 | 60 | 500 | $0.01 |
Local agents (local_llm_run, home_*, openclaw_*) are unlimited.
Usage data persists to ~/.elvatis-mcp/usage.json. Override limits via the RATE_LIMITS env var:
RATE_LIMITS='{"claude_run":{"perMinute":3,"perDay":100}}'Development
git clone https://github.com/elvatis/elvatis-mcp
cd elvatis-mcp
npm install # builds automatically via prepare script
cp .env.example .env # fill in your values
node dist/index.js # starts in stdio mode, waits for MCP clientBuild watch mode:
npm run devRun integration tests:
npx tsx tests/integration.test.tsProject layout
src/
index.ts MCP server entry, tool registration, transport, dashboard
config.ts Environment variable configuration
dashboard.ts Status dashboard HTML renderer
ssh.ts SSH exec helper (Windows/macOS/Linux)
spawn.ts Local process spawner for CLI sub-agents (supports stdin piping)
session-registry.ts CLI session registry: persist/resume Claude, Gemini, Codex sessions
tools/
home.ts Home Assistant: light, climate, scene, vacuum, sensors
home-automation.ts HA automations: list, trigger, enable, disable
memory.ts Daily memory log: write, read, search (SSH)
cron.ts OpenClaw cron: list, run, status (SSH)
cron-manage.ts OpenClaw cron: create, edit, delete, history (SSH)
openclaw.ts OpenClaw agent orchestration (SSH)
openclaw-logs.ts OpenClaw server log viewer (SSH)
notify.ts WhatsApp/Telegram notifications via OpenClaw
claude.ts Claude sub-agent (local CLI, for non-Claude clients)
gemini.ts Google Gemini sub-agent (local CLI)
codex.ts OpenAI Codex sub-agent (local CLI)
local-llm.ts Local LLM sub-agent (OpenAI-compatible HTTP)
local-llm-models.ts LM Studio model management (list/load/unload)
llama-server.ts llama.cpp server manager (start/stop/configure)
file-transfer.ts File upload/download via SSH
system-status.ts Unified health check across all services
splitter.ts Smart prompt splitter (multi-strategy)
split-execute.ts Plan executor with agent dispatch and rate limiting
help.ts Routing guide and task recommender
routing-rules.ts Shared routing rules and keyword matching
rate-limiter.ts Rate limiting + cost tracking for cloud sub-agents
tests/
unit.test.ts 42 unit tests (no external services needed)
integration.test.ts Live integration testsLicense
Apache-2.0 -- Copyright 2026 Elvatis
Available Tools
37 toolsclaude_runA
Send a prompt to Claude via the local Claude Code CLI. Use this when the MCP client is NOT Claude (e.g. Cursor, Windsurf, Zed) or for cross-checking results from other AI backends. Uses cached Anthropic auth.
Inputs: prompt (required), model, timeout_seconds, working_directory.
codex_runA
Send a task to OpenAI Codex via the local codex CLI. Specializes in coding tasks, file operations, and technical analysis. Uses cached OpenAI auth - no API key required.
Inputs: prompt (required), model, sandbox, timeout_seconds, +1 more.
file_transferA
Upload, download, or list files on the OpenClaw server via SSH. Supports text and binary files up to 10MB. "download" without local_path returns file content directly.
Inputs: action (required), remote_path (required), local_path.
gemini_runA
Send a prompt to Google Gemini via the local gemini CLI. Fast, direct LLM call with no OpenClaw overhead. Uses cached Google auth - no API key required.
Inputs: prompt (required), model, timeout_seconds, working_directory.
home_automationB
List, trigger, enable, or disable Home Assistant automations. "list" shows all automations with their state and last trigger time.
Inputs: action (required), entity_id.
home_climateA
Control Tado thermostats: set target temperature or HVAC mode (heat/auto/off)
Inputs: entity_id (required), hvac_mode, temperature.
home_get_stateA
Get the current state of a Home Assistant entity (light, climate, sensor, switch, vacuum, media_player, etc.)
Inputs: entity_id (required).
home_lightB
Control a light: turn on/off/toggle, set brightness (0-100%), color temperature, or RGB color
Inputs: action (required), entity_id (required), rgb_color, brightness_pct, +1 more.
home_sceneA
Activate a Hue scene in a room (wohnzimmer, flur, kuche, schlafzimmer, home)
Inputs: room (required), scene (required).
home_sensorsA
Read all environmental sensors: temperature, humidity, CO2 for all rooms plus outside temperature
Inputs: no named parameters.
home_vacuumA
Control the Roborock vacuum: start full clean, stop, return to dock, or get status
Inputs: action (required).
llama_serverA
Manage a local llama.cpp server: start with specific model, cache type (turbo2/turbo3/turbo4 for TurboQuant), GPU layers, and context size. Runs alongside LM Studio on a different port. Use "status" to check, "stop" to kill. Once started, use local_llm_run with the endpoint to query it.
Inputs: action (required), port, extra_args, gpu_layers, +5 more.
local_llm_modelsA
List, load, or unload models on the local LLM server. "list" shows available models. "load"/"unload" switches models in LM Studio without opening the GUI (LM Studio only).
Inputs: model, action, endpoint.
local_llm_runA
Send a prompt to a local LLM (LM Studio, Ollama, llama.cpp, or any OpenAI-compatible server). Free, private, no API key needed. Best for simple tasks: classify, format, extract, rewrite, proofread. Set stream=true for token-by-token progress.
Inputs: prompt (required), model, stream, system, +4 more.
mcp_helpA
List all available elvatis-mcp tools with a routing guide. Optionally provide a task description to get a specific recommendation for which sub-agent (openclaw_run, gemini_run, codex_run, local_llm_run) or tool to use.
Inputs: task.
openclaw_cron_createA
Create a new cron job on the OpenClaw server. Supports cron expressions ("0 9 * * *"), intervals ("every 30m"), and one-shot ("at 2026-04-01T14:00" or "+20m"). Optionally deliver results via WhatsApp/Telegram.
Inputs: name (required), message (required), schedule (required), model, +4 more.
openclaw_cron_deleteB
Delete a cron job by its ID.
Inputs: id (required).
openclaw_cron_editB
Edit an existing cron job. Change its name, message, schedule, or model.
Inputs: id (required), name, model, message, +1 more.
openclaw_cron_historyB
Show recent execution history for cron jobs. Optionally filter by job ID.
Inputs: id (required), lines.
openclaw_cron_listB
List all scheduled OpenClaw cron jobs
Inputs: include_disabled.
openclaw_cron_runA
Trigger an OpenClaw cron job immediately by its ID
Inputs: job_id (required).
openclaw_cron_statusB
Get OpenClaw cron scheduler status and overview
Inputs: no named parameters.
openclaw_deployA
Trigger deploy or rollback scripts on the OpenClaw server, or check the last deploy log. Scripts must exist at OPENCLAW_DEPLOY_SCRIPT_DIR (default: ~/deploy).
Inputs: action (required), service (required).
openclaw_logsA
View recent logs from the OpenClaw server: gateway logs, agent execution logs, or system journal. Supports line count and keyword filtering.
Inputs: path, lines, filter, source.
openclaw_memory_read_todayA
Read today's memory log from the OpenClaw server
Inputs: no named parameters.
openclaw_memory_searchB
Search across daily memory files on the OpenClaw server for a keyword (default: last 14 days)
Inputs: query (required), days.
openclaw_memory_writeA
Write a note to today's daily memory log on the OpenClaw server. Use for capturing important context, decisions, or things to remember.
Inputs: note (required), category.
openclaw_notifyA
Send a notification via WhatsApp, Telegram, or the last-used channel. Uses OpenClaw message delivery.
Inputs: message (required), target, channel.
openclaw_pluginsA
List all plugins installed on the OpenClaw server
Inputs: no named parameters.
openclaw_runA
Send a task or prompt to the OpenClaw AI agent via SSH. The agent has access to all installed plugins (trading, home automation, etc.) and multiple LLM backends. Use this to delegate complex tasks that OpenClaw already knows how to handle.
Inputs: prompt (required), agent, timeout_seconds.
openclaw_statusA
Check if the OpenClaw daemon is running on the server and get version info
Inputs: no named parameters.
prompt_splitA
Analyze a complex prompt and split it into sub-tasks with agent assignments. Returns a structured plan showing which sub-agent (gemini, codex, openclaw, local LLM) handles each part, dependency ordering, and the actual prompts to send. Each subtask includes a suggested model that the user can override before execution. IMPORTANT: Always present the plan to the user for review before executing. Strategy: "auto" (default), "gemini", "local", or "heuristic".
Inputs: prompt (required), strategy.
prompt_split_executeA
Execute a prompt_split plan: runs subtasks in dependency order, dispatches to the correct sub-agent, passes results between dependent tasks, and enforces rate limits on cloud agents. Provide a "plan" from prompt_split, or just a "prompt" to generate and execute in one step. Use "overrides" to change agent/model/prompt per task or skip tasks. Set dry_run=true to preview.
Inputs: plan, prompt, dry_run, overrides.
remote_dockerB
Manage Docker containers on the remote Linux server via SSH. Actions: list, logs, start, stop, restart, stats, exec. No Docker API or open port needed.
Inputs: action (required), lines, command, container.
remote_serviceA
Manage systemd services on the remote Linux server via SSH. Actions: status, start, stop, restart, enable, disable, list.
Inputs: action (required), service.
remote_shellA
Run a shell command on the configured remote Linux server (REMOTE_HOST). Use for deployments, log checks, service restarts, or any ad-hoc command on a remote machine.
Inputs: command (required), timeout_seconds.
system_statusA
Check health of all connected services at once: Home Assistant, OpenClaw (SSH), local LLM, Gemini CLI, Codex CLI. Returns a unified status overview with latency for each service.
Inputs: no named parameters.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 37 tools
Most tools target distinct resources, but there are overlapping groups: five AI prompt-run tools, multiple status/list/history tools, and home_sensors vs home_get_state. The descriptions help differentiate them, but an agent must read carefully to avoid misselection.
Naming is readable and mostly snake_case, with domain prefixes like home_, openclaw_, and remote_. However, the pattern shifts between noun-only names (home_scene, local_llm_models), verb-object names (openclaw_cron_create), agent-verb names (gemini_run), and bare nouns (llama_server), so it is not fully predictable.
37 tools is too many for a single MCP surface, exceeding the 25+ threshold even though the server spans home automation, AI backends, remote operations, and OpenClaw management. The breadth is real, but the sheer count makes routing and selection costly.
Core workflows are well covered: cron has full create/edit/delete/list/run/history, memory has write/read/search, AI backends have run/model management, and Docker/systemd/file operations are covered. Minor gaps exist around generic Home Assistant entity control, scene listing, and delete/update operations for files or memory, but these can be worked around via remote_shell or openclaw_run.
Maintenance
Related MCP Connectors
One MCP server for the services your AI needs: memory, files, Microsoft 365, kanban and more.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
MCP server for building and testing AI agents with multi-model experimentation and insights.
Related MCP Servers
- AlicenseBqualityDmaintenanceAn MCP server that integrates with the OpenClaw API to enable AI assistants to send messages across multiple platforms, execute system commands, and manage calendar events and emails.51MIT
- AlicenseBqualityDmaintenanceMCP server for full Home Assistant control, enabling AI agents to manage dashboards, automations, files, apps, entities, and more via REST API, WebSocket, and SSH.66182 npmMIT
- AlicenseNot gradedqualityAmaintenanceMCP server with persistent memory, voice understanding, multi-thread orchestration, and remote control via Telegram for AI assistants.2,299 npm5MIT
- AlicenseNot gradedqualityDmaintenanceMCP server providing persistent memory, goal tracking, self-reflection, and background monitoring for any MCP-compatible AI agent.2MIT