Vertex AI MCP Server
This Vertex AI MCP Server integrates with Google Cloud's Vertex AI Gemini models to provide three main categories of functionality:
Query & Generation Tools:
Answer questions using model knowledge or web search capabilities
Explain technical topics with official documentation
Extract code snippets from documentation
Generate project guidelines based on specified tech stacks
Filesystem Operations:
Read, write, and edit files
List, create, move, and search directories/files
Retrieve detailed filesystem metadata
Combined AI + Filesystem Operations:
Generate content (guidelines, snippets, answers) and save directly to specified file paths
Analyze code against best practices
Compare technologies and recommend architecture patterns
Scan dependencies for vulnerabilities
The server's behavior can be configured via environment variables for model ID, temperature, and other parameters.
Used for project dependency management, building, and running the server in development mode
Supports configuration of the server through environment variables loaded from a .env file
Enables web search grounding for queries through the answer_query_websearch tool, combining Google Search results with Vertex AI model responses
Provides access to Vertex AI Gemini models for AI-powered coding assistance and general query answering, with support for web search grounding and direct knowledge answering
Required as runtime environment for the MCP server
Used as the implementation language for the MCP server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Vertex AI MCP Server explain the difference between React and Vue for a new project"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Vertex AI MCP Server
This project implements a Model Context Protocol (MCP) server that provides a comprehensive suite of tools for interacting with Google Cloud's Vertex AI Gemini models, focusing on coding assistance and general query answering.
Security boundary
This server includes filesystem write and terminal-execution tools in addition to model and research tools. Run it with a dedicated low-privilege identity, limit its filesystem and network access, and keep consequential tools behind explicit approval. Do not treat an MCP client confirmation prompt as server-side authorization.
For the implementation tradeoffs this project exposed alongside six other public MCP codebases, see What building seven MCP servers taught me about production MCP. The article uses this repository as public engineering evidence; it does not claim that every production control discussed there is already implemented here.
Related MCP server: MCP with Gemini Integration
Features
Provides access to Vertex AI Gemini models via numerous MCP tools.
Supports web search grounding (
answer_query_websearch) and direct knowledge answering (answer_query_direct).Configurable model ID, temperature, streaming behavior, max output tokens, and retry settings via environment variables.
Uses streaming API by default for potentially better responsiveness.
Includes basic retry logic for transient API errors.
Minimal safety filters applied (
BLOCK_NONE) to reduce potential blocking (use with caution).
Tools Provided
Query & Generation (AI Focused)
answer_query_websearch: Answers a natural language query using the configured Vertex AI model enhanced with Google Search results.answer_query_direct: Answers a natural language query using only the internal knowledge of the configured Vertex AI model.explain_topic_with_docs: Provides a detailed explanation for a query about a specific software topic by synthesizing information primarily from official documentation found via web search.get_doc_snippets: Provides precise, authoritative code snippets or concise answers for technical queries by searching official documentation.generate_project_guidelines: Generates a structured project guidelines document (Markdown) based on a specified list of technologies (optionally with versions), using web search for best practices.
Research & Analysis Tools
code_analysis_with_docs: Analyzes code snippets by comparing them with best practices from official documentation, identifying potential bugs, performance issues, and security vulnerabilities.technical_comparison: Compares multiple technologies, frameworks, or libraries based on specific criteria, providing detailed comparison tables with pros/cons and use cases.architecture_pattern_recommendation: Suggests architecture patterns for specific use cases based on industry best practices, with implementation examples and considerations.dependency_vulnerability_scan: Analyzes project dependencies for known security vulnerabilities, providing detailed information and mitigation strategies.database_schema_analyzer: Reviews database schemas for normalization, indexing, and performance issues, suggesting improvements based on database-specific best practices.security_best_practices_advisor: Provides security recommendations for specific technologies or scenarios, with code examples for implementing secure practices.testing_strategy_generator: Creates comprehensive testing strategies for applications or features, suggesting appropriate testing types with coverage goals.regulatory_compliance_advisor: Provides guidance on regulatory requirements for specific industries (GDPR, HIPAA, etc.), with implementation approaches for compliance.microservice_design_assistant: Helps design microservice architectures for specific domains, with service boundary recommendations and communication patterns.documentation_generator: Creates comprehensive documentation for code, APIs, or systems, following industry best practices for technical documentation.
Filesystem Operations
read_file_content: Read the complete contents of one or more files. Provide a single path string or an array of path strings.write_file_content: Create new files or completely overwrite existing files. The 'writes' argument accepts a single object ({path, content}) or an array of such objects.edit_file_content: Makes line-based edits to a text file, returning a diff preview or applying changes.list_directory_contents: Lists files and directories directly within a specified path (non-recursive).get_directory_tree: Gets a recursive tree view of files and directories as JSON.move_file_or_directory: Moves or renames files and directories.search_filesystem: Recursively searches for files/directories matching a name pattern, with optional exclusions.get_filesystem_info: Retrieves detailed metadata (size, dates, type, permissions) about a file or directory.execute_terminal_command: Execute a shell command, optionally specifyingcwdandtimeout. Returns stdout/stderr.
Combined AI + Filesystem Operations
save_generate_project_guidelines: Generates project guidelines based on a tech stack and saves the result to a specified file path.save_doc_snippet: Finds code snippets from documentation and saves the result to a specified file path.save_topic_explanation: Generates a detailed explanation of a topic based on documentation and saves the result to a specified file path.save_answer_query_direct: Answers a query using only internal knowledge and saves the answer to a specified file path.save_answer_query_websearch: Answers a query using web search results and saves the answer to a specified file path.
(Note: Input/output schemas for each tool are defined in their respective files within src/tools/ and exposed via the MCP server.)
Prerequisites
Node.js (v18+)
Bun (
npm install -g bun)Google Cloud Project with Billing enabled.
Vertex AI API enabled in the GCP project.
Google Cloud Authentication configured in your environment (Application Default Credentials via
gcloud auth application-default loginis recommended, or a Service Account Key).
Setup & Installation
Clone/Place Project: Ensure the project files are in your desired location.
Install Dependencies:
bun installConfigure Environment:
Create a
.envfile in the project root (copy.env.example).Set the required and optional environment variables as described in
.env.example.Set
AI_PROVIDERto either"vertex"or"gemini".If
AI_PROVIDER="vertex",GOOGLE_CLOUD_PROJECTis required.If
AI_PROVIDER="gemini",GEMINI_API_KEYis required.
Build the Server:
bun run buildThis compiles the TypeScript code to
build/index.js.
Usage (Standalone / NPX)
Once published to npm, you can run this server directly using npx:
# Ensure required environment variables are set (e.g., GOOGLE_CLOUD_PROJECT)
bunx vertex-ai-mcp-serverAlternatively, install it globally:
bun install -g vertex-ai-mcp-server
# Then run:
vertex-ai-mcp-serverNote: Running standalone requires setting necessary environment variables (like GOOGLE_CLOUD_PROJECT, GOOGLE_CLOUD_LOCATION, authentication credentials if not using ADC) in your shell environment before executing the command.
Installing via Smithery
To install Vertex AI Server for Claude Desktop automatically via Smithery:
bunx -y @smithery/cli install @shariqriazz/vertex-ai-mcp-server --client claudeRunning with Cline
Configure MCP Settings: Add/update the configuration in your Cline MCP settings file (e.g.,
.roo/mcp.json). You have two primary ways to configure the command:Option A: Using Node (Direct Path - Recommended for Development)
This method uses
nodeto run the compiled script directly. It's useful during development when you have the code cloned locally.{ "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... } }Important: Ensure the
argspath points correctly to thebuild/index.jsfile. Using an absolute path might be more reliable.
Option B: Using NPX (Requires Package Published to npm)
This method uses
npxto automatically download and run the server package from the npm registry. This is convenient if you don't want to clone the repository.{ "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... } }Ensure the environment variables in the
envblock are correctly set, either matching.envor explicitly defined here. Remove comments from the actual JSON file.
Restart/Reload Cline: Cline should detect the configuration change and start the server.
Use Tools: You can now use the extensive list of tools via Cline.
Development
Watch Mode:
bun run watchLinting:
bun run lintFormatting:
bun run format
License
This project is licensed under the MIT License - see the LICENSE file for details.
Available Tools
20 toolsanswer_query_directA
Answers a natural language query using only the internal knowledge of the configured Vertex AI model (gemini-2.5-pro-exp-03-25). Does not use web search. Requires a 'query' string.
Inputs: query (required).
answer_query_websearchB
Answers a natural language query using the configured Vertex AI model (gemini-2.5-pro-exp-03-25) enhanced with Google Search results for up-to-date information. Requires a 'query' string.
Inputs: query (required).
create_directoryA
Create a new directory or ensure a directory exists in the workspace filesystem. Can create multiple nested directories in one operation (like mkdir -p). If the directory already exists, this operation will succeed silently. Perfect for setting up directory structures for projects.
Inputs: path (required).
edit_file_contentA
Make line-based edits to a text file in the workspace filesystem. Each edit attempts to replace an exact match of 'oldText' with 'newText'. If no exact match is found, it attempts a line-by-line match ignoring leading/trailing whitespace. Indentation of the first line is preserved, and relative indentation of subsequent lines is attempted. Returns a git-style diff showing the changes made (or previewed if dryRun is true).
Inputs: edits (required), path (required), dryRun.
explain_topic_with_docsA
Provides a detailed explanation for a query about a specific software topic by synthesizing information primarily from official documentation found via web search. Focuses on comprehensive answers, context, and adherence to documented details. Uses the configured Vertex AI model (gemini-2.5-pro-exp-03-25) with Google Search. Requires 'topic' and 'query'.
Inputs: query (required), topic (required).
generate_project_guidelinesA
Generates a structured project guidelines document (e.g., Markdown) based on a specified list of technologies and versions (tech stack). Uses web search to find the latest official documentation, style guides, and best practices for each component and synthesizes them into actionable rules and recommendations. Uses the configured Vertex AI model (gemini-2.5-pro-exp-03-25) with Google Search. Requires 'tech_stack'.
Inputs: tech_stack (required).
get_directory_treeA
Get a recursive tree view of files and directories within the workspace filesystem as a JSON structure. Each entry includes 'name', 'type' (file/directory), and 'children' (an array) for directories. Files have no 'children' array. The output is formatted JSON text. Useful for understanding the complete structure of a project directory.
Inputs: path (required).
get_doc_snippetsA
Provides precise, authoritative code snippets or concise answers for technical queries by searching official documentation. Focuses on delivering exact solutions without unnecessary explanation. Uses the configured Vertex AI model (gemini-2.5-pro-exp-03-25) with Google Search. Requires 'topic' and 'query'.
Inputs: query (required), topic (required), include_examples, version.
get_filesystem_infoA
Retrieve detailed metadata about a file or directory within the workspace filesystem. Returns comprehensive information including size (bytes), creation time, last modified time, last accessed time, type (file/directory), and permissions (octal string). This tool is perfect for understanding file characteristics without reading the actual content.
Inputs: path (required).
list_directory_contentsA
Get a detailed listing of all files and directories directly within a specified path in the workspace filesystem. Results clearly distinguish between files and directories with [FILE] and [DIR] prefixes. This tool is essential for understanding directory structure and finding specific files within a directory. Does not list recursively.
Inputs: path (required).
move_file_or_directoryA
Move or rename files and directories within the workspace filesystem. Can move items between directories and rename them in a single operation. If the destination path already exists, the operation will likely fail (OS-dependent).
Inputs: destination (required), source (required).
read_file_contentA
Read the complete contents of a file from the workspace filesystem. Handles various text encodings and provides detailed error messages if the file cannot be read. Use this tool when you need to examine the contents of a single file within the workspace.
Inputs: path (required).
read_multiple_files_contentA
Read the contents of multiple files simultaneously from the workspace filesystem. This is more efficient than reading files one by one when you need to analyze or compare multiple files. Each file's content is returned with its path as a reference. Failed reads for individual files won't stop the entire operation.
Inputs: paths (required).
save_answer_query_directA
Answers a natural language query using only the internal knowledge of the configured Vertex AI model (gemini-2.5-pro-exp-03-25), does not use web search, and saves the answer to a file. Requires 'query' and 'output_path'.
Inputs: output_path (required), query (required).
save_answer_query_websearchA
Answers a natural language query using Google Search results and saves the answer to a file. Uses the configured Vertex AI model (gemini-2.5-pro-exp-03-25). Requires 'query' and 'output_path'.
Inputs: output_path (required), query (required).
save_doc_snippetA
Provides precise code snippets or concise answers for technical queries by searching official documentation and saves the result to a file. Uses the configured Vertex AI model (gemini-2.5-pro-exp-03-25) with Google Search. Requires 'topic', 'query', and 'output_path'.
Inputs: output_path (required), query (required), topic (required), include_examples, +1 more.
save_generate_project_guidelinesA
Generates comprehensive project guidelines based on a tech stack using web search and saves the result to a specified file path. Uses the configured Vertex AI model (gemini-2.5-pro-exp-03-25). Requires 'tech_stack' and 'output_path'.
Inputs: output_path (required), tech_stack (required).
save_topic_explanationC
Provides a detailed explanation for a query about a specific software topic using official documentation found via web search and saves the result to a file. Uses the configured Vertex AI model (gemini-2.5-pro-exp-03-25). Requires 'topic', 'query', and 'output_path'.
Inputs: output_path (required), query (required), topic (required).
search_filesystemA
Recursively search for files and directories within the workspace filesystem matching a pattern in their name. Searches through all subdirectories from the starting path. The search is case-insensitive and matches partial names. Returns full paths (relative to workspace) to all matching items. Supports excluding paths using glob patterns.
Inputs: path (required), pattern (required), excludePatterns.
write_file_contentA
Create a new file or completely overwrite an existing file in the workspace filesystem with new content. Use with caution as it will overwrite existing files without warning. Handles text content with proper encoding.
Inputs: content (required), path (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 20 tools
The tool set has clear distinctions between filesystem operations (e.g., create_directory, read_file_content) and AI query tools, but significant ambiguity exists within the AI query category. For example, answer_query_direct, explain_topic_with_docs, and get_doc_snippets all involve answering queries with the AI model, differing mainly in their use of web search or documentation focus, which could confuse an agent about which to select for a given task. The 'save_' variants further overlap with their non-save counterparts, adding redundancy rather than clarity.
Most tools follow a consistent verb_noun pattern (e.g., create_directory, read_file_content, search_filesystem), which is predictable and readable. However, there are minor deviations: some tools use underscores inconsistently (e.g., get_doc_snippets vs. save_doc_snippet) or have longer names (e.g., explain_topic_with_docs), and the 'save_' prefix is applied inconsistently across AI tools. Overall, the naming is mostly consistent but not perfectly uniform.
With 20 tools, the count is borderline high for a server focused on Vertex AI and filesystem operations. While the domain is broad, the tool set feels heavy due to redundant 'save_' variants and overlapping AI query tools. A more streamlined set of 10-15 tools could cover the same functionality without duplication, making this count slightly excessive but not extreme.
The server covers two main domains: filesystem management and AI-powered querying. For filesystem operations, it provides comprehensive CRUD-like coverage (create, read, edit, move, search, etc.), with no obvious gaps. For AI queries, it offers various modes (direct, web search, documentation-focused) and saving options, though the redundancy might mask minor gaps in specific query types. Overall, the surface is largely complete for its intended purposes.
Maintenance
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A Model Context Protocol server for Wix AI tools
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
Enable secure connectivity between Sentry issues and debugging data, and LLM clients, using a Model Context Protocol (MCP) server.
Related MCP Servers
- AlicenseAqualityDmaintenanceModel Context Protocol (MCP) server implementation that enables Claude Desktop to interact with Google's Gemini AI models.675 npm260MIT
- FlicenseNot gradedqualityDmaintenanceImplements a Model Control Protocol server integrated with Google Gemini LLM, providing a flexible framework for building AI-powered applications.-
- FlicenseNot gradedqualityDmaintenanceModel Context Protocol server for Google Cloud Platform, enabling interaction with Resource Manager, Compute Engine, Cloud Storage, BigQuery, Pub/Sub, and Cloud Logging via natural language.3-
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server that provides AI-powered Google search functionality using Gemini.1-