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で何ができますか?

  • Cited answers from memory — Ask your AI to answer a question using june_answer, which returns grounded, cited responses from the knowledge graph and abstains rather than guessing.
  • Search and explore the graph — Use june_search for ranked multi-hop evidence, june_neighborhood to inspect connections around a node, or june_subgraph to export a bounded graph region.
  • Write new memories — Have your agent record facts or notes with june_remember so they become immediately retrievable and citable, or ingest structured nodes/edges via june_ingest.
  • List everything matching a predicate — Ask for a recall-complete enumeration of all nodes with june_enumerate, which returns every match rather than a top-k sample.
  • Ingest local files — Upload supported documents (PDF, DOCX, XLSX, CSV, HTML, MD, images, audio) from an approved folder using june_ingest_file when JUNE_FILES_ROOT is configured.
  • Merge duplicate entities — Run june_resolve to consolidate duplicate entities via reversible same_as edges, with an optional semantic tier on Pro endpoints.

ドキュメント

june-mcp

エージェントに記憶を。 june-mcpJunê 用の公式 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 サービスと通信します。利用方法は次の3つです。

  1. Junê デスクトップアプリ(ローカルファースト)。 Junê アプリ を実行し、ローカルエンジンに接続します。ファイル・グラフ・キーはすべて自分のマシンに残ります。
  2. 独自の June サービス。 Pro/Team のお客様で june-local エンジンパッケージを実行している場合は、JUNE_BASE_URL を自社のサーバーに向けます。
  3. ホステッド(Team)。 コンソールの API キーを使って、ホステッドの June ワークスペースエンドポイントを指定します。

設定

サーバーは フェイルクローズド です。接続先と接続者を特定できない限り起動を拒否し、不足しているものを すべて 1つのメッセージで通知します(エラーが1つずつではありません)。

環境変数必須説明
JUNE_BASE_URLJune エンドポイント(例:http://localhost:8000
JUNE_CANVASこの接続をバインドするキャンバス(ワークスペース)— 名前work)またはキャンバス ID。名前は起動時に ID に解決され、曖昧な場合はフェイルクローズド
JUNE_CANVAS_CREATE任意1 は、初回実行時に指定された名前のキャンバスが存在しない場合に作成します(読み取り専用モードでは拒否)
JUNE_API_KEYJune API キー(JUNE_ALLOW_ANON=1 は、キーなしのローカル設定で明示的にオプトアウト)
JUNE_LLM_KEY任意BYO LLM キー(引用付き回答用)— リクエストごとにヘッダーとして転送され、ログやサービス側への保存は一切行われません
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

ドクターは次の順序で検証します:設定 → サービス到達可能性 → キャンバス解決(キャンバス名 → ID、例:name "work" → 9147bee6-…)→ 検索シームの健全性 → ツールマニフェスト。各チェックは PASS/FAIL で表示され、対応するヒントが付きます(例:名前が見つからない場合は存在するキャンバスの一覧を表示し、JUNE_CANVAS_CREATE=1 を指摘します)。ドクターはすべてのチェックが成功した場合のみ 0 で終了します(それ以外は 1)。サーバー自体は設定エラー時に半接続の状態で起動せず、2 で終了します。まずドクターを実行してください。これにより、エージェントがサーバーに触れる前に、一般的な設定ミスをすべて検出できます。

Claude に接続する

Claude Desktopclaude_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-mcp

ホストを完全に再起動し(macOS では Cmd+Q)、サーバーに 10 個のツール が表示されていることを確認します(june_ingest_fileJUNE_FILES_ROOT 経由でオプトインすると 11 個になります)。

ツール

ツールエージェントが得られるもの
june_answerグラフからの根拠付き・引用付き回答 — 推測ではなく判断を控えます
june_searchクエリに対するランク付けされたエビデンス(マルチホップ対応)
june_contextトークン予算内で組み立てられたコンテキストパック
june_neighborhood1ノードを中心としたグラフの取得
june_subgraph制限付きサブグラフのエクスポート
june_rememberファクト/メモをグラフに書き込む(即座に検索可能・引用可能になります)
june_ingest構造化されたノード/エッジの取り込み
june_enumerate述語に一致するすべてのノード — recall 完全な「すべての X を一覧表示」(top-k ではない)
june_ingest_fileオペレーター承認済みフォルダーからローカルファイル(pdf/docx/xlsx/csv/html/md/images/audio)を1つアップロード — JUNE_FILES_ROOT を設定した場合のみ存在
june_enrichPro: リッチなエンジンでキャンバスのバックグラウンド再抽出(冪等; ジョブ + ポーリング; フリーでは 403)
june_resolveメンテナンス: 重複エンティティを可逆的な same_as エッジでマージ(サーバー側で実行; strong_only=false は Pro でセマンティック層を解放)

説明はエージェント向けに書かれており(何 → いつ → 戻り値)、クランプされた入力は黙って切り捨てるのではなく、エージェントに 明示的 に通知されます。

Free vs Pro — june-pro タグ

june-mcp は全員向けの1つのパッケージであり、別の「Pro ビルド」はありません。Pro はエンドポイントのプロパティ であり、コネクターのプロパティではありません。Pro アクティベートされた June(アプリ内の Pro ライセンス、ホステッドワークスペースの Pro キー)に接続すると、同じツールが Pro グレードの結果をもたらします:すべての june_rememberjune_ingest_file の書き込みは、自動的にリッチなエンティティ/エッジエンジンを実行し(結果はどの engine が実行されたかを報告)、june_resolve はセマンティックマッチングにアップグレードされ、june_enrich はアップグレード前にフリーフロアで書き込まれたメモリをバックフィルします。ターミナルには、現在どのワールドにいるかが表示されます:--doctoredition 行を出力し、サーバーの起動バナーは接続をタグ付けします —

june-mcp: connected http://localhost:8000 canvas name "work" → 11d2… [june-pro]

タグはサービス自身の /v1/whoami(サーバー側で Pro ルートを制限する同じエンタイトルメント状態)から読み取られるため、実際に得られるものと矛盾することはありません。また表示専用です:エンタイトルメントは、クライアントが何を表示してもサービス側で強制されます。/v1/whoami を持たない古いサービスには、単にタグが表示されません。

セキュリティモデル

ツールサーフェスには キャンバス/ワークスペースパラメータはありません — ワークスペースは接続のコンテキストからサーバー側でバインドされ、フェイルクローズドです。テナント間の読み取りは、フェイルオープンになる可能性のある権限チェックではなく、クライアントからは 表現できませんJUNE_READONLY=1 は、読み取り専用のデプロイメントに2つ目のフェンスを追加します。BYO LLM キーは各回答リクエストにヘッダーとして乗り、サービスによって永続化やログ記録は一切行われません。

エラー

すべてのアップストリーム障害は、型付けされ、編集されたエラーペイロード(例外タイプ + HTTP ステータスのみから構築 — レスポンスボディからは構築しない)にマッピングされます。そのため、サーバーはエンドポイントが投げるあらゆるものから生き残り、エージェントにはクリーンで実行可能なメッセージが表示されます。

ライセンス

MIT。Junê エンジン自体は別のクローズドソース製品です。このコネクターは、設計上オープンな部分です。