Mirsad
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MIRSAD_DB | No | Path to the SQLite database file used by MIRSAD (e.g. ~/mirsad.db). | |
| MIRSAD_TRANSPORT | No | Use 'stdio' when the server is started by an MCP client or catalog (e.g. via mcp-proxy); defaults to streamable-http for remote connectors. |
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| remember_factA | Store a fact about a subject. If another value is currently recorded
for the same subject+predicate, the old one is closed (not deleted) and,
when a different agent overwrites it, a conflict is opened for the user.
Always pass your own assistant name as |
| current_factC | The currently valid value for subject+predicate, with provenance. |
| timelineB | Every value ever recorded for a subject, with validity windows — including superseded ones. Use it to answer 'what changed and when?' |
| record_decisionB | Record a decision as ONE unit: the decision, why it was taken, the evidence behind it, which alternatives were rejected, and what it affects (files, functions, plans). Returns the decision id. |
| add_aliasA | Register another name for an entity (another language, spelling or script) so future lookups in that name resolve to the same entity. |
| record_outcomeC | Attach a later outcome/result to an existing decision. |
| whyB | Answer 'why did we choose X?' — full decision chains matching the topic: reasons, evidence, rejected alternatives, outcomes, and what superseded what. |
| recallC | Hybrid recall across facts, decisions and raw episodes. |
| open_conflictsC | Disagreements between agents that are waiting for the user's ruling. |
| resolve_conflictC | Close a conflict with the user's ruling, kept on record. |
| memory_statsB | Counts: entities, facts (total/current), decisions, open conflicts. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 11 tools
Most tools are cleanly separated by intent: writing (remember_fact, record_decision, record_outcome, add_alias), reading a single value (current_fact), history (timeline), decision reasoning (why), and conflict handling (open_conflicts/resolve_conflict). The only real overlap is between recall (hybrid search over facts/decisions/episodes) and why (topic-based decision chains) plus timeline, which are all retrieval paths an agent must choose between. Descriptions give enough cues (why = decision chains, timeline = subject history, recall = broad search) to keep misselection limited.
Naming is uniformly snake_case and readable, but mixes verb_noun names (remember_fact, record_decision, add_alias, record_outcome, resolve_conflict) with bare nouns or question-style names (current_fact, timeline, why, recall, open_conflicts, memory_stats). The mixed verb/noun style means an agent can't infer whether a tool reads or writes from the name alone (e.g. timeline vs current_fact).
Eleven tools is well within the sweet spot for a memory/knowledge-graph server, and each tool maps to a distinct lifecycle concern (facts, decisions, outcomes, aliases, conflicts, retrieval, stats). Nothing obvious is redundant or bolted on; memory_stats and add_alias are narrow but legitimately scoped.
The write/read/conflict/decision lifecycle is largely covered, but there are notable gaps: recall advertises search over 'raw episodes' yet no tool records an episode, and there is no retract/forget/delete operation (facts can only be superseded, not removed). There are also no listing/enumeration tools for entities or subjects, which limits discovery outside of targeted lookups.