使用说明
顶点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推荐使用或服务帐户密钥)。
设置和安装
- 克隆/放置项目: 确保项目文件位于您所需的位置。
- 安装依赖关系:
bun install - 配置环境:
- 创建一个
.env项目根目录中的文件(复制.env.example). - 按照中所述设置必需和可选的环境变量
.env.example.- 集
AI_PROVIDER要么"vertex"或"gemini". - 如果
AI_PROVIDER="vertex",GOOGLE_CLOUD_PROJECT是必需的。 - 如果
AI_PROVIDER="gemini",GEMINI_API_KEY是必需的。
- 集
- 创建一个
- 构建服务器:这将TypeScript代码编译为
bun run buildbuild/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一起跑步
-
配置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文件中删除注释。
- 重要提示: 确保
-
重新启动/重新加载Cline: Cline应检测到配置更改并启动服务器。
-
使用工具: 现在,您可以通过Cline使用广泛的工具列表。
发展
- 观看模式:
bun run watch - Linting:
bun run lint - 格式:
bun run format
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
