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 для подробностей.