API VEGA

Google AI Search MCP

Этот проект реализует сервер Model Context Protocol (MCP), который предоставляет полный набор инструментов поиска и документации на базе Google AI, специально разработанных, чтобы помогать AI-разработчикам преодолевать пробелы в знаниях LLM и ограничения информации.

Примечания по реализации

Выбор поставщика и учетные данные разрешаются во время выполнения, поэтому наличие инструмента в списке не доказывает, что его upstream-поставщик настроен или доступен. Рассматривайте сопоставления, архитектурные рекомендации и анализ безопасности, созданные моделью, как материалы для проверки против указанных первоисточников, а не как детерминированные выводы.

Для сравнения дизайна под давлением и в контексте источников между этим проектом и шестью другими открытыми MCP-реализациями см. Что мне поведало строительство семи MCP-серверов о MCP в продакшене.

Особенности

  • Доступ к моделям Google AI (Vertex AI и Gemini API) через специализированные MCP-инструменты.

  • Акцент на поиск в реальном времени и анализ на основе документации.

  • Поддержка привязки к веб-поиску для актуальной информации, которой не хватает LLM.

  • Настраиваемые model ID, температура, потоковая передача, максимальное количество выходных токенов и настройки повторных попыток через переменные окружения.

  • По умолчанию используется потоковый API, что потенциально обеспечивает лучшую отзывчивость.

  • Включена базовая логика повторных попыток для временных ошибок API.

  • Минимальные фильтры безопасности (BLOCK_NONE) для снижения вероятности блокировки (использовать с осторожностью).

Инструменты

Основные инструменты поиска и документации

  • answer_query_websearch: запросы на естественном языке для разработчиков с автоматическим техническим определением, улучшенной методологией поиска и полноформатным форматированием кода с использованием Google AI и результатами реального поиска.

  • explain_topic_with_docs: упрощённые технические объяснения с улучшенными сценариями отладки, синтез информации из официальной документации с уменьшенной подробностью и улучшенной подсказкой по устранению неполадок.

  • get_doc_snippets: улучшенный поиск примеров кода с прогрессивной сложностью, продвинутыми шаблонами запросов, таргетингом под версии и полным контекстом для технических запросов из официальной документации.

  • generate_project_guidelines: генерирует полные структурированные документы с руководствами по проекту на основе заданных технологий, используя веб-поиск для актуальных практик и отраслевых стандартов.

Расширенные инструменты анализа

  • code_analysis_with_docs: анализ кода на основе доказательств с единообразными ссылками, категоризацией серьезности и действенными рекомендациями через сравнение кода с лучшими практиками из официальной документации.

  • technical_comparison: формирует сравнения технологий по запрошенным критериям с использованием текущего контекста поиска, если он доступен. Верифицируйте количественные или рыночные утверждения в цитируемых первоисточниках.

  • architecture_pattern_recommendation: предлагает варианты архитектуры, взвешенные преимущества/недостатки и соображения по реализации для описанного сценария использования. Валидируйте рекомендацию с фактическими ограничениями системы, прежде чем принимать её.

(Примечание: входные/выходные схемы для каждого инструмента определены в соответствующих файлах в src/tools/ и доступны через MCP-сервер.)

Требования

  • Node.js (v18+)

  • Bun (npm install -g bun)

  • Проект Google Cloud с включенной оплатой (если используется Vertex AI).

  • Включение Vertex AI API в проекте GCP (если используется Vertex AI).

  • Аутентификация Google Cloud, настроенная в вашей среде (рекомендуются Application Default Credentials через gcloud auth application-default login или ключ Service Account) ИЛИ Gemini API key.

Установка и настройка

  • Клонировать/расположить проект: Убедитесь, что файлы проекта находятся в нужном месте.

  • Установка зависимостей:

bun install
  • Настроить окружение:

Создайте файл .env в корне проекта (скопируйте .env.example).

  • Установите необходимые и опциональные переменные окружения, как описано в .env.example.

Установите значение AI_PROVIDER равным либо "vertex", либо "gemini".

  • Если AI_PROVIDER="vertex", требуется GOOGLE_CLOUD_PROJECT.

  • Если AI_PROVIDER="gemini", требуется GEMINI_API_KEY.

  • Собрать сервер:

bun run build

Это компилирует TypeScript-код в build/index.js.

Использование (Standalone / NPX)

Пакет опубликован в npm и может быть запущен напрямую через npx:

# Убедитесь, что заданы необходимые переменные окружения (например, GOOGLE_CLOUD_PROJECT или GEMINI_API_KEY)
bunx google-ai-search-mcp

Либо можно установить глобально:

bun install -g google-ai-search-mcp
# Затем запустить:
google-ai-search-mcp

Примечание: запуск standalone требует установки необходимых переменных окружения (например, GOOGLE_CLOUD_PROJECT, GOOGLE_CLOUD_LOCATION, GEMINI_API_KEY, учетных данных, если не используется ADC) в вашей оболочке перед выполнением команды.

Docker

Соберите локальный образ контейнера:

docker build -t google-ai-search-mcp .

Запуск с провайдером Gemini API:

docker run --rm -i \
  -e AI_PROVIDER=gemini \
  -e GEMINI_API_KEY \
  google-ai-search-mcp

Для Vertex AI передайте AI_PROVIDER=vertex, GOOGLE_CLOUD_PROJECT и, по желанию,

