Junto Memory

productivity MCP Server

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.

Verified
productivityproductivitymongodb
4 views4 stars2 forksMIT

Why This Matters

Discovered via github-topic:mcp-server and last synced 3mo ago.

Verified
Source
github-topic:mcp-server
Stars
4
Last synced
3mo ago
Install
Check source

Install

Install instructions not detected yet

Check the source repository for the latest setup steps.

View source instructions
63
Tools
0
Resources
0
Prompts
Standard I/O
Transport

Available Tools (63)

Optional

E[(External DBs)] ``` The server runs as a single Docker Compose stack. AI agents connect over MCP (streamable HTTP transport on port 8080). All knowledge, messages, and coordination state are persisted across restarts in MongoDB and ChromaDB volumes. --- ## Install — Hand It to Your AI This server is designed for AI coding agents, so the install procedure is too. Clone the repo, then ask your agent to install it for you: ```bash git clone https://github.com/tlemmons/mcp-shared-memory.git cd mcp-shared-memory # Now hand the prompt below to your AI agent in a fresh session. ``` Copy this prompt to a fresh Claude Code (or Cursor, or any MCP-capable agent) session in the cloned directory: > Install the MCP Shared Memory Server in this repository for me. Read `AGENT_INSTALL.md` and follow it step by step. Use the root-level `docker-compose.yml`. Stop and confirm with me before any destructive operation, before any change that needs a real value (passwords, API keys, port choices), and before enabling auth. When the install is done, run the smoke test described in the doc and report all six done-when results back to me. The agent walks through prerequisites, env-file configuration, container start, health check, and MCP-client config — pausing at the right places to ask you for decisions (passwords, ports, auth on/off). **Why this way?** The install has accumulated enough operational gotchas — Chroma volume mount path, Mongo init credentials, the auth env-var with soft-fallback, the difference between localhost and remote-host trust models — that a 6-line quickstart misleads more often than it helps. `AGENT_INSTALL.md` is dense, branchy, and tested against the actual current code; an agent reads and executes it in a few minutes. If you don't trust an AI agent to run the install, this server is probably not for you — its whole purpose is to coordinate fleets of AI agents working on real codebases. **Manual install:** `AGENT_INSTALL.md` is human-readable too. It's denser than typical README prose, but follow it the same way and the install works. After install, MongoDB listens on `localhost:27019`, ChromaDB on `localhost:8001`, and the MCP server on `localhost:8080`. ### Your First Session Once connected, your agent's first interaction looks like this: ``` Agent: memory_start_session(project="my-app", claude_instance="main") → Returns: session ID, any prior learnings, active work, handoff notes Agent: memory_record_learning( session_id="...", topic="postgres connection pooling", content="PgBouncer silently drops connections after 5 min idle. Must set keepalive_idle=60 in connection string or requests fail with 'server closed the connection unexpectedly'." ) → Stored. Next session, memory_start_session returns this automatically. Agent: memory_register_function( session_id="...", name="retry_with_backoff", file_path="src/utils/resilience.py:42", purpose="Retry async calls with exponential backoff and jitter", gotchas="Max 5 retries. Raises RetryExhausted, not the original exception." ) → Registered. Any future agent asking "how do we handle retries?" finds this via memory_find_function. ``` Three calls. Your agent now has persistent memory, and every future session starts with context instead of a blank slate. --- ## Connecting Your AI ### Claude Code Add to `~/.claude.json` (or your project's `.mcp.json`): ```json { "mcpServers": { "shared-memory": { "type": "http", "url": "http://localhost:8080/mcp" } } } ``` > **Note on transport naming:** the underlying MCP protocol is "streamable HTTP", but the value in the JSON config file is `"http"` for Claude Code 2.x. Using `"streamable-http"` in the config triggers a schema validation error. ### Cursor Add to `.cursor/mcp.json` in your project root: ```json { "mcpServers": { "shared-memory": { "type": "http", "url": "http://localhost:8080/mcp" } } } ``` ### Any MCP-Compatible Client Point your client to the MCP endpoint: ``` URL: http://localhost:8080/mcp Transport: Streamable HTTP (stateless) ``` **Stdio transport** is also supported for clients that prefer it. Pass `--transport stdio` when starting the server: ```bash # From the project root: python server.py --transport stdio # Or as a module (from the src/ directory): python -m shared_memory --transport stdio ``` Example MCP client config for stdio mode: ```json { "mcpServers": { "shared-memory": { "type": "stdio", "command": "python", "args": ["-m", "shared_memory", "--transport", "stdio"], "cwd": "/path/to/mcp-shared-memory/src" } } } ``` No API keys or authentication tokens are required for local use (see [Security](#security) for remote deployments). --- ## Tool Reference 48 tools organized into 14 categories. (For the canonical, current list with grouping and end-to-end flows, see the architecture spec inside the server: `memory_get_spec(name="architecture:shared-memory-v1", project="shared_memory")`.) ### Session Management (2)

