DuDuClaw
A memory-and-knowledge MCP server: it stores and recalls personal notes and learned facts, maintains per-user preference profiles, and manages a personal and shared wiki — plus code search.
Memory: save free-text notes (
memory_store), keyword-search them (memory_search), read one entry or up to 100 in a batch (memory_read,memory_fetch_batch).Temporal facts: query what a (subject, predicate) fact was at a given instant (
memory_get_at) or see its full supersession history (memory_get_history).Entity aliases: fold surface forms into canonical names and list existing aliases (
memory_alias_add,memory_alias_list).Consolidation: reflect over memories on a topic and get a clustered proposal scaffold; writes nothing (
memory_improve).User profiles: record durable per-user preferences (history-preserving, capped AI trust) and read back the current facts plus the rendered "About This User" block, or compile a typed rules profile (
user_profile_record,user_profile_get,user_code_profile).Wiki: list, read, write, and full-text search pages in an agent or shared scope, and publish summaries of your pages into the shared wiki.
Wiki maintenance: lint for orphans/broken links/stale pages, get totals and a health score, find duplicate pages, render the link graph as Mermaid, rebuild the FTS index, and export to HTML or an Obsidian vault.
Code navigation: rank a local repo's files by relevance to a query and summarize key symbols, without returning file bodies (
code_map).Safety: strict scoping — unknown or foreign memory ids are refused; most tools are read-only; shared-wiki writes follow a namespace policy and are secret-scanned.
Runs AI agents inside Discord servers/channels via the built-in channel router, supporting per-agent bot tokens, multiple agents with different jobs, and shared conversation memory.
Integrates Google Chat as one of the 11 messaging channels, letting an AI agent staff Google Chat spaces through the same routing, memory, and security layer.
Connects an AI agent to a LINE official account via the channel router, letting the agent handle LINE messages with bot tokens, memory, and policy guardrails.
Routes AI agent conversations through Slack as one of the supported channels, with per-agent bot tokens and the same memory, guardrail, and audit features applied to other channels.
Staffs a Telegram bot as one of 11 supported messaging channels, routing conversations through the gateway with per-agent bot tokens, multi-account rotation, and conversation memory so an AI agent can serve Telegram chats.
Adds WhatsApp as a supported messaging channel so the AI agent can receive and respond to WhatsApp messages through the gateway's channel router.
DuDuClaw
DuDuClaw turns AI command-line tools such as Claude Code and Codex into AI employees who actually deliver: they staff eleven messaging apps like Telegram, LINE, and Discord, an independent judge reviews their work before it ships, and every dollar they spend gets logged.
All you need is one Rust binary. Channel routing, conversation memory, multi-account rotation, behavioral guardrails, local inference, and a web dashboard are built in; swap the AI brain between ten CLI backends (Claude Code, Codex, Grok and others) or any OpenAI-compatible API whenever you like, and your config and memory stay on your own machine. The core is Apache 2.0.
Quick start (needs Node.js 20+; prefer a desktop app? see Install):
npm install -g duduclaw
duduclaw run # then open http://localhost:18889Table of contents
Related MCP server: tentra
Why DuDuClaw?
If you run claude or gemini in a terminal now and then, the native CLIs are all you need. The moment you want an AI staffing your LINE official account, covering your team's Discord, or running several agents with different jobs, you end up building a whole infrastructure layer yourself. DuDuClaw ships that layer:
Need | Native CLI | DuDuClaw |
Telegram / LINE / Discord access | Terminal only | 11 channels, per-agent bot tokens |
Multi-LLM failover | Manual restart | 4 rotation strategies + cross-provider failover |
Context survives switching LLMs | Lost | Preserved |
Conversation memory and knowledge base | Single session | SQLite temporal memory + layered wiki, auto-injected |
Tools shared across LLMs | Rewrite per vendor | 253 MCP tools written once, reachable from the Claude, Codex, Grok and OpenAI-compatible runtimes |
Guardrails / audit / secret management | Build it yourself | Policy kernel + OS sandbox + AES-256-GCM built in |
A whole box to hand to a customer | Install Linux yourself, manage updates and tamper resistance yourself | DuDuClaw OS image: A/B update with rollback + read-only root, plug in and go; a desktop shared by a person and the AI without getting in each other's way |
v1.76.0: scheduled assignments let you hand work to an AI employee for later or on a repeat, from chat or the dashboard. Each run checks the creator's current permission.
Architecture at a glance
The AI runtime is the brain, DuDuClaw is the plumbing, and MCP (JSON-RPC 2.0) is the bridge. Swap the brain, keep the plumbing:
AI Runtime (brain) — Claude Code / Codex / Grok / … (10 CLIs) / OpenAI-compat
↕ MCP Protocol (JSON-RPC 2.0, stdin/stdout)
DuDuClaw (plumbing)
├─ Channel Router — Telegram / LINE / Discord / Slack / WhatsApp / Feishu
│ / Google Chat / Microsoft Teams / WeCom / DingTalk / WebChat
├─ Multi-Runtime — 11 runtime ids (10 CLIs + OpenAI-compat), auto-detected, per agent
├─ Session Memory — native --resume + temporal memory + key facts + layered wiki
├─ MCP Server — 253 tools (channels, memory, agents, skills, tasks, wiki, ERP)
├─ Evolution Engine — prediction-driven + AEE playbook rules + MistakeNotebook
├─ Security — PolicyKernel reference monitor + OS sandbox + redaction vault
├─ Inference Engine — OpenAI-compatible local server (llama-server / Ollama / vLLM) / llamafile
├─ Account Rotator — OAuth + API key rotation, budgets, health checks
└─ Web Dashboard — React 19 SPA, embedded via rust-embedThe Rust workspace is 24 crates: the duduclaw-core foundation, the duduclaw-gateway service layer, the duduclaw-llm unified API layer, duduclaw-inference for local models, duduclaw-memory for cognitive memory, duduclaw-security, and more. Full design in ARCHITECTURE.md.
Experimental calibrated local routing uses Varun Kotte's UCCI (arXiv:2605.18796). See UCCI calibrated cascade for configuration and data preparation.
The same gateway + dashboard also ships as a whole machine: DuDuClaw OS is a Yocto-built appliance image. Its Yocto layer and release pipeline live in their own repo and vendor this repo's Rust workspace as a trimmed snapshot; see the Install section below.
Prerequisites
DuDuClaw doesn't ship its own LLM — you need an AI brain first. Pick one (you can also set this up later in the browser wizard):
Install one of the supported AI CLIs, such as Claude Code or Codex (the full list is in multi-runtime); Gemini CLI is no longer a DuDuClaw runtime. Anthropic's policy does not permit third-party products to offer Claude.ai login, route requests through Free/Pro/Max plan credentials on their users' behalf, or store those credentials, and Anthropic may enforce this without notice (users have reported suspended accounts). An API key is the supported path; subscription sign-in stays available behind a risk notice you have to accept
Bring an API key for any OpenAI-compatible provider
Or run a local model behind an OpenAI-compatible server (llama-server, Ollama, vLLM, llamafile) — no cloud account needed
In the Dashboard, one-click login supports Claude, Codex, Grok, Kimi, Copilot, Kiro and OpenCode when the CLI is installed. Codex uses codex login --device-auth: open the verification page shown by the CLI, enter its device code, and wait for completion. The browser does not need access to a Docker callback port, and pasting a callback URL code into the Dashboard does not authenticate. On the Accounts page, the API Token card can delete a saved account after you confirm its account id; revoke the key separately at its provider if needed.
Install
Desktop app (recommended for personal use)
A native Tauri build that starts the local gateway automatically when you launch it — no terminal required — and shares ~/.duduclaw with the CLI. Download from Releases:
Platform | File | Notes |
macOS (Apple Silicon / Intel) |
| Signed + Apple notarized, opens cleanly |
Windows x64 |
| No Authenticode certificate yet, so SmartScreen warns; click "More info" then "Run anyway" to install — unblock details in docs/guides/desktop-unblock.md |
Linux |
| No signing needed |
The macOS desktop build is available again from v1.68.1 (signed and notarized). v1.67.0 through v1.68.0 have no macOS build; Windows and Linux builds exist for those versions.
Open it and you're done — the in-app wizard walks you through picking an AI backend and creating your first agent, no commands needed.
npm (advanced / server use, all platforms including Windows)
For running on a server, scripting automation, or if you just prefer the command line. The only prerequisite is Node.js 20+:
npm install -g duduclawThis installs a prebuilt binary for your platform (macOS ARM64/x64, Linux x64/ARM64, Windows x64). No compiler, no Rust.
⚠️ If the install asks you for Rust / MSVC Build Tools and a 1.5-hour compile, you took a wrong turn. That path is "build from source" for contributors; regular users should use the npm command above.
DuDuClaw OS (appliance image, pre-GA)
If you would rather not dedicate a computer, get a box that runs the moment you plug it in: DuDuClaw OS is a Yocto-built Linux operating system in which the AI agent is a native resident: it boots into its own desktop (compositor / shell, lock screen, Cmd+K delegation bar), so a person and the AI share one x86-64 box without getting in each other's way — the agent's GUI work runs in a shadow workspace by default, and the moment you touch the keyboard or mouse, whatever it was driving on your desktop yields. The desktop edition ships with A/B atomic updates and rollback, a read-only root, and preloaded Chromium / LibreOffice (Steam installs from Flathub) plus a Chinese IME; Secure Boot signing, dm-verity and TPM2 are build-time overlay options that remain disabled as of the current v0.4.0 release, so boot with Secure Boot turned off in the BIOS/UEFI.
The current release is v0.4.0 (embedding platform v1.73.4). The gateway now runs as a non-root user with its containers on rootless Podman, SSH is off by default, and the base image gets the same firewall as the desktop edition. The upgrade is one-way: once v0.4.0 has booted successfully, a device cannot roll back to v0.3.0 or earlier, which stay on the Releases page only as older releases. Download the whole-disk .wic.zst (desktop edition), the installer-desktop installer .iso (writes the desktop edition), or the plain installer .iso (writes the base image, without the app layer) from DuDuClaw-OS Releases; every file comes with a .sha256 and a minisign signature, and the verification commands are on the OS README on the docs site. This is a bring-up line (0.x): QEMU-verified, not yet booted on real hardware, and upgrading an existing v0.3.0 box through the A/B update has not been verified yet. Hardware requirements and compatible machines: docs/guides/hardware-requirements.md; product overview: docs/features/50-duduclaw-os-appliance.md.
Build from source
Prerequisites: Rust 1.85+, Node.js 20+.
git clone https://github.com/zhixuli0406/DuDuClaw.git
cd DuDuClaw
cd web && npm ci --legacy-peer-deps && npm run build && cd ..
cargo build --release -p duduclaw-cli -p duduclaw-gateway --features duduclaw-gateway/dashboard
./target/release/duduclaw runPython SDK (optional library)
The core gateway/CLI is a Rust binary and needs no Python. The duduclaw package on PyPI is a pure library for import duduclaw (agents / channels / mcp / memory_eval modules) with no command-line entry point, which is why pipx install duduclaw fails by design. If you need it:
pip install duduclawQuick start
Desktop app: just open it — the gateway starts automatically and the wizard appears right inside the app.
npm / build from source:
duduclaw run # start everything (gateway + channels + scheduler + dispatcher) open http://localhost:18889 # open the dashboard
Either way, the first visit takes you through a wizard: pick an AI backend, create your first agent, then chat with it in the built-in WebChat — no need to run duduclaw onboard from a terminal first. Later, paste a bot token on the Channels page to put the same agent on Telegram, LINE, Discord, and the rest, without restarting.
Useful next steps:
duduclaw agent create # create more agents
duduclaw wizard # industry-template setup
duduclaw status # system health snapshot
duduclaw update # check for and install updates
duduclaw service install # start on boot (launchd / systemd)Feature overview
Area | What's built in | Read more |
Channels | 11 channels (Telegram / LINE / Discord / Slack / WhatsApp / Feishu / Google Chat / Teams / WeCom / DingTalk / WebChat), per-agent bots, hot start/stop, platform-native formatting, typing indicators, live task-progress boards; Telegram voice messages are transcribed through the OpenAI Whisper API | |
Multi-runtime | 11 runtime ids: Claude Code / Codex / Grok / Qwen Code / Kimi Code / GitHub Copilot CLI / Kiro / Cursor / Mistral Vibe / OpenCode plus OpenAI-compat; auto-detected, per-agent config, context survives backend switches | |
Unified LLM API layer |
| |
MCP server | 253 tools: channels, memory, agent orchestration, skill market, task board, shared wiki, Odoo ERP, computer use, live forking; stdio and HTTP/SSE transports; an external client key gets a 7-tool baseline unless the operator grants it memory, wiki or messaging scopes, and connector, execution and admin tools are never exposed externally | |
Memory | SQLite temporal memory (fact supersession chains), HippoRAG-lite knowledge-graph retrieval (Personalized PageRank), Ebbinghaus forgetting-curve archival, cross-agent shared wiki | |
Self-evolution | Prediction-driven (by design most conversations end without an LLM call) + AEE playbook evolution: SOUL.md is read-only for agents, learned behavior is small rules that each link an eval case, a rule is committed only if it matches or beats the current playbook and is settled on its own after 24h; MistakeNotebook cross-turn memory | |
Security | PolicyKernel reference monitor (zero-LLM, fail-closed), macOS Seatbelt / Linux Landlock native sandbox (per agent, off by default), container sandboxes (task sandbox: Docker only, off by default; script sandbox: Docker, with WSL2 tried first on Windows), secret redaction vault, CONTRACT.toml behavioral contracts + red-team CLI | |
Accounts and cost | OAuth + API key rotation (4 strategies), rate-limit and billing cooldowns, cost telemetry with cache-efficiency analytics. Each call runs the official CLI as a fresh process (the PTY session pool was removed in 2026-09; a one-shot pseudo-terminal remains for CLIs that require a TTY, such as Grok). Anthropic's policy does not permit third-party products to route requests through Claude subscription credentials, so use API keys; subscription sign-in stays available behind an explicit risk acknowledgment (multi-runtime) | |
Local inference | Any OpenAI-compatible local server (llama-server / Ollama / vLLM / SGLang) or llamafile, with three-tier confidence routing | |
Fine-tuning | Build SFT / DPO datasets (ShareGPT / Alpaca) from this machine's conversations, task results and approval decisions, train them on your own GPU host (SSH + LLaMA-Factory) or Together's cloud, then import the GGUF / LoRA back into the local models directory. No local training — integrated graphics cannot train — and data leaving the machine requires an explicit acknowledgement | |
Live forking | RFC-26: fork an in-progress task into N competing branches, each in a copy-on-write isolate, with an AI judge picking the winner to merge (off by default; in v1.67.0 do not enable it on Windows, see CHANGELOG) | |
Auto-update | One click from the dashboard or unattended ( | |
Web dashboard | React 19 + TypeScript SPA embedded in the binary; zh-TW / en / ja | |
ERP | Odoo bridge with 18 MCP tools (CRM / sales / inventory / accounting / schema overview), CE/EE auto-detection, per-agent credential isolation | |
DuDuClaw OS | Yocto appliance image (current release v0.4.0, embedding platform v1.73.4): own compositor / shell with keyboard shortcuts, human–AI co-driving (dedicated agent seat, shadow workspace, human input freezes the agent, Super+Esc emergency stop; compiled in, off by default), A/B atomic update with rollback (no rollback below v0.4.0), read-only root, non-root gateway with rootless Podman containers, SSH off by default, first-boot provisioning + LAN dashboard, app compatibility layer (Flatpak / Bottles / Waydroid); Secure Boot signing / dm-verity / TPM2 are build overlay options (still not enabled as of v0.4.0); separate repo and version line, pre-GA |
Full feature list in docs/features/feature-inventory.md; version history in CHANGELOG.md.
CLI commands
duduclaw onboard # first-run setup; the browser wizard covers this now, use for headless/scripted setups (--yes to skip prompts)
duduclaw run # start everything (gateway + channels + heartbeat + cron + dispatcher)
duduclaw agent list # list agents; subcommands create / inspect / pause / resume / export / freeze / unfreeze
duduclaw tui # interactive control room and chat
duduclaw wizard # industry-template setup
duduclaw status # system health snapshot
duduclaw doctor # diagnostics
duduclaw test <agent> # red-team security test (9 built-in scenarios)
duduclaw eval # run the agent behavior eval suite
duduclaw update # check for and install updates
duduclaw service install # install as a system service; also start / stop / status / logs / uninstall
duduclaw export / import # export / import ~/.duduclaw (portable personal data)
duduclaw migrate from openclaw # painless migration from OpenClaw / Hermes / paperclip (dry-run by default, --apply to write)
duduclaw mcp-server # start the MCP server (stdio JSON-RPC 2.0)
duduclaw http-server # start the MCP HTTP/SSE transport (Bearer auth)
duduclaw acp # start the Agent Client Protocol server (Zed / JetBrains / Neovim agent panels)
duduclaw acp server # start the A2A server (agent-to-agent interop)
duduclaw license # license management (activate / status / redeem / rebind / …)Run duduclaw --help for the full command list and subcommands; developer topics are in the development guide.
Trust and security
What you install is fully transparent:
What's in the npm package: a small JS wrapper plus platform binaries (
@duduclaw/<platform>optionalDependencies).postinstallonly checks that the platform package is present (install.js); nothing is downloaded from arbitrary URLs or executedNo telemetry: no usage data or conversation content is sent to us. The gateway checks GitHub Releases for updates every 6 hours; with a paid license installed it also refreshes the license with the license server (every 3–7 days depending on tier) and fetches the revocation list daily. Without a license file there is no licensing traffic. Secrets stay on your machine, encrypted with AES-256-GCM
No privilege escalation: runs entirely in user space
Maintainer: Dudu Technology Ltd. (registered in Taiwan, tax ID 94139082)
High-risk actions in chat: an employee asks for approval of a high-risk computer-use step in its channel, and you answer with the request's full ID. An operation whose result is unknown is never re-sent automatically; an Admin settles it in the dashboard. See the operator guide
Browser login persistence (v1.76.0): optional encrypted per-employee container snapshots, default off, with reset and handover protection. Final container acceptance is pending. See the guide.
Team browser viewing (v1.76.0): reporting-line managers can view masked snapshots and stop a subordinate’s human-started container session. Existing direct bindings retain their controls. Session-bound viewing links can return here after sign-in and appear in verified conversations or the matching task/run record. See the guide.
Every release asset ships with three kinds of verification: a SHA-256 checksum, a cosign keyless signature, and a minisign Ed25519 signature (the built-in auto-updater enforces this one and refuses unsigned or tampered releases):
# SHA-256
shasum -a 256 -c duduclaw-darwin-arm64.tar.gz.sha256
# minisign (the same public key is pinned inside the binary)
minisign -Vm duduclaw-darwin-arm64.tar.gz \
-P RWTh5pOpk0YmdBgm3VyB2bzxFtajNLXr7zFDhbcc75TgM8YfeV+NSzXhDon't trust prebuilt binaries? Building from source takes three commands. Report vulnerabilities via SECURITY.md.
Why does a "new" package start at version 1.3x? DuDuClaw spent months in a private repo (400+ commits) before going public; the full history is in the git log.
Comparison
DuDuClaw | OpenClaw | IronClaw | Dify | |
Language | Rust | TypeScript | Rust | Python |
Channels | 11 | 25+ | 8 | 0 (API) |
Multi-runtime | 11 runtime ids (10 CLIs + OpenAI-compat) | single | single | multi-LLM |
MCP server | 253 tools | no | no | no |
Self-evolution engine | AEE playbook rules (prediction-driven) | no | no | no |
Local inference | OpenAI-compatible local server / llamafile + confidence routing | no | no | no |
Behavioral contracts | CONTRACT.toml + red team | no | WASM sandbox | no |
License | Apache 2.0 (open core) | MIT | open source | $59+/mo |
Documentation
Enterprise personal Google connections (v1.76.0): connect your own account, allow individual AI employees, and withdraw consent in My connections.
Read-only team conversations: Enterprise dashboard and API (v1.76.0) for report WebChat and masked external conversations, with staff notices, an activation boundary and mandatory audit. Direct Viewer/Operator history now keeps own WebChat full, masks external conversations and hides other accounts; Owner/Admin remain full. This behavior change has an explicit migration setting.
Self-service: Who viewed my conversations shows only your own team-history receipts (guide).
ARCHITECTURE.md: full system architecture
docs/README.md: public docs index (architecture / RFC / ADR / specs / guides)
docs/guides/deployment-guide.md: production deployment (Tailscale / Docker / systemd / auto-update / monitoring)
docs/guides/development-guide.md: dev environment and agent development
MCP operation lifetimes: host API reference (v1.76.0) for per-operation HTTP authority
docs/guides/custom-mcp-tool.md: writing custom MCP tools
docs/spec: SOUL.md and CONTRACT.toml format specs
docs/features/50-duduclaw-os-appliance.md: the DuDuClaw OS appliance; 52-desktop-edition.md: the desktop edition, one machine shared by a person and the AI; hardware requirements in hardware-requirements.md; app compatibility, image build and releases all live in the DuDuClaw-OS repo (see its
docs/guides/app-compat.md)CHANGELOG.md: version history
License
Open core: the core is Apache License 2.0, free to use, modify, and distribute. Commercial add-ons (commercial/, not in this repository), such as the premium industry packs, are closed source and paid; a license key unlocks them. The license-verification client (crates/duduclaw-license) is part of the Apache 2.0 core. See LICENSING.md.
Commercial licenses, enterprise rollout, training and support are provided by our authorised distributor, Future Corp (未來企業股份有限公司). We do not sell directly.
Available Tools
24 toolscode_mapARead-only
Rank a local repo's source files by relevance to a query (tree-sitter symbol graph + PageRank) and summarise their key symbols. Read-only. Use to find where code lives; it does not return file bodies.
Inputs: query (required), root, max_files, chat_files.
memory_alias_addADestructiveIdempotent
Fold a surface form into a canonical entity (e.g. '老闆' -> 'Wang Ming') so recall treats them as one. Lowercased; chains flattened; re-adding an alias re-points it. See memory_alias_list.
Inputs: alias (required), canonical (required).
memory_alias_listARead-only
List your memory's entity aliases as {canonical, alias} pairs plus a total. Check here before memory_alias_add so you do not re-point an existing alias by accident.
Inputs: no named parameters.
memory_fetch_batchARead-only
Fetch up to 100 of your memory entries by id in one call. Returns {memories, missing_ids}; unknown or foreign ids go to missing_ids instead of failing. Use instead of repeated memory_read.
Inputs: ids (required), include_metadata.
memory_get_atARead-only
The single (subject, predicate) fact valid at one instant by world time, or found:false. Safe with out-of-order ingestion. Full change log: memory_get_history; free-text recall: memory_search.
Inputs: at (required), subject (required), predicate (required).
memory_get_historyARead-only
Every value a (subject, predicate) fact has had, oldest to newest, expired rows included, showing which write superseded which. For the value at one instant use memory_get_at.
Inputs: subject (required), predicate (required).
memory_improveARead-only
Reflect over your memories about a topic and get a clustered proposal scaffold for consolidated rules. Returns candidates only — review, then persist with memory_store. Writes nothing itself.
Inputs: topic (required), limit.
memory_readARead-only
Read one of your memory entries by id (from memory_store or memory_search): content, tags, layer, importance, created_at. Unknown or foreign ids are refused. Several ids: memory_fetch_batch.
Inputs: memory_id (required).
memory_searchARead-only
Keyword search over your own memory: notes you stored plus facts the gateway learned from your chats. Returns JSON {results,total}. Use before answering from recall; for a known id use memory_read.
Inputs: query (required), tags, limit.
memory_storeA
Save one free-text note to your own memory; memory_search finds it and later prompts get it injected. Returns memory_id. Never overwrites. Per-user preferences go to user_profile_record.
Inputs: content (required), tags.
user_code_profileARead-only
Compile your user-as-code profile from current memory facts: typed preference and constraint rules, unresolved conflicts, untyped-row count. Read-only. One user's view: user_profile_get.
Inputs: no named parameters.
user_profile_getARead-only
One user's currently-valid preference facts plus the rendered '## About This User' block injected into replies to them. Read-only. Add or change facts with user_profile_record.
Inputs: user_id (required).
user_profile_recordA
Record one durable preference of a specific end user (timezone, language, 'prefers tea'). Same predicate again supersedes the old value, history kept. Notes not tied to a user: memory_store.
Inputs: value (required), user_id (required), predicate (required), origin_trust.
wiki_dedupARead-only
Find likely duplicate wiki pages by title and tag similarity; returns pairs with each page's trust and the reason. Read-only, merges nothing: merge by hand with wiki_write.
Inputs: agent_id.
wiki_exportADestructiveIdempotent
Export a wiki (yours by default) under /exports as one HTML file (default) or an Obsidian vault folder; returns the path. Overwrites the previous export, never the wiki itself.
Inputs: format, agent_id.
wiki_graphARead-only
Render the wiki link graph as a Mermaid diagram (nodes = pages, edges = related links), or only pages within depth hops of center. Read-only.
Inputs: depth, center, agent_id.
wiki_lintARead-only
Audit the wiki for orphan pages, broken links and stale pages; returns a report and changes nothing. scope="shared" audits the shared wiki and its frontmatter schema. Totals only: wiki_stats.
Inputs: scope, agent_id.
wiki_lsARead-only
List wiki pages as a directory tree with titles and last-updated dates. scope="shared" lists the cross-agent wiki. Use to browse; to find pages by content use wiki_search.
Inputs: scope, agent_id.
wiki_readARead-only
Read a wiki page (frontmatter + body). Use wiki_ls or wiki_search to find page paths first. Pass scope="shared" to read from the cross-agent shared wiki.
Inputs: page_path (required), scope, agent_id.
wiki_rebuild_ftsAIdempotent
Rebuild the wiki full-text index from the pages on disk; returns the page count. Safe to repeat. Use only when wiki_search misses pages you know exist, e.g. after files were edited directly.
Inputs: agent_id.
wiki_searchARead-only
Full-text search of wiki pages, trust-weighted, with layer/min_trust filters and optional 1-hop expand. scope="shared" searches the shared wiki. Notes outside the wiki: memory_search.
Inputs: query (required), layer, limit, scope, +3 more.
wiki_statsARead-only
Wiki totals: pages, index entries, recent activity, health score (shared scope adds per-contributor counts). Read-only. To see the problems behind the score use wiki_lint.
Inputs: scope, agent_id.
wiki_writeADestructive
Create or overwrite a whole wiki page (content incl. YAML frontmatter); atomic, updates _index.md and _log.md. scope="shared" obeys the namespace policy. To edit, wiki_read the page first.
Inputs: content (required), page_path (required), scope, agent_id, +1 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 24 tools
Descriptions actively cross-reference each other (e.g. memory_read vs memory_fetch_batch, memory_get_history vs memory_get_at, memory_search vs wiki_search), making boundaries clear. A few pairs are close (user_profile_get vs user_code_profile, memory_read vs memory_fetch_batch) but the descriptions resolve them. No two tools appear to do the same thing.
Consistent snake_case with clear prefix namespacing (memory_*, wiki_*, user_profile_*, code_map). Minor deviation: most are prefix_verb but memory_alias_add/memory_alias_list are prefix_noun_verb, and some wiki tools are prefix_verb_fts style. Still highly readable and predictable.
24 tools is on the heavy side but spans four distinct subsystems (memory, wiki, user profile, code), so the count is defensible. Wiki alone accounts for 11 tools, which could arguably be trimmed, but each has a distinct read-only or mutating role.
Broad coverage: memory store/read/search/batch/history/aliases/reflection, full wiki lifecycle (write/read/ls/search/export/graph/lint/stats/dedup/reindex/share), profile record/get/compile, plus code mapping. Main gap is the absence of any delete operation for memory or wiki entries (relies on overwrite), and code tooling stops at mapping with no file-body access.
Maintenance
Related MCP Connectors
Graph-native persistent memory for AI agents — 33 MCP tools, zero-LLM writes.
Hosted MCP memory for coding agents: persistent across sessions, editable markdown, team sharing.
Persistent memory, knowledge graph, task management and more for AI agents via MCP.
Shared long-term memory vault for AI agents with 20 MCP tools.
Related MCP Servers
- AlicenseBqualityFmaintenancePersistent memory, teams, and projects for AI agents. 76 MCP tools for storing, recalling, and sharing knowledge across sessions with 4-strategy hybrid search.33230 npm1MIT
- AlicenseBqualityDmaintenanceMemory for AI coding agents. Persistent code graph + AI architecture diagrams. 32 MCP tools3296 npm6MIT
- FlicenseNot gradedqualityCmaintenanceLocal-first cross-agent memory for AI coding agents. Persistent, shared memory over MCP — what you tell one agent can be recalled by another — with all data stored in a single local SQLite file, no cloud and no API keys.-
- AlicenseAqualityBmaintenanceMarkdown-first long-term memory for AI coding agents, enabling hybrid search over local files via MCP tools.922Apache 2.0