gemini-researcher
Gemini Researcher
Легковесный, не имеющий состояния MCP-сервер (Model Context Protocol), который позволяет агентам разработчика (Claude Code, GitHub Copilot) делегировать глубокий анализ репозитория Gemini CLI. Сервер работает только для чтения, возвращает структурированный JSON (в виде текстового контента) и предназначен для уменьшения использования контекста и модели вызывающим агентом.
Статус: v1 завершена. Основные функции стабильны, но проект находится на ранней стадии. Будем рады отзывам!
Если это сэкономило вам токены, ⭐ пожалуйста, поставьте звезду! :)
Основные цели:
Уменьшить использование контекста агентом, позволяя Gemini CLI локально читать большие кодовые базы и проводить собственные исследования
Уменьшить использование модели вызывающим агентом за счет переноса тяжелого анализа на Gemini
Сохранить сервер без состояния и только для чтения в целях безопасности
Зачем это использовать?
Вместо копирования целых файлов в контекст вашего агента (расходуя токены и загромождая диалог), этот сервер позволяет Gemini CLI читать файлы напрямую из вашего проекта. Ваш агент отправляет исследовательский запрос, Gemini читает и синтезирует информацию, используя свое большое контекстное окно, и возвращает структурированные результаты. Вы экономите токены, ваш агент остается сфокусированным, а сложный анализ кодовой базы становится практичным.
Проверенные клиенты: Claude Code, Cursor, VS Code (GitHub Copilot)
Он определенно работает с другими клиентами, но я лично их еще не тестировал. Пожалуйста, откройте issue, если попробуете его где-то еще!
Оглавление
Обзор
Gemini Researcher принимает исследовательские запросы по протоколу MCP и запускает Gemini CLI в headless-режиме для анализа локальных файлов, на которые ссылаются через @path. Результаты возвращаются в виде отформатированных JSON-строк для клиентских агентов.
Контракт безопасности среды выполнения
Каноническая семантика среды выполнения поддерживается в docs/runtime-contract.md.
Gemini Researcher обеспечивает следующий контракт вызова для запросов на анализ:
gemini [ -m <model> ] --output-format json --approval-mode default [--admin-policy <path>] -p "<prompt>"Сервер использует
-p/--promptдля явного неинтерактивного headless-выполнения.Сервер не использует
-y/--yoloв сгенерированных сервером аргументах командной строки.Режим «только для чтения» принудительно обеспечивается с помощью встроенной политики администратора по умолчанию.
Строгое соблюдение политики администратора можно ослабить с помощью
GEMINI_RESEARCHER_ENFORCE_ADMIN_POLICY=0(илиfalse|no|off).
Поведение политики «только для чтения»
Режим по умолчанию — строгое закрытие при ошибке.
Встроенная политика запрещает известные мутирующие инструменты (например:
write_file,replace,run_shell_command).Политика основана на черном списке. Если Gemini представит новые имена мутирующих инструментов в будущих выпусках, могут потребоваться обновления политики.
Расширения остаются включенными по дизайну. Это удобно, но означает, что принудительное применение политики должно оставаться включенным в рабочей среде.
Семантика аутентификации и работоспособности
Когда вы запускаете health_check с includeDiagnostics: true, диагностика включает состояние аутентификации и статус принудительного применения политики.
authStatus | Значение | Влияние на health_check |
| Аутентификация подтверждена (API-ключ, Vertex или успешная проверка CLI) | Подходит для |
| Аутентификация определенно отсутствует/недействительна |
|
| Аутентификацию не удалось подтвердить из-за неоднозначного сбоя проверки |
|
health_check.status имеет значения:
okтолько тогда, когда Gemini доступен, аутентификация настроена и соблюдается строгое принудительное применение режима «только для чтения» (или намеренно ослаблено через переменную окружения).degradedдля всех путей неопределенности настройки/безопасности/аутентификации.
Предварительные требования
Установлен Node.js 18+
Установлен Gemini CLI:
npm install -g @google/gemini-cliGemini CLI аутентифицирован (рекомендуется:
gemini→ Войти через Google) или установленGEMINI_API_KEY
Быстрые проверки:
node --version
gemini --versionБыстрый старт
Шаг 1: Проверка окружения
Запустите мастер настройки, чтобы убедиться, что Gemini CLI установлен и аутентифицирован:
npx gemini-researcher initШаг 2: Настройка вашего MCP-клиента
Стандартная конфигурация работает в большинстве инструментов:
{
"mcpServers": {
"gemini-researcher": {
"command": "npx",
"args": [
"gemini-researcher"
]
}
}
}Добавьте в настройки MCP VS Code (создайте .vscode/mcp.json, если нужно):
{
"servers": {
"gemini-researcher": {
"command": "npx",
"args": [
"gemini-researcher"
]
}
}
}Вариант 1: Командная строка (рекомендуется)
Локальная область видимости (для пользователя)
# Add the MCP server via CLI
claude mcp add --transport stdio gemini-researcher -- npx gemini-researcher
# Verify it was added
claude mcp listОбласть видимости проекта
Перейдите в директорию вашего проекта, затем выполните:
# Add the MCP server via CLI
claude mcp add --scope project --transport stdio gemini-researcher -- npx gemini-researcher
# Verify it was added
claude mcp listВариант 2: Ручная настройка
Добавьте в .mcp.json в корне вашего проекта (область видимости проекта):
{
"mcpServers": {
"gemini-researcher": {
"command": "npx",
"args": [
"gemini-researcher"
]
}
}
}Или добавьте в ~/.claude/settings.json для локальной области видимости.
После добавления сервера перезапустите Claude Code и используйте /mcp для проверки соединения.
Перейдите в Cursor Settings -> Tools & MCP -> Add a Custom MCP Server. Добавьте следующую конфигурацию:
{
"mcpServers": {
"gemini-researcher": {
"type": "stdio",
"command": "npx",
"args": [
"gemini-researcher"
]
}
}
}Сервер автоматически использует директорию, в которой IDE открыла ваше рабочее пространство, в качестве корня проекта или там, где находится ваш терминал. Чтобы проанализировать другую директорию, при необходимости установитеPROJECT_ROOT:
Пример
{
"mcpServers": {
"gemini-researcher": {
"command": "npx",
"args": [
"gemini-researcher"
],
"env": {
"PROJECT_ROOT": "/path/to/your/project"
}
}
}
}Шаг 3: Перезапуск вашего MCP-клиента
Шаг 4: Тестирование
Спросите вашего агента: "Use gemini-researcher to analyze the project."
Инструменты
Все инструменты возвращают структурированный JSON (в виде текстового контента MCP). Большие ответы разбиваются на части (~10 КБ на часть) и кэшируются на 1 час.
Инструмент | Цель | Когда использовать |
| Быстрый анализ с моделью flash | Быстрые вопросы о конкретных файлах или небольших участках кода |
| Глубокий анализ с моделью pro | Сложный анализ нескольких файлов, архитектурные обзоры, аудит безопасности |
| Карта структуры директорий | Понимание незнакомых кодовых баз, создание обзоров проекта |
| Предварительная проверка путей к файлам | Проверка существования файлов перед выполнением дорогостоящих запросов |
| Диагностика | Устранение проблем с сервером/Gemini CLI |
| Получение фрагментированных ответов | Получение оставшихся частей больших ответов |
Примеры рабочих процессов
Понимание уязвимости безопасности:
Agent: Use deep_research to analyze authentication flow across @src/auth and @src/middleware, focusing on securityБыстрое объяснение кода:
Agent: Use quick_query to explain the login flow in @src/auth.ts, be conciseКартирование незнакомой кодовой базы:
Agent: Use analyze_directory on src/ with depth 3 to understand the project structurequick_query
{
"prompt": "Explain @src/auth.ts login flow",
"focus": "security",
"responseStyle": "concise"
}deep_research
{
"prompt": "Analyze authentication across @src/auth and @src/middleware",
"focus": "architecture",
"citationMode": "paths_only"
}analyze_directory
{
"path": "src",
"depth": 3,
"maxFiles": 200
}validate_paths
{
"paths": ["src/auth.ts", "README.md"]
}health_check
{
"includeDiagnostics": true
}fetch_chunk
{
"cacheKey": "cache_abc123",
"chunkIndex": 2
}Docker
Предварительно собранный мультиплатформенный Docker-образ доступен на Docker Hub:
# Pull the image (works on Intel/AMD and Apple Silicon)
docker pull capybearista/gemini-researcher:latest
# Run the server (mount your project and provide API key)
docker run -i --rm \
-e GEMINI_API_KEY="your-api-key" \
-v /path/to/your/project:/workspace \
capybearista/gemini-researcher:latestДля настройки MCP-клиента с Docker:
{
"mcpServers": {
"gemini-researcher": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "GEMINI_API_KEY",
"-v", "/path/to/your/project:/workspace",
"capybearista/gemini-researcher:latest"
],
"env": {
"GEMINI_API_KEY": "your-api-key-here"
}
}
}
}Флаг
-iобязателен для транспорта stdioКонтейнер монтирует ваш проект в
/workspace(корень проекта)Замените
/path/to/your/projectна ваш фактический путь к проектуЗамените
your-api-keyна ваш фактический API-ключ Gemini (это необходимо для использования Docker)
Устранение неполадок (частые проблемы)
GEMINI_CLI_NOT_FOUND: Установите Gemini CLI:npm install -g @google/gemini-cliAUTH_MISSING: Запуститеgeminiи пройдите аутентификацию или установитеGEMINI_API_KEYAUTH_UNKNOWN: Аутентификацию не удалось подтвердить (часто сбой сети/проверки CLI). Убедитесь, чтоgeminiработает интерактивно, затем повторите попытку.ADMIN_POLICY_MISSING: Переустановите пакет или убедитесь, чтоpolicies/read-only-enforcement.tomlсуществует в установленном пакете.ADMIN_POLICY_UNSUPPORTED: Обновите Gemini CLI до v0.36.0+ (gemini --helpдолжен включать--admin-policy).GEMINI_RESEARCHER_ENFORCE_ADMIN_POLICY=0: Отключает строгое принудительное применение политики при запуске. Это ослабляет гарантии закрытия при ошибке..gitignoreблокирует файлы: Gemini по умолчанию учитывает.gitignore; переключитеfileFiltering.respectGitIgnoreвgemini /settings, если вы намеренно хотите включить игнорируемые файлы (примечание: это меняет поведение Gemini глобально)PATH_NOT_ALLOWED: Все ссылки@pathдолжны разрешаться внутри настроенного корня проекта (по умолчаниюprocess.cwd()). Используйтеvalidate_pathsдля предварительной проверки путей.QUOTA_EXCEEDED: Сервер повторяет попытки с резервными моделями; если все уровни исчерпаны, уменьшите область действия (используйтеquick_query) или дождитесь сброса квоты.
Участие в разработке
Прочитайте Руководство по участию, чтобы начать.
Быстрые ссылки:
Лицензия
Latest Blog Posts
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/capyBearista/gemini-researcher'
If you have feedback or need assistance with the MCP directory API, please join our Discord server