Junê (june-mcp)

официальный

Дайте вашему агенту память: общая, цитируемая, изолированная по арендаторам память на основе графа знаний для любого MCP-хоста. Обоснованные ответы от локального June-эндпоинта — воздерживается, а не угадывает.

Что можно делать с Junê (june MCP?

  • Цитируемые ответы из памяти — Попросите вашего ИИ ответить на вопрос с помощью june_answer, который возвращает обоснованные ответы с цитатами из графа знаний и воздерживается от ответа, а не угадывает.
  • Поиск и исследование графа — Используйте june_search для ранжированных многошаговых доказательств, june_neighborhood для просмотра связей вокруг узла или june_subgraph для экспорта ограниченной области графа.
  • Запись новых воспоминаний — Пусть ваш агент фиксирует факты или заметки с помощью june_remember, чтобы они стали немедленно доступными для поиска и цитирования, или загружайте структурированные узлы/рёбра через june_ingest.
  • Перечисление всего, что соответствует предикату — Запросите полное перечисление всех узлов с помощью june_enumerate, который возвращает все совпадения, а не выборку top-k.
  • Загрузка локальных файлов — Загружайте поддерживаемые документы (PDF, DOCX, XLSX, CSV, HTML, MD, изображения, аудио) из одобренной папки с помощью june_ingest_file, когда настроен JUNE_FILES_ROOT.
  • Объединение дублирующихся сущностей — Запустите june_resolve, чтобы объединить дублирующиеся сущности через обратимые рёбра same_as, с опциональным семантическим уровнем на Pro-эндпоинтах.

Документация

june-mcp

Дайте вашему агенту память. june-mcp — официальный MCP сервер для Junê — он подключает любой 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. Три способа получить его:

  1. Десктопное приложение Junê (локально-первый). Запустите приложение Junê и подключитесь к его локальному движку — ваши файлы, граф и ключи остаются на вашей машине.
  2. Собственный сервис June. Клиенты Pro/Team, запускающие пакет движка june-local, направляют JUNE_BASE_URL на свой сервер.
  3. Хостинг (Team). Укажите конечную точку вашего хостинг-воркспейса June с API-ключом из консоли.

Конфигурация

Сервер работает по принципу fail-closed: он отказывается запускаться, если не знает, куда подключаться и от чьего имени, и сообщает всё, что отсутствует, одним сообщением (а не по одной ошибке за раз).

Переменная окруженияОбязательнаЗначение
JUNE_BASE_URLВаша конечная точка June, например http://localhost:8000
JUNE_CANVASКанва (воркспейс), к которой привязать это подключение — имя (work) или id канвы. Имена разрешаются в id при запуске; неоднозначные имена приводят к fail-closed
JUNE_CANVAS_CREATEопционально1 создаёт именованную канву при первом запуске, если она ещё не существует (отказано в режиме только для чтения)
JUNE_API_KEYВаш API-ключ June (JUNE_ALLOW_ANON=1 явно отказывается от ключа для локальных настроек без ключа)
JUNE_LLM_KEYопциональноСобственный 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-…) → работоспособность поискового слоя → манифест инструментов, и выводит ПРОЙДЕНО/НЕ ПРОЙДЕНО для каждой проверки с сопоставленной подсказкой (например, при отсутствии имени перечисляются канвы, которые существуют, и указывается на 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

Полностью перезапустите хост (Cmd+Q на macOS), затем проверьте, что сервер показывает 10 инструментов (11 при включении june_ingest_file через JUNE_FILES_ROOT).

Инструменты

инструментчто получает ваш агент
june_answerОбоснованный, цитируемый ответ из графа — воздерживается, а не угадывает
june_searchРанжированные доказательства для запроса (поддерживает multi-hop)
june_contextСобранный контекстный пакет в рамках бюджета токенов
june_neighborhoodГраф вокруг одного узла
june_subgraphОграниченный экспорт подграфа
june_rememberЗапись факта/заметки в граф (сразу становится доступной для поиска и цитирования)
june_ingestСтруктурированное внесение узлов/рёбер
june_enumerateКАЖДЫЙ узел, соответствующий предикату — полнота по recall «перечисли ВСЕ X» (не top-k)
june_ingest_fileЗагрузка одного локального файла (pdf/docx/xlsx/csv/html/md/images/audio) из одобренной оператором папки — существует только при установке JUNE_FILES_ROOT
june_enrichPro: фоновая повторная экстракция канвы на более богатом движке (идемпотентно; задание + опрос; 403 на бесплатном тарифе)
june_resolveОбслуживание: объединение дублирующихся сущностей через обратимые рёбра same_as (выполняется на стороне сервера; strong_only=false открывает семантический уровень на Pro)

Описания написаны для агента (что → когда → возвращает), и каждое ограниченное входное значение заметно сообщается агенту, а не молча обрезается.

Free против 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. Чтение между арендаторами — это не проверка прав, которая может открыться по ошибке; оно непредставимо для клиента. JUNE_READONLY=1 добавляет второй барьер для развёртываний только для чтения. Ваш собственный LLM-ключ передаётся в каждом запросе ответа как заголовок и никогда не сохраняется и не логируется сервисом.

Ошибки

Каждый сбой вышестоящего сервиса преобразуется в типизированную, редактированную полезную нагрузку ошибки (создаётся только из типа исключения + HTTP-статуса — никогда из тел ответов), поэтому сервер переживает всё, что бросает конечная точка, а ваш агент видит чистое, применимое сообщение.

Лицензия

MIT. Движок Junê — отдельный закрытый продукт; этот коннектор — открытая часть, по замыслу.