Junê (june-mcp)
官方Give your agent a memory: shared, cited, tenant-isolated knowledge-graph memory for any MCP host. Grounded answers from a local-first June endpoint — abstains rather than guesses.
你可以用 Junê (june MCP 做什麼?
- 引用記憶的引用回答 — 讓您的 AI 使用
june_answer回答問題,該工具會從知識圖譜中返回有根據且附引用的回應,並在無法確定時選擇不猜測。 - 搜尋並探索圖譜 — 使用
june_search取得排名後的多跳證據,使用june_neighborhood檢查節點周圍的連結,或使用june_subgraph匯出有界圖譜區域。 - 寫入新記憶 — 讓您的代理程式使用
june_remember記錄事實或筆記,使其立即可檢索且可引用,或透過june_ingest匯入結構化節點/邊。 - 列出所有符合謂詞的項目 — 使用
june_enumerate請求完整回想的節點列舉,該工具會返回所有匹配項目,而非僅是 top-k 樣本。 - 匯入本機檔案 — 當
JUNE_FILES_ROOT已設定時,使用june_ingest_file從核准的資料夾上傳支援的文件(PDF、DOCX、XLSX、CSV、HTML、MD、圖片、音訊)。 - 合併重複實體 — 執行
june_resolve透過可逆的same_as邊來合併重複實體,並在 Pro 端點上提供可選的語意層級。
文件
june-mcp
為您的代理程式賦予記憶。 june-mcp 是 Junê 的官方 MCP 伺服器 — 它將任何 MCP 主機(Claude Desktop、Claude Code 等)連接到 June 知識圖譜,讓您的代理程式可以針對共享、帶引用、租戶隔離的記憶進行提問、搜尋和記憶。
此套件是一個輕量、零邏輯的連接器:所有檢索、圖譜組裝和回答都在您指定的 June 端點上完成。此處不含任何引擎程式碼 — 這就是為什麼它小到可以一口氣讀完。
Claude Desktop / Claude Code ──stdio──▶ june-mcp ──HTTPS──▶ your June endpoint
(graph · retrieval · answers)
安裝
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 extra
指向 June 端點
june-mcp 可與任何 June 服務對話。取得服務的三種方式:
- Junê 桌面應用程式(本機優先)。 執行 Junê 應用程式 並連接到其本機引擎 — 您的檔案、圖譜和金鑰都保留在您的機器上。
- 您自己的 June 服務。 執行
june-local引擎套件的 Pro/Team 客戶將JUNE_BASE_URL指向自己的伺服器。 - 託管(Team)。 使用您控制台中的 API 金鑰指向您託管的 June 工作區端點。
設定
伺服器採取**預設關閉(fail-closed)**策略:除非知道要連接到哪裡以及以什麼身份連接,否則拒絕啟動,並在一則訊息中告訴您所有缺少的項目(而不是一次只報一個錯誤)。
| 環境變數 | 必填 | 說明 |
|---|---|---|
JUNE_BASE_URL | ✅ | 您的 June 端點,例如 http://localhost:8000 |
JUNE_CANVAS | ✅ | 此連線要綁定的畫布(工作區)— 一個名稱(work)或畫布 id。名稱在啟動時解析為 id;模糊的名稱會以 fail-closed 方式拒絕 |
JUNE_CANVAS_CREATE | 選用 | 1 在首次執行時建立指定名稱的畫布(若尚不存在)(唯讀模式下會拒絕) |
JUNE_API_KEY | ✅ | 您的 June API 金鑰(JUNE_ALLOW_ANON=1 明確選擇退出以支援無金鑰的本機設定) |
JUNE_LLM_KEY | 選用 | 用於帶引用回答的自備 LLM 金鑰 — 以 header 方式隨每個請求轉發,絕不記錄、絕不儲存在服務上 |
JUNE_READONLY | 選用 | 1 隱藏並拒絕所有寫入工具(記憶變成唯讀) |
JUNE_FILES_ROOT | 選用 | 選擇加入的目錄,代理程式可透過 june_ingest_file 從中上傳檔案 — 未設定 ⇒ 該工具不存在 |
JUNE_TIMEOUT_READ / JUNE_TIMEOUT_ANSWER | 選用 | 每個動詞的逾時(預設 15 秒 / 120 秒) |
JUNE_LOG_LEVEL | 選用 | 記錄設計上僅輸出到 stderr — stdout 是 MCP 通訊管道 |
在您的代理程式之前先檢查
JUNE_BASE_URL=http://localhost:8000 JUNE_API_KEY=... JUNE_CANVAS=work june-mcp --doctor
醫生(doctor)依序驗證:設定 → 服務可達性 → 畫布解析(您的畫布名稱 → 其 id,例如 name "work" → 9147bee6-…)→ 搜尋接縫健康 → 工具清單,並針對每項檢查列印 PASS/FAIL 並附上對應的提示(例如缺少名稱時會列出確實存在的畫布並指向 JUNE_CANVAS_CREATE=1)。醫生只有在所有檢查都通過時才以 0 退出(否則為 1);伺服器本身在設定錯誤時以 2 退出,而不是以半接線狀態啟動。先執行醫生;它會在您的代理程式看到伺服器之前捕捉所有常見的設定錯誤。
接入 Claude
Claude Desktop — 合併到 claude_desktop_config.json(設定 → 開發人員):
{
"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-mcp
完全重新啟動主機(macOS 上按 Cmd+Q),然後確認伺服器顯示 10 個工具(當您透過 JUNE_FILES_ROOT 選擇加入 june_ingest_file 時為 11 個)。
工具
| 工具 | 您的代理程式獲得 |
|---|---|
june_answer | 來自圖譜的、有根據的、帶引用的回答 — 寧可棄權也不猜測 |
june_search | 查詢的排序證據(支援多跳) |
june_context | 在 token 預算內組裝的上下文套件 |
june_neighborhood | 單一節點周圍的圖譜 |
june_subgraph | 有範圍限制的子圖匯出 |
june_remember | 將事實/筆記寫入圖譜(立即變得可檢索且可引用) |
june_ingest | 結構化節點/邊的匯入 |
june_enumerate | 符合謂詞的所有節點 — 召回完整的「列出所有 X」(非 top-k) |
june_ingest_file | 從操作者核准的資料夾上傳一個本機檔案(pdf/docx/xlsx/csv/html/md/圖片/音訊)— 僅在您設定 JUNE_FILES_ROOT 時存在 |
june_enrich | Pro: 使用更豐富的引擎對畫布進行背景重新萃取(冪等;任務 + 輪詢;免費版回傳 403) |
june_resolve | 維護:透過可逆的 same_as 邊合併重複實體(在伺服器端執行;strong_only=false 在 Pro 上解鎖語意層) |
描述是為代理程式撰寫的(什麼 → 何時 → 回傳),每個被截斷的輸入都會明顯地回報給代理程式,而不是默默地截斷。
Free vs Pro — june-pro 標籤
june-mcp 是適用於所有人的單一套件;沒有獨立的「pro 版本」。Pro 是端點的屬性,而不是連接器的屬性:連接到已啟用 Pro 的 June(應用程式中的 Pro 授權、託管工作區上的 Pro 金鑰),相同的工具就會帶來 Pro 級別的結果:每次 june_remember 和 june_ingest_file 寫入都會自動執行更豐富的實體/邊引擎(結果會回報執行了哪些 engine),june_resolve 升級為語意比對,june_enrich 會回填您在升級之前於免費層寫入的記憶。終端機會顯示您所在的世界:--doctor 會列印一行 edition,伺服器的啟動橫幅會標記該連線 —
june-mcp: connected http://localhost:8000 canvas name "work" → 11d2… [june-pro]
該標籤從服務自身的 /v1/whoami 讀取(與伺服器端控制 Pro 路由的授權狀態相同),因此它不可能與您實際獲得的內容不一致 — 而且它僅供顯示:無論任何用戶端列印什麼,授權都在服務端強制執行。沒有 /v1/whoami 的舊版服務只會不顯示標籤。
安全模型
工具表面不暴露任何畫布/工作區參數 — 工作區是在伺服器端從您連線的上下文綁定的,採取 fail-closed。跨租戶讀取不是可能 fail-open 的權限檢查;它在用戶端是無法表示的。JUNE_READONLY=1 為唯讀部署增加了第二道圍籬。您自備的 LLM 金鑰以 header 形式隨每個回答請求傳送,服務絕不持久化或記錄它。
錯誤
每個上游失敗都會對應到一個型別化、已編輯的錯誤負載(僅由例外型別 + HTTP 狀態碼建構 — 絕不來自回應主體),因此伺服器能承受端點拋出的任何情況,而您的代理程式會看到乾淨、可操作的訊息。
授權
MIT。Junê 引擎本身是獨立的閉源產品 — 這個連接器是開放的部分,這是設計使然。