state-memory-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| STATE_MEMORY_MCP_DIR | No | Absolute path to directory where database files are stored. | .state-memory-mcp/ |
| STATE_MEMORY_WAL_MODE | No | SQLite journal mode (WAL, DELETE, TRUNCATE, PERSIST, MEMORY, OFF). | WAL |
| ALLOW_PRIVATE_WEBHOOKS | No | Alias flag for private network webhook dispatch approval. | false |
| STATE_MEMORY_ADMIN_KEY | No | Secret token required to execute administrative operations like prune_events. | undefined |
| STATE_MEMORY_READ_ONLY | No | Forces server into read-only access mode (true/false). | false |
| STATE_MEMORY_ADMIN_MODE | No | Enables administrative mode globally (true/false). | false |
| STATE_MEMORY_AUDIT_ONLY | No | Forces server into audit-only access mode (true/false). | false |
| STATE_MEMORY_MCP_PROJECT | No | Active project slug identifier override. | Auto-resolved from project directory |
| STATE_MEMORY_WEBHOOK_URL | No | Webhook HTTP POST endpoint for real-time state change notifications. | undefined |
| STATE_MEMORY_BUSY_TIMEOUT | No | SQLite database lock busy timeout in milliseconds. | 5000 |
| STATE_MEMORY_MAX_DB_BYTES | No | Maximum database size safety limit in bytes before rejecting writes. | 5368709120 |
| STATE_MEMORY_STRICT_AUDIT | No | Enforces strict cryptographic event log verification. | false |
| STATE_MEMORY_MCP_LOG_LEVEL | No | Logging verbosity on stderr (debug, info, warn, error). | info |
| STATE_MEMORY_ENCRYPTION_KEY | No | Hex or string key for AES-256-GCM metadata payload encryption at rest. | undefined |
| STATE_MEMORY_WEBHOOK_SECRET | No | Secret token sent as Authorization: Bearer <secret> in webhook headers. | undefined |
| STATE_MEMORY_WEBHOOK_TIMEOUT | No | Webhook HTTP POST timeout in milliseconds. | 5000 |
| STATE_MEMORY_MCP_DEFAULT_BRANCH | No | Fallback branch name if Git cannot be queried on startup. | main |
| STATE_MEMORY_CYCLE_DETECTION_MODE | No | Graph cycle detection policy (strict or best_effort). | strict |
| STATE_MEMORY_ALLOW_PRIVATE_WEBHOOKS | No | Allows dispatching webhooks to local/private network IP addresses. | false |
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
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| manage_nodesA | Manage graph nodes in the state graph (actions: create, update, get, remove, list, search, batch_create, batch_update, add_note). Use manage_nodes instead of manage_tasks when operating on general node types (decisions, artifacts, plans, milestones, blockers) rather than runnable task workflow states. Returns node object, edge connections, batch results, or search matches. |
| manage_edgesA | Manage typed graph relationships between nodes (actions: add, remove, batch_add, link_visual). Use manage_edges instead of manage_nodes when creating or modifying relationships between existing entities rather than entity data itself. Returns created edge record, batch count, or visual link confirmation. |
| manage_sessionsA | Manage agent tracking sessions and multi-turn workflow attribution (actions: start, end, list, bootstrap). Use manage_sessions instead of manage_tasks when establishing agent session boundaries and tracking multi-turn workflows rather than individual work items. Returns session record, bootstrap context snapshot, or active session listing. |
| manage_tasksA | Task prioritization, workflow execution, blockers, and stale task management (actions: next, complete, find_blocked, find_stale, find_blockers, find_similar_blockers, auto_prune). Use manage_tasks instead of query_graph when querying runnable tasks by priority order or resolving execution blockers. Returns prioritized runnable tasks, blocker hierarchy, similar resolved blockers, or completion confirmation. |
| manage_snapshotsA | State checkpointing, time travel, diffing, and undo operations (actions: save, list, diff, get_state, revert, undo, get_history). Use manage_snapshots instead of manage_database when reverting state graph mutations or comparing checkpoints rather than physical database file maintenance. Returns snapshot record, state graph diff, historical graph state, or node audit history. |
| manage_specsA | Spec-Driven Development (SDD) lifecycle and workflow template generation (actions: scaffold, ingest, export, compliance, verify, decompose_feature, template). Use manage_specs instead of manage_nodes when authoring, ingesting, or verifying formal SDD specifications against acceptance criteria. Returns specification AST, compliance matrix, verification verdict, or decomposed feature plan. |
| manage_databaseA | Physical SQLite database maintenance, backups, integrity checks, and Git VCS state sync (actions: backup, restore, audit, merge, branch_diff, branch_merge). Use manage_database instead of manage_snapshots when managing physical SQLite files, cross-branch merges, or database corruption audits. Returns database backup path, foreign key integrity report, branch merge conflict report, or diff. |
| manage_dataA | Export and import graph structures, issue tracker items, fine-tuning trajectories, and multimodal synergy metrics (actions: export_graph, export_issues, export_trajectories, export_joint_trajectories, export_synergy_metrics, from_tick, import_graph, import_issues, import_spec). Use manage_data instead of query_graph when bulk-transferring graph data or generating AI training datasets. Returns serialized graph payload, trajectory dataset, synergy metrics, or import statistics. |
| query_graphA | Query graph topology, neighborhoods, dependency paths, safe read-only SQL queries, and compact System One task slices (actions: subgraph, trace, raw, natural_language, compact_slice). Use query_graph instead of get_analytics when exploring graph topology and path traversals rather than aggregated numerical metrics. Returns subgraph nodes and edges, upstream/downstream trace path, raw SQL rows, or compact task slice. |
| get_analyticsA | Compute workflow metrics, velocity, burndown, cognitive load, decision lineages, and contradiction audits (actions: summary, velocity, burndown, value_metrics, cognitive_load, critical_path, context_snapshot, active_context, decision_trail, find_related_decisions, contradictions). Use get_analytics instead of query_graph when calculating high-level progress statistics, ROI metrics, or auditing decision conflicts. Returns summary dashboard, velocity charts, burndown series, cognitive load metrics, critical path DAG, or contradiction reports. |
| get_eventsA | Inspect the append-only event audit ledger, query structured changesets, and generate session post-mortems (actions: log, changelog, post_mortem). Use get_events instead of manage_snapshots when examining the granular chronological sequence of mutations rather than restoring state checkpoints. Returns chronological event array, structured changeset diff, or session post-mortem markdown report. |
| run_diagnosticsA | Run graph sanity checks, health diagnostics, reference validation, audit chain verification, and storage maintenance (actions: validate, doctor, check_refs, audit_chain, compact, archive, prune_events, version, dedupe). Use run_diagnostics instead of get_analytics when performing database repair, AST reference auto-healing, or verifying SHA-256 event hash chains. Returns validation diagnostics, health report, broken reference repair log, Merkle chain audit, or maintenance stats. |
| use_blackboardA | Multi-agent shared blackboard for asynchronous coordination and mutex leases (actions: get, set, delete, lease, list, post, read). Use use_blackboard instead of manage_nodes when exchanging transient inter-agent messages or mutex resource leases rather than recording persistent graph knowledge. Returns blackboard message payload, lease acquisition status, active topic list, or deletion confirmation. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| review-decisions | Review accepted design decisions and check for contradictions |
| triage-blockers | Review and triage active blockers across the dependency graph |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| state-health | Server health status, version, and timestamp |
| docs-manage_nodes | Complete parameter schema and documentation for manage_nodes |
| docs-manage_edges | Complete parameter schema and documentation for manage_edges |
| docs-manage_sessions | Complete parameter schema and documentation for manage_sessions |
| docs-manage_tasks | Complete parameter schema and documentation for manage_tasks |
| docs-manage_snapshots | Complete parameter schema and documentation for manage_snapshots |
| docs-manage_specs | Complete parameter schema and documentation for manage_specs |
| docs-manage_database | Complete parameter schema and documentation for manage_database |
| docs-manage_data | Complete parameter schema and documentation for manage_data |
| docs-query_graph | Complete parameter schema and documentation for query_graph |
| docs-get_analytics | Complete parameter schema and documentation for get_analytics |
| docs-get_events | Complete parameter schema and documentation for get_events |
| docs-run_diagnostics | Complete parameter schema and documentation for run_diagnostics |
| docs-use_blackboard | Complete parameter schema and documentation for use_blackboard |
TDQS
Scored across 13 tools
The descriptions are unusually thorough with explicit 'use X instead of Y' guidance, which genuinely helps separate tools like manage_nodes vs manage_edges vs use_blackboard and manage_snapshots vs manage_database vs get_events. However, the underlying domain heavily overlaps: nodes/edges/specs/blackboard all manipulate graph-like entities, and query_graph/get_analytics/run_diagnostics all operate on the same graph for read, aggregate, and maintenance purposes. Boundaries are clarified by prose rather than being intrinsically clean.
Most tools use a manage_* pattern (manage_data, manage_nodes, manage_edges, manage_sessions, manage_tasks, manage_snapshots, manage_specs, manage_database), which is consistent. But the remaining tools break the pattern with distinct verbs (query_graph, get_analytics, get_events, run_diagnostics, use_blackboard), producing mixed conventions. It remains readable, but there is no single predictable verb_noun scheme.
13 tools is within the well-scoped range and appropriate for a state/memory graph server covering graph, tasks, sessions, specs, analytics, events, and diagnostics. The design consolidates many operations as actions within each tool rather than exploding the tool count, keeping the surface manageable. Slightly heavy given the breadth, but reasonable.
Coverage is broad: node/edge CRUD, task workflow, sessions, snapshots/time-travel, specs, database maintenance, graph queries, analytics, event ledger, diagnostics, and multi-agent blackboard. Most lifecycle operations (create, update, get, list, remove, batch) appear across the mutation tools. Minor gaps exist, such as bulk-delete actions being less explicit than bulk-create.