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. Три способа получить его:
- Десктопное приложение Junê (локально-первый). Запустите приложение Junê и подключитесь к его локальному движку — ваши файлы, граф и ключи остаются на вашей машине.
- Собственный сервис June. Клиенты Pro/Team, запускающие пакет движка
june-local, направляютJUNE_BASE_URLна свой сервер. - Хостинг (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_enrich | Pro: фоновая повторная экстракция канвы на более богатом движке (идемпотентно; задание + опрос; 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ê — отдельный закрытый продукт; этот коннектор — открытая часть, по замыслу.