memory_add_backlog_item

Add a task, feature request, or tech debt item to the backlog.

memory_update_message_status

Track message lifecycle: pending, delivered, received, completed, failed.

memory_get_enrichment_queue

View functions awaiting librarian enrichment.

MONGO_DB

`mcp_orchestrator`

true

Enforce read-only queries.

memory_store

Store a new document (architecture, API spec, code snippet, interface contract, etc.).

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_find_function

Search for functions by purpose or name. Check before implementing to avoid duplication.

MONGO_PASSWORD

`changeme`

MCP_AUTH_ENABLED

`false`

agent

Standard agent access, scoped to assigned projects

Capability

Typical MCP Memory Server

Tool

Description

memory_complete_backlog_item

Mark a backlog item as done or won't-do, with optional resolution notes.

memory_list_agents

Discover registered agents across projects with roles and last activity.

memory_define_spec

Create or update a versioned spec with owner-only enforcement. Supports semver and history.

memory_db

Read-only queries against registered external databases. Actions: `list`, `schema`, `query`. SQL injection protection built in.

memory_archive_by_tag

Bulk archive all documents matching a tag (e.g., end-of-version cleanup).

CHROMA_HOST

`localhost`

Role

Access

memory_end_session

Record a summary, files modified, and handoff notes. Releases all locks. Call this when done.

memory_list_projects

List all projects with document counts. No session required.

No

Yes — Read-only SQL queries (MSSQL, MySQL) against your project databases

memory_start_session

Register a session and receive context: recent learnings, active agents, file locks, pending signals. Call this first.

memory_search_global

Search across all projects and shared collections at once.

memory_list_backlog

List backlog items with filters: project, status, priority, assignee, milestone.

Checklists

No

memory_record_learning

Quick shortcut to record a learning, gotcha, or technique for other agents.

memory_acknowledge_message

Mark a message as received (shortcut for status update).

memory_enrich_function

Add deep analysis to a function ref: signature, parameters, side effects, complexity. For librarian use.

memory_project

Manage projects and agents. Actions: `create`, `get`, `list`, `delete`, `add_agent`, `remove_agent`, `update_agent`.

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.

Yes

Yes — MongoDB + ChromaDB vector search

memory_query

Search the knowledge base by natural language. Returns relevant docs with relevance scores.

memory_lock_files

Atomically lock files for exclusive editing. Supports directory locks. Auto-releases on session end.

memory_get_spec

Retrieve a spec by name, optionally at a specific historical version.

memory_restore_by_tag

Bulk restore previously archived documents by tag.

CHROMA_PORT

`8001`

owner

Full access — manage API keys, guidelines, all projects

memory_get_by_id

Retrieve a specific document by its exact ID.

memory_unlock_files

Release specific file locks or all locks held by your session.

memory_send_message

Send a message to another agent. Supports categories (task, question, blocker, etc.) and threading.

memory_register_function

Register a function reference with name, file, purpose, and optional gotchas. Triggers librarian enrichment.

memory_list_specs

List all specs with optional version history and type filtering.

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.

Variable

Default

admin

Manage backlog, specs, functions, messaging across all projects

memory_update_backlog_item

Update a backlog item's status, priority, assignee, or description.

memory_get_agent_status

Get heartbeat status of agents. Flags agents stale after 5 minutes.

memory_change_status

Change a document's status: active, deprecated, superseded, archived. Preserves history.

memory_heartbeat

Send a heartbeat with your current status (idle, busy, error). Enables stale detection.

memory_become_librarian

Get a prompt and unenriched functions to run local enrichment on your machine.

memory_checklist

Shared checklists for launch readiness, deploy steps, etc. Actions: `create`, `get`, `add`, `check`, `delete`, `list`.

memory_update_work

Update your current work status and files touched. Enables overlap detection and dependency signaling.

MONGO_HOST

`localhost`

30

Query timeout in seconds.

MONGO_USER

`mcp_orch`

1433

External database port.

readonly

Query and search only, no writes

MONGO_PORT

`27019`

500

Maximum rows returned per query.