june-mcp
OfficialThe june-mcp server connects AI agents to a Junê knowledge graph, enabling grounded retrieval, cited answering, and persistent memory against a shared, tenant-isolated graph backend.
Query & Retrieve
june_answer: Get cited, grounded answers to factual questions; abstains rather than guessing when evidence is absent.june_search: Fused lexical + dense + graph-signal retrieval returning ranked nodes/snippets.june_enumerate: Exhaustively retrieve all nodes matching given predicates (terms, regex, types) — not just top-k — for complete aggregation queries.june_context: Assemble a token-budget-trimmed, alias-merged context pack ready for your own reasoning.june_neighborhood: Inspect all 1-hop edges around a known node to see its direct relations.june_subgraph: Multi-hop (depth ≤ 3) expansion around a node to map clusters of related entities.
Write & Ingest
june_remember: Persist plain text or markdown into the graph; entities and relations are extracted server-side automatically.june_ingest: Push explicit structured graph data (nodes + edge proposals) directly.june_ingest_file(opt-in): Upload local files (PDF, DOCX, XLSX, CSV, images, audio, etc.) from an operator-approved directory.
Maintenance & Advanced
june_enrich(Pro): Re-extract existing canvas artifacts with the richer Pro engine as a background job.june_resolve: Merge duplicate entities via reversiblesame_asedges, with optional fuzzy/semantic matching on Pro endpoints.
Configuration & Security
Connect to local, self-hosted, or hosted Team workspaces via environment variables (
JUNE_BASE_URL,JUNE_API_KEY,JUNE_CANVAS, etc.).Enforce read-only mode with
JUNE_READONLY=1.Securely forward bring-your-own LLM keys per-request without logging or storing them.
Run
--doctorfor pre-flight configuration and service health checks.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@june-mcpsearch for notes on the product launch meeting"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
june-mcp
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.
Claude Desktop / Claude Code ──stdio──▶ june-mcp ──HTTPS──▶ your June endpoint
(graph · retrieval · answers)Install
pip install june-mcp # just the connector (or: pipx install june-mcp)
pip install june-ai # umbrella: june-mcp + june-bench (the benchmark suite)
pip install "june-bench[mcp]" # the bench, with the connector as an extraRelated MCP server: knowledgeplane
Point it at a June endpoint
june-mcp speaks to any June service. Three ways to have one:
Junê desktop app (local-first). Run the Junê app and connect to its local engine — your files, graph, and keys stay on your machine.
Your own June service. Pro/Team customers running the
june-localengine package pointJUNE_BASE_URLat their own server.Hosted (Team). Point at your hosted June workspace endpoint with the API key from your console.
Configure
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 |
| ✅ | Your June endpoint, e.g. |
| ✅ | The canvas (workspace) to bind this connection to — a name ( |
| optional |
|
| ✅ | Your June API key ( |
| optional | Bring-your-own LLM key for cited answers — forwarded per-request as a header, never logged, never stored on the service |
| optional |
|
| optional | Opt-in directory agents may upload files from via |
| optional | Per-verb timeouts (defaults 15 s / 120 s) |
| optional | Logging is stderr-only by design — stdout is the MCP wire |
Check it before your agent does
JUNE_BASE_URL=http://localhost:8000 JUNE_API_KEY=... JUNE_CANVAS=work june-mcp --doctorThe 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.
Wire it into Claude
Claude Desktop — merge into claude_desktop_config.json (Settings → Developer):
{
"mcpServers": {
"june": {
"command": "june-mcp",
"env": {
"JUNE_BASE_URL": "http://localhost:8000",
"JUNE_API_KEY": "your-key",
"JUNE_CANVAS": "work",
"JUNE_LLM_KEY": "your-llm-provider-key"
}
}
}
}Claude Code:
claude mcp add june -e JUNE_BASE_URL=http://localhost:8000 \
-e JUNE_API_KEY=your-key -e JUNE_CANVAS=work \
-e JUNE_LLM_KEY=your-llm-provider-key -- june-mcpFully restart the host (Cmd+Q on macOS), then check the server shows 10 tools
(11 when you opt into june_ingest_file via JUNE_FILES_ROOT).
The tools
tool | what your agent gets |
| A grounded, cited answer from the graph — abstains rather than guesses |
| Ranked evidence for a query (supports multi-hop) |
| An assembled context pack under a token budget |
| The graph around one node |
| A bounded subgraph export |
| Write a fact/note into the graph (becomes retrievable + citable immediately) |
| Structured node/edge ingestion |
| EVERY node matching a predicate — recall-complete "list ALL X" (not top-k) |
| Upload one local file (pdf/docx/xlsx/csv/html/md/images/audio) from the operator-approved folder — only exists when you set |
| Pro: background re-extraction of the canvas with the richer engine (idempotent; job + poll; 403 on free) |
| Maintenance: merge duplicate entities via reversible |
Descriptions are written for the agent (what → when → returns), and every clamped input is visibly noted back to the agent instead of silently truncated.
Free vs Pro — the june-pro tag
june-mcp is one package for everyone; there is no separate "pro build". Pro is a property
of the endpoint, not the connector: connect to a Pro-activated June (a Pro license in the
app, a Pro key on a hosted workspace) and the same tools carry Pro-grade results: every
june_remember and june_ingest_file write runs the richer entity/edge engines automatically
(the result reports which engine ran), june_resolve upgrades to semantic matching, and
june_enrich backfills memories that were written on the free floor before you upgraded. The
terminal shows which world you're in: --doctor prints an edition line and the server's
startup banner tags the connection —
june-mcp: connected http://localhost:8000 canvas name "work" → 11d2… [june-pro]The tag is read from the service's own /v1/whoami (the same entitlement state that gates
Pro routes server-side), so it can't disagree with what you actually get — and it's
display-only: entitlements are enforced on the service no matter what any client prints.
Older services without /v1/whoami simply show no tag.
Security model
The tool surface exposes no canvas/workspace parameter — the workspace is bound server-side
from your connection's context, fail-closed. A cross-tenant read isn't a permission check that
could fail open; it's unrepresentable from the client. JUNE_READONLY=1 adds a second fence
for read-only deployments. Your BYO LLM key rides each answer request as a header and is never
persisted or logged by the service.
Errors
Every upstream failure maps to a typed, redacted error payload (built from exception type + HTTP status only — never from response bodies), so the server survives anything the endpoint throws and your agent sees a clean, actionable message.
License
MIT. The Junê engine itself is a separate, closed-source product — this connector is the open part, by design.
Maintenance
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceLocal MCP server for indexing personal knowledge into SQLite with hybrid search, chunk-level citations, memory tools, and agent orchestration.4MIT
- FlicenseNot gradedqualityCmaintenanceMCP server that gives AI agents and teams persistent, shared memory using a knowledge graph with vector embeddings, automatic consolidation of related facts, and hybrid search.3
- AlicenseNot gradedqualityAmaintenanceA universal MCP server providing persistent, structured memory through a knowledge graph with graph storage, semantic vector search, and multi-hop traversal for AI agents and IDEs.1MIT
- AlicenseNot gradedqualityCmaintenanceA local-first compiled knowledge graph MCP server that provides structured memory for AI agents with full-text search, vector embeddings, and timeline tracking.4108MIT
Related MCP Connectors
Agent-native MCP server over the public saagarpatel.dev corpus. Read-only, stateless.
Cloud-hosted MCP server for durable AI memory
Official remote MCP server for Archivist AI TTRPG campaign memory: characters, sessions, and more.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Junemind/june-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server