GOOGLE_CLOUD_LOCATION. Также в контейнере должны быть доступны Application Default Credentials, обычно через монтирование непривязываемых учетных данных. Не встраивайте API-ключи или файлы сервисного аккаунта в образ.

Запуск через Cline

  • Configure MCP Settings: Добавьте/обновите конфигурацию в вашем файле настроек Cline MCP (например, .roo/mcp.json). У вас есть два основных способа настройки команды:

Вариант А: используя Node (Direct Path — рекомендуется для разработки)

Этот метод использует node для прямого запуска скомпилированного скрипта. Полезно во время разработки, когда код локально клонирован.

{
  "mcpServers": {
    "google-ai-search-mcp": {
      "command": "node",
      "args": [
        "/full/path/to/your/google-ai-search-mcp/build/index.js" // Используйте абсолютный путь или путь относительно места, откуда запускается node
      },
      "env": {
        // --- Общая конфигурация AI ---
        "AI_PROVIDER": "vertex", // "vertex" или "gemini"
        // --- Требуется (условно) ---
        "GOOGLE_CLOUD_PROJECT": "YOUR_GCP_PROJECT_ID", // Требуется если AI_PROVIDER="vertex"
        // "GEMINI_API_KEY": "YOUR_GEMINI_API_KEY", // Требуется если AI_PROVIDER="gemini"
        // --- Необязательный выбор модели ---
        "VERTEX_MODEL_ID": "gemini-2.5-pro", // Если AI_PROVIDER="vertex" (пример переопределения)
        "GEMINI_MODEL_ID": "gemini-2.5-pro", // Если AI_PROVIDER="gemini"
        // --- Необязательные параметры AI ---
        "GOOGLE_CLOUD_LOCATION": "us-central1", // Специфично для Vertex AI
        "AI_TEMPERATURE": "0.0",
        "AI_USE_STREAMING": "true",
        "AI_MAX_OUTPUT_TOKENS": "65536", // По умолчанию из .env.example
        "AI_MAX_RETRIES": "3",
        "AI_RETRY_DELAY_MS": "1000",
        // --- Необязательная аутентификация Vertex ---
        // "GOOGLE_APPLICATION_CREDENTIALS": "/path/to/your/service-account-key.json" // Если используется Service Account Key для Vertex
      },
      "disabled": false,
      "alwaysAllow": [
         // Добавляйте названия инструментов, если не хотите подтверждений
         // например, "answer_query_websearch"
      ],
      "timeout": 3600 // Опционально: таймаут в секундах
    }
    // Добавьте другие серверы здесь...
  }
}

Важно: убедитесь, что путь в args указывает на файл build/index.js. Более надёжно использовать абсолютный путь.

Вариант Б: использование NPX (требуется публикация пакета в npm)

Этот метод использует npx для автоматической загрузки и запуска сервера из реестра npm. Это удобно, если не хочется клонировать репозиторий.

{
  "mcpServers": {
    "google-ai-search-mcp": {
      "command": "bunx", // Используйте bunx
      "args": [
        "-y", // Авто-подтверждение установки
        "google-ai-search-mcp" // Название npm-пакета
      ],
      "env": {
        // --- Общая конфигурация AI ---
        "AI_PROVIDER": "vertex", // "vertex" или "gemini"
        // --- Требуется (условно) ---
        "GOOGLE_CLOUD_PROJECT": "YOUR_GCP_PROJECT_ID", // Требуется если AI_PROVIDER="vertex"
        // "GEMINI_API_KEY": "YOUR_GEMINI_API_KEY", // Требуется если AI_PROVIDER="gemini"
        // --- Необязательный выбор модели ---
        "VERTEX_MODEL_ID": "gemini-2.5-pro", // Если AI_PROVIDER="vertex" (пример переопределения)
        "GEMINI_MODEL_ID": "gemini-2.5-pro", // Если AI_PROVIDER="gemini"
        // --- Необязательные параметры AI ---
        "GOOGLE_CLOUD_LOCATION": "us-central1", // Специфично для Vertex AI
        "AI_TEMPERATURE": "0.0",
        "AI_USE_STREAMING": "true",
        "AI_MAX_OUTPUT_TOKENS": "65536", // По умолчанию из .env.example
        "AI_MAX_RETRIES": "3",
        "AI_RETRY_DELAY_MS": "1000",
        // --- Необязательная аутентификация Vertex ---
        // "GOOGLE_APPLICATION_CREDENTIALS": "/path/to/your/service-account-key.json" // Если используется Service Account Key для Vertex
      },
      "disabled": false,
      "alwaysAllow": [
         // Добавляйте названия инструментов, если не хотите подтверждений
         // например, "answer_query_websearch"
      ],
      "timeout": 3600 // Опционально: таймаут в секундах
    }
    // Добавьте другие серверы здесь...
  }
}
  • Убедитесь, что переменные окружения в блоке env корректно заданы, либо совпадают с .env, либо явно указаны здесь. Удаляйте промежуточные комментарии из реального JSON-файла.

  • Перезапустите/перезагрузите Cline: Cline должна распознать изменение конфигурации и запустить сервер.

  • Используйте инструменты: теперь доступен широкий набор инструментов Google AI-powered search и документов через Cline.

Разработка

  • Режим наблюдения: bun run watch

  • Сборка: bun run build

  • Инспектор: bun run inspector

Лицензия

Проект распространяется по лицензии MIT — см. файл LICENSE по адресу LICENSE для подробностей.