Persistent shared memory and coordination MCP server for multi-agent AI workflows. The memory component of the Junto system. MongoDB + ChromaDB. Production-tested with 6+ agents over 500+ sessions.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
tools
-
memory_acknowledge_message
Mark a message as received (shortcut for status update).
-
memory_add_backlog_item
Add a task, feature request, or tech debt item to the backlog.
-
memory_admin
Manage API keys and view audit logs. Actions: create_key, revoke_key, list_keys, audit_log, auth_status. Requires owner role when auth is enabled.
-
memory_archive_by_tag
Bulk archive all documents matching a tag (e.g., end-of-version cleanup).
-
memory_become_librarian
Get a prompt and unenriched functions to run local enrichment on your machine.
-
memory_change_status
Change a document's status: active, deprecated, superseded, archived. Preserves history.
-
memory_checklist
Shared checklists for launch readiness, deploy steps, etc. Actions: create, get, add, check, delete, list.
-
memory_complete_backlog_item
Mark a backlog item as done or won't-do, with optional resolution notes.
-
memory_db
Read-only queries against registered external databases. Actions: list, schema, query. SQL injection protection built in.
-
memory_define_spec
Create or update a versioned spec with owner-only enforcement. Supports semver and history.
-
memory_end_session
Record a summary, files modified, and handoff notes. Releases all locks. Call this when done.
-
memory_enrich_function
Add deep analysis to a function ref: signature, parameters, side effects, complexity. For librarian use.
-
memory_find_function
Search for functions by purpose or name. Check before implementing to avoid duplication.
-
memory_get_agent_status
Get heartbeat status of agents. Flags agents stale after 5 minutes.
-
memory_get_by_id
Retrieve a specific document by its exact ID.
-
memory_get_enrichment_queue
View functions awaiting librarian enrichment.
-
memory_get_locks
View current file locks with stale detection (inactive > 30 min).
-
memory_get_messages
Get pending messages for your agent. Scoped by project.
-
memory_get_spec
Retrieve a spec by name, optionally at a specific historical version.
-
memory_guidelines
Manage behavioral rules that all agents receive at session start. Actions: list, set, delete, get. Update once, every agent on every machine picks it up.
-
memory_heartbeat
Send a heartbeat with your current status (idle, busy, error). Enables stale detection.
-
memory_list_agents
Discover registered agents across projects with roles and last activity.
-
memory_list_backlog
List backlog items with filters: project, status, priority, assignee, milestone.
-
memory_list_projects
List all projects with document counts. No session required.
-
memory_list_specs
List all specs with optional version history and type filtering.
-
memory_lock_files
Atomically lock files for exclusive editing. Supports directory locks. Auto-releases on session end.
-
memory_project
Manage projects and agents. Actions: create, get, list, delete, add_agent, remove_agent, update_agent.
-
memory_query
Search the knowledge base by natural language. Returns relevant docs with relevance scores.
-
memory_record_learning
Quick shortcut to record a learning, gotcha, or technique for other agents.
-
memory_register_function
Register a function reference with name, file, purpose, and optional gotchas. Triggers librarian enrichment.
-
memory_restore_by_tag
Bulk restore previously archived documents by tag.
-
memory_search_global
Search across all projects and shared collections at once.
-
memory_send_message
Send a message to another agent. Supports categories (task, question, blocker, etc.) and threading.
-
memory_start_session
Register a session and receive context: recent learnings, active agents, file locks, pending signals. Call this first.
-
memory_store
Store a new document (architecture, API spec, code snippet, interface contract, etc.).
-
memory_unlock_files
Release specific file locks or all locks held by your session.
-
memory_update_backlog_item
Update a backlog item's status, priority, assignee, or description.
-
memory_update_message_status
Track message lifecycle: pending, delivered, received, completed, failed.
-
memory_update_work
Update your current work status and files touched. Enables overlap detection and dependency signaling.
analyzed commit 0e2a7ce · analyzer v18 · 1h ago
skills & prompt files 1
- agent-rulestlemmons-junto-memory-0e2a7ce/CLAUDE.md
filesystem 6
- fs tlemmons-junto-memory-0e2a7ce/contrib/orchestrator/claude-spawn.py :22
from pathlib import Path - fs tlemmons-junto-memory-0e2a7ce/contrib/ui/app.py :269
stdout=open("/tmp/dispatcher.log", "w"), - fs tlemmons-junto-memory-0e2a7ce/librarian.py :25
from pathlib import Path - fs tlemmons-junto-memory-0e2a7ce/src/shared_memory/__main__.py :9
from pathlib import Path - fs tlemmons-junto-memory-0e2a7ce/src/shared_memory/sync_engine.py :78
from pathlib import Path - fs tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/messaging.py :320
pending_action_open — pending ACTION msgs with obligation open (or a
shell / exec 5
- shell tlemmons-junto-memory-0e2a7ce/contrib/orchestrator/brain.py :18
import subprocess - shell tlemmons-junto-memory-0e2a7ce/contrib/orchestrator/claude-spawn.py :18
import subprocess - shell tlemmons-junto-memory-0e2a7ce/contrib/orchestrator/dispatcher.py :21
import subprocess - shell tlemmons-junto-memory-0e2a7ce/contrib/ui/app.py :10
import subprocess - shell tlemmons-junto-memory-0e2a7ce/contrib/ui/tmux-proxy.py :11
import subprocess
network 4
- net tlemmons-junto-memory-0e2a7ce/contrib/orchestrator/dispatcher.py :26
import requests - net tlemmons-junto-memory-0e2a7ce/librarian.py :28
import httpx - net tlemmons-junto-memory-0e2a7ce/src/shared_memory/push_control.py :1232
import httpx # lazy import — only needed on the rare hard-trip path - net tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/functions.py :41
import httpx
secrets 1
- secrets tlemmons-junto-memory-0e2a7ce/src/shared_memory/sync_engine.py :548
p.add_argument("--primary-key", default=os.environ.get("JUNTO_SYNC_PRIMARY_KEY"))
database 8
- db tlemmons-junto-memory-0e2a7ce/contrib/migrate_normalize_projects.py :17
from pymongo import MongoClient - db tlemmons-junto-memory-0e2a7ce/contrib/orchestrator/brain.py :23
from pymongo import MongoClient - db tlemmons-junto-memory-0e2a7ce/contrib/orchestrator/dispatcher.py :30
from pymongo import MongoClient - db tlemmons-junto-memory-0e2a7ce/contrib/ui/app.py :19
from pymongo import MongoClient - db tlemmons-junto-memory-0e2a7ce/src/shared_memory/clients.py :9
from pymongo import MongoClient - db tlemmons-junto-memory-0e2a7ce/src/shared_memory/op_log.py :27
from pymongo import ASCENDING, ReturnDocument - db tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/messaging.py :15
from pymongo import ReturnDocument - db tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/sync.py :43
from pymongo.errors import DuplicateKeyError
tool registrations 57
- memory_admin tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/admin.py :21
- memory_set_autopilot tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/autopilot.py :59
- memory_pause_autopilot tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/autopilot.py :138
- memory_autopilot_status tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/autopilot.py :202
- memory_autopilot_count tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/autopilot.py :259
- memory_autopilot_digest tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/autopilot.py :323
- memory_autopilot_check_budget tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/autopilot.py :391
- memory_add_backlog_item tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/backlog.py :25
- memory_list_backlog tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/backlog.py :145
- memory_update_backlog_item tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/backlog.py :311
- memory_complete_backlog_item tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/backlog.py :459
- memory_batch_backlog tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/backlog.py :551
- memory_checklist tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/checklists.py :14
- memory_db tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/database.py :175
- memory_health tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/diagnostics.py :21
- memory_register_function tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/functions.py :55
- memory_find_function tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/functions.py :251
- memory_get_enrichment_queue tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/functions.py :390
- memory_become_librarian tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/functions.py :426
- memory_enrich_function tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/functions.py :583
- memory_guidelines tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/guidelines.py :50
- memory_update_work tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/lifecycle.py :22
- memory_change_status tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/lifecycle.py :139
- memory_archive_by_tag tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/lifecycle.py :229
- memory_restore_by_tag tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/lifecycle.py :350
- memory_lock_files tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/locking.py :20
- memory_unlock_files tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/locking.py :127
- memory_get_locks tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/locking.py :183
- memory_send_message tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/messaging.py :595
- memory_get_messages tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/messaging.py :1023
- memory_update_message_status tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/messaging.py :1348
- memory_claim_message tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/messaging.py :1442
- memory_acknowledge_message tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/messaging.py :1553
- memory_heartbeat tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/messaging.py :1571
- memory_get_agent_status tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/messaging.py :1627
- memory_list_agents tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/messaging.py :1675
- memory_project tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/projects.py :66
- memory_list_alerts tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/push_control_api.py :24
- memory_get_emission_stats tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/push_control_api.py :82
- memory_query tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/query.py :48
- memory_get_by_id tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/query.py :302
- memory_get_active_work tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/query.py :386
- memory_set_reminder tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/scheduler.py :72
- memory_cancel_reminder tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/scheduler.py :205
- memory_list_reminders tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/scheduler.py :247
- memory_search_global tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/search.py :15
- memory_list_projects tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/search.py :104
- memory_start_session tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/sessions.py :106
- memory_end_session tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/sessions.py :634
- memory_define_spec tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/specs.py :27
- memory_get_spec tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/specs.py :339
- memory_list_specs tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/specs.py :465
- memory_standup tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/standup.py :49
- memory_store tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/storage.py :28
- memory_record_learning tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/storage.py :249
- memory_sync_pull tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/sync.py :156
- memory_sync_push tlemmons-junto-memory-0e2a7ce/src/shared_memory/tools/sync.py :1125
declared dependencies 6
- pymssql@>=2.2.0
- anthropic@*
- httpx@*
- pytest@>=8.0
- pytest-asyncio@>=0.23
- ruff@>=0.4.0