AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
MCP verified MIT Self-run

Metaclaw

mcp-charles-adedotun-metaclaw · by charles-adedotun

Node.js orchestrator for Claude agents running in isolated containers, controlled through messaging channels.

No reviews yet
0 installs
44 views
0.0% view→install

Install

$ agentstack add mcp-charles-adedotun-metaclaw

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets Used
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/mcp-charles-adedotun-metaclaw)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
3mo ago

Declared compatibility

Claude CodeClaude DesktopCursorWindsurf

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Metaclaw? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

MetaClaw

A Node.js orchestrator that routes WhatsApp and Telegram messages to Claude agents running in isolated Docker containers.

What It Is

MetaClaw is a single Node.js process that bridges messaging channels (WhatsApp, Telegram) to Claude Code running inside per-group Docker containers. Each registered group — a "Chief of Staff", a Researcher, an Engineer — gets its own container with isolated filesystem, session state, and a system prompt defined in a plain Markdown file. Agents respond to chat messages, execute cron-scheduled tasks, and communicate back to the host through a small filesystem IPC protocol.

The value proposition is simple: give chat-based agents useful tools, persistent memory, and scheduled work, while keeping their shell access behind Docker instead of your host machine. The codebase is deliberately small (~30 TypeScript source files) so the operator can read and own the whole thing.

Proof You Can Run

For a fast source-level check:

npm install
npm run typecheck
npm test

What this proves: the TypeScript host process compiles, and the Vitest suite exercises routing, queueing, IPC authorization, scheduler behavior, container timeout handling, and container-runtime command construction.

For a container-boundary check:

./container/build.sh
docker run --rm --entrypoint sh metaclaw-agent:latest -lc 'id -un && pwd'
docker run --rm --entrypoint sh -v "$PWD:/workspace/project:ro" metaclaw-agent:latest -lc 'touch /workspace/project/.metaclaw-write-test 2>/dev/null || echo project-read-only'

Expected output: the first Docker command prints node and /workspace/group, showing the image runs as the non-root container user in the group workspace. The second command prints project-read-only, matching the main-agent mount policy in src/container-runner.ts: the project root is mounted read-only, while writable state is limited to explicit group, IPC, upload, session, and allowlisted extra mounts.

Architecture

flowchart LR
  chat["WhatsApp / Telegram"] --> db["SQLite message store"]
  db --> loop["Host message loop"]
  scheduler["Task scheduler"] --> runner["GroupQueue"]
  loop --> runner
  runner --> container["Per-group Docker container"]
  container --> claude["Claude Code + skills"]
  claude --> ipc["Filesystem IPC"]
  ipc --> host["Host IPC watcher"]
  host --> chat
  • Host orchestrator (src/index.ts) — polls SQLite for new messages every 2 s, manages container lifecycle via GroupQueue, runs the IPC watcher and task scheduler in parallel loops.
  • Per-group containers — each group gets a separate Docker container running Claude Code via the agent-runner wrapper. Volume mounts are explicit and narrow: group workspace, IPC directory, uploads, and Claude session state.
  • Filesystem IPC — agents write JSON command files to /workspace/ipc/messages/. The host polls every 1 s and acts on send_message, send_file, register_group, schedule_task, and related commands.
  • Skills (skills/) — Claude Code skill definitions mounted read-only into every container. Built-in skills handle browser automation, document creation (PDF, DOCX, XLSX, PPTX), and file management. /setup, /customize, /debug, and /update skills handle the full operator workflow.
  • Task scheduler — SQLite-backed cron, interval, and one-shot tasks. Each task fires a container invocation with either a fresh or continuous Claude session.
  • Mount security — extra volume mounts are validated against an allowlist at ~/.config/metaclaw/mount-allowlist.json before any container starts.

Quickstart

Requirements: Node.js 20+, Docker, Claude Code (the claude CLI).

git clone https://github.com/charles-adedotun/metaclaw.git
cd metaclaw
cp .env.example .env          # set ASSISTANT_NAME, and TELEGRAM_BOT_TOKEN if using Telegram
npm install
claude                         # open Claude Code in the project root

Inside Claude Code, run the setup skill:

/setup

The setup skill builds the container image, configures your channel, and installs the system service (launchd on macOS, systemd on Linux).

For subsequent development:

npm run dev        # run with hot reload, no compile step
npm run typecheck  # type-check without emitting
npm test           # run all tests (vitest)
./container/build.sh  # rebuild the agent container image

Why This Exists

The typical multi-agent framework ends up as a configuration maze: multiple processes, overlapping permission layers, integrations no one asked for, and a codebase too large to audit confidently. MetaClaw is the opposite: one process, one database, containers as the security boundary instead of application-level permission checks. Bash is safe because it runs inside the container, not on your machine.

Non-goals:

  • Not a hosted platform. This is self-hosted, single-operator software.
  • Not a multi-tenant service. No auth layer, no user management — you are the only operator.
  • Not a configuration-driven framework. If you want different behavior, change the TypeScript. The codebase is small enough that this is practical.

New integrations are contributed as Claude Code skills (e.g. /add-telegram, /add-discord, /convert-to-apple-container) that transform the codebase on install, rather than adding runtime feature flags.

Status

Active development. The core orchestrator, container isolation, IPC protocol, and task scheduler are stable. The skills API and group configuration format may change between versions. Not recommended for production multi-user deployments.

License

[MIT](LICENSE)

Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.