Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
DUDUCLAW_MCP_API_KEYNoOptional. A standalone key from `duduclaw mcp init`. When unset, the container issues its own key limited to memory and wiki tools.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
memory_searchA

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.

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.

memory_readA

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.

memory_fetch_batchA

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.

memory_alias_addA

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.

memory_alias_listA

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.

memory_get_historyA

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.

memory_get_atA

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.

code_mapA

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.

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.

user_profile_getA

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.

user_code_profileA

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.

wiki_lsA

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.

wiki_readA

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.

wiki_writeA

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.

wiki_searchA

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.

wiki_lintA

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.

wiki_statsA

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.

wiki_exportA

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.

wiki_dedupA

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.

wiki_graphA

Render the wiki link graph as a Mermaid diagram (nodes = pages, edges = related links), or only pages within depth hops of center. Read-only.

wiki_rebuild_ftsA

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.

wiki_shareA

Publish a summary of one of your wiki pages to the shared wiki at sources/--.md with attribution; re-sharing overwrites it. Secret-scanned. Full shared pages: wiki_write scope=shared.

memory_improveA

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.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4/5.0

Scored across 24 tools

Disambiguation4/5

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.

Naming Consistency4/5

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.

Tool Count4/5

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.

Completeness4/5

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

ActivityNo data
ResponsivenessResponsive