Сервер Vertex AI MCP
В этом проекте реализован сервер Model Context Protocol (MCP), который предоставляет комплексный набор инструментов для взаимодействия с моделями Vertex AI Gemini от Google Cloud, уделяя особое внимание помощи в кодировании и ответам на общие запросы.
Функции
Предоставляет доступ к моделям Vertex AI Gemini через многочисленные инструменты MCP.
Поддерживает обоснование веб-поиска (
answer_query_websearch) и ответы на основе прямых знаний (answer_query_direct).Настраиваемый идентификатор модели, температура, поведение потоковой передачи, максимальное количество выходных токенов и параметры повтора с помощью переменных среды.
По умолчанию используется потоковый API для потенциально лучшего отклика.
Включает базовую логику повторных попыток для временных ошибок API.
Применяются минимальные фильтры безопасности (
BLOCK_NONE) для снижения потенциальной блокировки (используйте с осторожностью).
Related MCP server: mcp-google
Предоставляемые инструменты
Запрос и генерация (с упором на ИИ)
answer_query_websearch: отвечает на запросы на естественном языке, используя настроенную модель Vertex AI, улучшенную с помощью результатов поиска Google.answer_query_direct: отвечает на запрос на естественном языке, используя только внутренние знания настроенной модели Vertex AI.explain_topic_with_docs: предоставляет подробное объяснение запроса по определенной теме программного обеспечения, синтезируя информацию, в основном из официальной документации, найденной с помощью веб-поиска.get_doc_snippets: предоставляет точные, достоверные фрагменты кода или краткие ответы на технические вопросы путем поиска в официальной документации.generate_project_guidelines: создает структурированный документ с рекомендациями по проекту (Markdown) на основе указанного списка технологий (опционально с версиями), используя веб-поиск передового опыта.
Инструменты исследования и анализа
code_analysis_with_docs: анализирует фрагменты кода, сравнивая их с лучшими практиками из официальной документации, выявляя потенциальные ошибки, проблемы с производительностью и уязвимости безопасности.technical_comparison: сравнивает несколько технологий, фреймворков или библиотек на основе определенных критериев, предоставляя подробные сравнительные таблицы с плюсами/минусами и вариантами использования.architecture_pattern_recommendation: предлагает шаблоны архитектуры для конкретных вариантов использования на основе лучших отраслевых практик с примерами реализации и соображениями.dependency_vulnerability_scan: анализирует зависимости проекта на предмет известных уязвимостей безопасности, предоставляя подробную информацию и стратегии смягчения последствий.database_schema_analyzer: проверяет схемы баз данных на предмет нормализации, индексации и проблем производительности, предлагая улучшения на основе передового опыта, специфичного для конкретной базы данных.security_best_practices_advisor: предоставляет рекомендации по безопасности для конкретных технологий или сценариев, а также примеры кода для внедрения безопасных практик.testing_strategy_generator: создает комплексные стратегии тестирования для приложений или функций, предлагая соответствующие типы тестирования с целями покрытия.regulatory_compliance_advisor: предоставляет рекомендации по нормативным требованиям для конкретных отраслей (GDPR, HIPAA и т. д.) с подходами к внедрению для обеспечения соответствия.microservice_design_assistant: помогает проектировать архитектуры микросервисов для определенных доменов с рекомендациями по границам сервисов и шаблонами коммуникации.documentation_generator: создает исчерпывающую документацию по коду, API или системам, следуя лучшим отраслевым практикам технической документации.
Операции файловой системы
read_file_content: Прочитать полное содержимое одного или нескольких файлов. Укажите одну строку пути или массив строк пути.write_file_content: Создать новые файлы или полностью перезаписать существующие файлы. Аргумент 'writes' принимает один объект ({path, content}) или массив таких объектов.edit_file_content: вносит построчные изменения в текстовый файл, возвращает предварительный просмотр различий или применяет изменения.list_directory_contents: выводит список файлов и каталогов непосредственно по указанному пути (нерекурсивно).get_directory_tree: Получает рекурсивное древовидное представление файлов и каталогов в формате JSON.move_file_or_directory: Перемещает или переименовывает файлы и каталоги.search_filesystem: Рекурсивный поиск файлов/каталогов, соответствующих шаблону имени, с возможными исключениями.get_filesystem_info: Извлекает подробные метаданные (размер, даты, тип, разрешения) о файле или каталоге.execute_terminal_command: Выполнить команду оболочки, при необходимости указавcwdиtimeout. Возвращает stdout/stderr.
Комбинированные операции ИИ + файловой системы
save_generate_project_guidelines: создает руководства по проекту на основе технологического стека и сохраняет результат в указанном файле.save_doc_snippet: находит фрагменты кода из документации и сохраняет результат в указанном файле.save_topic_explanation: создает подробное объяснение темы на основе документации и сохраняет результат в указанном файле.save_answer_query_direct: отвечает на запрос, используя только внутренние знания, и сохраняет ответ в указанном файле.save_answer_query_websearch: отвечает на запрос, используя результаты веб-поиска, и сохраняет ответ в указанном пути к файлу.
(Примечание: схемы ввода/вывода для каждого инструмента определены в соответствующих файлах в
Предпосылки
Node.js (v18+)
Бан (
npm install -g bun)Проект Google Cloud с включенным биллингом.
API Vertex AI включен в проект GCP.
В вашей среде настроена аутентификация Google Cloud (рекомендуется использовать учетные данные приложения по умолчанию с помощью
gcloud auth application-default loginили ключ учетной записи службы).
Настройка и установка
Клонировать/разместить проект: убедитесь, что файлы проекта находятся в нужном вам месте.
Установить зависимости:
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.
Использование (автономное / NPX)
После публикации в npm вы можете запустить этот сервер напрямую с помощью npx :
Либо установите его глобально:
Примечание: для автономного запуска требуется настроить необходимые переменные среды (например, GOOGLE_CLOUD_PROJECT , GOOGLE_CLOUD_LOCATION , учетные данные аутентификации, если не используется ADC) в среде оболочки перед выполнением команды.
Установка через Smithery
Чтобы автоматически установить Vertex AI Server для Claude Desktop через Smithery :
Бег с Клайном
Настройте параметры MCP: добавьте/обновите конфигурацию в файле настроек Cline MCP (например,
.roo/mcp.json). У вас есть два основных способа настроить команду:Вариант A: использование Node (прямой путь — рекомендуется для разработки)
Этот метод использует
nodeдля прямого запуска скомпилированного скрипта. Это полезно во время разработки, когда у вас есть код, клонированный локально.{ "mcpServers": { "vertex-ai-mcp-server": { "command": "node", "args": [ "/full/path/to/your/vertex-ai-mcp-server/build/index.js" // Use absolute path or ensure it's relative to where Cline runs node ], "env": { // --- General AI Configuration --- "AI_PROVIDER": "vertex", // "vertex" or "gemini" // --- Required (Conditional) --- "GOOGLE_CLOUD_PROJECT": "YOUR_GCP_PROJECT_ID", // Required if AI_PROVIDER="vertex" // "GEMINI_API_KEY": "YOUR_GEMINI_API_KEY", // Required if AI_PROVIDER="gemini" // --- Optional Model Selection --- "VERTEX_MODEL_ID": "gemini-2.5-pro-exp-03-25", // If AI_PROVIDER="vertex" (Example override) "GEMINI_MODEL_ID": "gemini-2.5-pro-exp-03-25", // If AI_PROVIDER="gemini" // --- Optional AI Parameters --- "GOOGLE_CLOUD_LOCATION": "us-central1", // Specific to Vertex AI "AI_TEMPERATURE": "0.0", "AI_USE_STREAMING": "true", "AI_MAX_OUTPUT_TOKENS": "65536", // Default from .env.example "AI_MAX_RETRIES": "3", "AI_RETRY_DELAY_MS": "1000", // --- Optional Vertex Authentication --- // "GOOGLE_APPLICATION_CREDENTIALS": "/path/to/your/service-account-key.json" // If using Service Account Key for Vertex }, "disabled": false, "alwaysAllow": [ // Add tool names here if you don't want confirmation prompts // e.g., "answer_query_websearch" ], "timeout": 3600 // Optional: Timeout in seconds } // Add other servers here... } }Важно: Убедитесь, что путь
argsправильно указывает на файлbuild/index.js. Использование абсолютного пути может быть более надежным.
Вариант B: использование NPX (требуется публикация пакета в npm)
Этот метод использует
npxдля автоматической загрузки и запуска пакета сервера из реестра npm. Это удобно, если вы не хотите клонировать репозиторий.{ "mcpServers": { "vertex-ai-mcp-server": { "command": "bunx", // Use bunx "args": [ "-y", // Auto-confirm installation "vertex-ai-mcp-server" // The npm package name ], "env": { // --- General AI Configuration --- "AI_PROVIDER": "vertex", // "vertex" or "gemini" // --- Required (Conditional) --- "GOOGLE_CLOUD_PROJECT": "YOUR_GCP_PROJECT_ID", // Required if AI_PROVIDER="vertex" // "GEMINI_API_KEY": "YOUR_GEMINI_API_KEY", // Required if AI_PROVIDER="gemini" // --- Optional Model Selection --- "VERTEX_MODEL_ID": "gemini-2.5-pro-exp-03-25", // If AI_PROVIDER="vertex" (Example override) "GEMINI_MODEL_ID": "gemini-2.5-pro-exp-03-25", // If AI_PROVIDER="gemini" // --- Optional AI Parameters --- "GOOGLE_CLOUD_LOCATION": "us-central1", // Specific to Vertex AI "AI_TEMPERATURE": "0.0", "AI_USE_STREAMING": "true", "AI_MAX_OUTPUT_TOKENS": "65536", // Default from .env.example "AI_MAX_RETRIES": "3", "AI_RETRY_DELAY_MS": "1000", // --- Optional Vertex Authentication --- // "GOOGLE_APPLICATION_CREDENTIALS": "/path/to/your/service-account-key.json" // If using Service Account Key for Vertex }, "disabled": false, "alwaysAllow": [ // Add tool names here if you don't want confirmation prompts // e.g., "answer_query_websearch" ], "timeout": 3600 // Optional: Timeout in seconds } // Add other servers here... } }Убедитесь, что переменные среды в блоке
envустановлены правильно, либо соответствуют.env, либо явно определены здесь. Удалите комментарии из фактического файла JSON.
Перезапуск/перезагрузка Cline: Cline должен обнаружить изменение конфигурации и запустить сервер.
Использование инструментов: теперь вы можете использовать обширный список инструментов через Cline.
Разработка
Режим просмотра:
bun run watchЛинтинг:
bun run lintФорматирование:
bun run format
Лицензия
Данный проект лицензирован по лицензии MIT — подробности см. в файле LICENSE .