Shared, cited knowledge-graph memory for agents — ask, search, and remember against a June endpoint
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent — or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag — we're steadily working through the catalog.
💡 Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Give your agent a memory. june-mcp is the official MCP
server for Junê — it connects any MCP host (Claude Desktop, Claude
Code, and friends) to a June knowledge graph, so your agent can ask, search, and remember
against a shared, cited, tenant-isolated memory.
This package is a thin, zero-logic connector: all retrieval, graph assembly, and answering happen on the June endpoint you point it at. No engine code lives here — which is why it's small enough to read in one sitting.
june-mcp speaks to any June service. Three ways to have one:
june-local engine package point
JUNE_BASE_URL at their own server.The server is fail-closed: it refuses to start unless it knows where to connect and as whom, and tells you everything that's missing in one message (not one error at a time).
| env | required | meaning |
|---|---|---|
JUNE_BASE_URL | ✅ | Your June endpoint, e.g. http://localhost:8000 |
JUNE_CANVAS | ✅ | The canvas (workspace) to bind this connection to — a name (work) or a canvas id. Names resolve to the id at startup; ambiguous names fail closed |
JUNE_CANVAS_CREATE | optional | 1 creates the named canvas on first run if it doesn't exist yet (refused in read-only mode) |
JUNE_API_KEY | ✅ | Your June API key (JUNE_ALLOW_ANON=1 explicitly opts out for keyless local setups) |
JUNE_LLM_KEY | optional | Bring-your-own LLM key for cited answers — forwarded per-request as a header, never logged, never stored on the service |
JUNE_READONLY | optional | 1 hides + refuses all write tools (memory becomes read-only) |
JUNE_TOOL_PROFILE | optional | compact (default), full, or lean. compact folds 17 related tools into seven family tools that take an op — 20 tools listed instead of 30, 11,359 prompt tokens instead of 13,236 on a Pro read-write connection. Every call is dispatched to the same code as before, so gates, canvas rules, receipts and two-phase confirms are unchanged. Measured on four hosts before it became the default: Claude Code 1.000 task success (baseline 0.987), GPT-5.4 direct 0.983 (0.957), Codex 0.922 (0.763), zero unsafe erases on every arm. full lists the 30 members under their own names — the same 0.4.2 code, one name each. lean exposes only the six verbs a coding agent uses (june_answer / june_context / june_search / june_remember / june_learn / june_usage) with a one-paragraph handshake, ~2.5k tokens — for sessions that only need to ask and remember |
JUNE_FILES_ROOT | optional | Opt-in directory agents may upload files from via june_ingest_file — unset ⇒ that tool doesn't exist |
JUNE_TIMEOUT_READ / JUNE_TIMEOUT_ANSWER | optional | Per-verb timeouts (defaults 15 s / 120 s) |
JUNE_TOOL_CONCURRENCY | optional | Max tool calls executing at once on this connection (default 8). Hosts pipeline requests over one stream; this is the explicit ceiling — excess calls queue, never stampede |
JUNE_DOCS_CANVAS | optional | Canvas holding the agent docs (standing instructions/skills — see Agent memory below). Default agent_docs; created on the first june_doc_save |
JUNE_DOCS_REFRESH | optional | 0 disables the periodic standing_docs digest (default on — it's the anti-forgetting safety net) |
JUNE_DOCS_REFRESH_CALLS / JUNE_DOCS_REFRESH_MINUTES | optional | Digest cadence: due every N tool calls (default 12) or M minutes (default 10), whichever comes first |
JUNE_DOCS_DIGEST_CHARS | optional | Serialized digest size cap (default 2000) |
JUNE_EXPORT_ROOT | optional | Opt-in repo directory the agent may export June pages/docs into as files (see Repo sync below) — unset ⇒ the three repo-sync tools don't exist |
JUNE_EXPORT_GIT | optional | 1 commits exactly the files each export wrote (pathspec-limited, never pushes) |
JUNE_EXPORT_DIR | optional | Agent-docs subtree inside the root (default docs/agent) |
JUNE_LOG_LEVEL | optional | Logging is stderr-only by design — stdout is the MCP wire |
The doctor verifies, in order: config → service reachable → canvas resolution (your canvas
name → its id, e.g. name "work" → 9147bee6-…) → search seam healthy → tool manifest, and
prints PASS/FAIL per check with a mapped hint (e.g. a missing name lists the canvases that DO
exist and points at JUNE_CANVAS_CREATE=1). The doctor exits 0 only when every check passes
(1 otherwise); the server itself exits 2 on a config error instead of starting half-wired.
Run the doctor first; it catches every common misconfiguration before your agent ever sees the server.
Claude Desktop — merge into claude_desktop_config.json (Settings → Developer):
Claude Code:
Fully restart the host (Cmd+Q on macOS), then check the server shows 20 tools — the
compact surface, the default since 0.4.2. JUNE_TOOL_PROFILE=full lists the same
capabilities as 30 individually named tools instead (31 when you opt into june_ingest_file
via JUNE_FILES_ROOT).
The default surface is compact: 20 tools, seven of which group related operations behind an
op argument. JUNE_TOOL_PROFILE=full lists the 30 members under their own names instead — same
capabilities, same gates, same behaviour.
| family tool | ops | folds |
|---|---|---|
june_graph | neighborhood, subgraph | june_neighborhood, june_subgraph |
june_maintain | enrich, resolve | june_enrich, june_resolve |
june_page_read | list, get, grammar | june_page_list, june_page_get (+ the block grammar on demand) |
june_page_edit | create, append, update | june_page_create, june_page_append, june_page_update |
june_canvas_read | list, current, use | june_canvas_list, june_canvas_current, june_canvas_use |
june_canvas_erase | clear, delete | june_canvas_clear, june_canvas_delete |
june_docs_read | refresh, list, get | june_docs_refresh, june_doc_list, june_doc_get |
Everything else keeps its own name: june_answer, june_search, june_enumerate, june_context,
june_usage, june_remember, june_ingest, june_page_write, june_page_delete,
june_canvas_create, june_doc_save, june_doc_delete, june_learn. A verb that can remove
something is never folded in with one that cannot — so june_page_write and june_page_delete
stay separate from june_page_edit, and each family carries one honest destructiveHint.
Old names keep working in your saved agent docs: the standing-docs digest carries the
old-name → new-name map, and a call to a folded name is refused with the exact replacement
(june_page_get is not a tool on this surface (compact): call june_page_read with op='get').
What each operation does:
Factual signals from GitHub, npm, and our automated checks — not a rating.
No reviews yet — be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/jun)<a href="https://allmcps.com/mcp/jun"><img src="https://allmcps.com/api/badge/jun?style=directory" alt="Junê on AllMCPs" /></a>