Vertex AI MCP 服务器

Vertex AI MCP 服务器是一个基于 Google Cloud Vertex AI Gemini 模型的工具套件,提供编码辅助和通用查询回答功能。

  • by jichenghan800
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 jichenghan800/xiaozhi_mcp_remix

使用说明

顶点AI MCP服务器

该项目实现了一个模型上下文协议(MCP)服务器,该服务器提供了一套全面的工具,用于与Google Cloud的Vertex AI Gemini模型进行交互,重点是编码辅助和一般查询应答。

特性

  • 通过多种MCP工具提供对Vertex AI Gemini模型的访问。
  • 支持网络搜索基础(answer_query_websearch)直接知识回答(answer_query_direct).
  • 通过环境变量配置模型ID、温度、流行为、最大输出令牌和重试设置。
  • 默认情况下使用流式API以获得更好的响应能力。
  • 包括暂时API错误的基本重试逻辑。
  • 应用了最低限度的安全过滤器(BLOCK_NONE)以减少潜在的堵塞(谨慎使用)。

提供的工具

查询与生成(以人工智能为中心)

  • answer_query_websearch:使用配置的Vertex AI模型回答自然语言查询,并使用谷歌搜索结果进行增强。
  • 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:执行shell命令,可选地指定 cwd 和 timeout.返回stdout/stderr。

AI+文件系统组合操作

  • save_generate_project_guidelines:基于技术栈生成项目指南,并将结果保存到指定的文件路径。
  • save_doc_snippet:从文档中查找代码段并将结果保存到指定的文件路径。
  • save_topic_explanation:根据文档生成主题的详细说明,并将结果保存到指定的文件路径。
  • save_answer_query_direct:仅使用内部知识回答查询,并将答案保存到指定的文件路径。
  • save_answer_query_websearch:使用web搜索结果回答查询,并将答案保存到指定的文件路径。

(注:每个工具的输入/输出模式在其各自的文件中定义 src/tools/ 并通过MCP服务器暴露。)

先决条件

  • Node.js(v18+)
  • Bun(npm install -g bun)
  • 启用计费的谷歌云项目。
  • Vertex AI API在GCP项目中启用。
  • 在您的环境中配置Google Cloud身份验证(应用程序默认凭据通过 gcloud auth application-default login 推荐使用或服务帐户密钥)。

设置和安装

  1. 克隆/放置项目: 确保项目文件位于您所需的位置。
  2. 安装依赖关系:
    bun install
    
  3. 配置环境:
    • 创建一个 .env 项目根目录中的文件(复制 .env.example).
    • 按照中所述设置必需和可选的环境变量 .env.example.
      • 集 AI_PROVIDER 要么 "vertex" 或 "gemini".
      • 如果 AI_PROVIDER="vertex", GOOGLE_CLOUD_PROJECT 是必需的。
      • 如果 AI_PROVIDER="gemini", GEMINI_API_KEY 是必需的。
  4. 构建服务器:
    bun run build
    
    这将TypeScript代码编译为 build/index.js.

用法(独立/NPX)

发布到npm后,您可以直接使用以下命令运行此服务器 npx:

# Ensure required environment variables are set (e.g., GOOGLE_CLOUD_PROJECT)
bunx vertex-ai-mcp-server

或者,全局安装:

bun install -g vertex-ai-mcp-server
# Then run:
vertex-ai-mcp-server

注: 独立运行需要设置必要的环境变量(如 GOOGLE_CLOUD_PROJECT, GOOGLE_CLOUD_LOCATION,如果不使用ADC,请在执行命令之前在shell环境中提供身份验证凭据。

通过Smithery安装

通过以下方式自动安装克劳德桌面的Vertex AI服务器 史密瑟里:

bunx -y @smithery/cli install @shariqriazz/vertex-ai-mcp-server --client claude

与Cline一起跑步

  1. 配置MCP设置: 在Cline MCP设置文件中添加/更新配置(例如。, .roo/mcp.json).配置命令有两种主要方法:

    选项A:使用节点(直接路径-建议用于开发)

    此方法使用 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文件中删除注释。
  2. 重新启动/重新加载Cline: Cline应检测到配置更改并启动服务器。

  3. 使用工具: 现在,您可以通过Cline使用广泛的工具列表。

发展

  • 观看模式: bun run watch
  • Linting: bun run lint
  • 格式: bun run format

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。