## Description > Should include a concise description of the changes (bug or feature), it's > impact, along with a summary of the solution ## PR Checklist > Thank you for opening a Pull Request! Before submitting your PR, there are a > few things you can do to make sure it goes smoothly: - [x] Make sure you reviewed [CONTRIBUTING.md](https://github.com/googleapis/genai-toolbox/blob/main/CONTRIBUTING.md) - [ ] Make sure to open an issue as a [bug/issue](https://github.com/googleapis/genai-toolbox/issues/new/choose) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea - [ ] Ensure the tests and linter pass - [ ] Code coverage does not decrease (if any source code was changed) - [ ] Appropriate docs were updated (if necessary) - [ ] Make sure to add `!` if this involve a breaking change 🛠️ Fixes #<issue_number_goes_here>
5.2 KiB
AlloyDB for PostgreSQL MCP Server
The AlloyDB Model Context Protocol (MCP) Server gives AI-powered development tools the ability to work with your Google Cloud AlloyDB for PostgreSQL resources. It supports full lifecycle control, from exploring schemas and running queries to monitoring your database.
Features
An editor configured to use the AlloyDB MCP server can use its AI capabilities to help you:
- Explore Schemas and Data - List tables, get table details, and view data
- Execute SQL - Run SQL queries directly from your editor
- Monitor Performance - View active queries, query plans, and other performance metrics (via observability tools)
- Manage Extensions - List available and installed PostgreSQL extensions
For AlloyDB infrastructure management, search the MCP store for the AlloyDB for PostgreSQL Admin MCP Server.
Prerequisites
- Node.js installed.
- A Google Cloud project with the AlloyDB API enabled.
- Ensure Application Default Credentials are available in your environment.
- IAM Permissions:
- AlloyDB Client (
roles/alloydb.client) (for connecting and querying) - Service Usage Consumer (
roles/serviceusage.serviceUsageConsumer)
- AlloyDB Client (
Note: If your AlloyDB instance uses private IPs, you must run the MCP server in the same Virtual Private Cloud (VPC) network.
Install & Configuration
-
In the Antigravity MCP Store, click the "Install" button.
Note
On first use, the installation process automatically downloads and uses MCP Toolbox
>=0.26.0. To update MCP Toolbox, use:npm i -g @toolbox-sdk/server@latestTo always run the latest version, update the MCP server configuration to use:npx -y @toolbox-sdk/server@latest --prebuilt alloydb-postgres. -
Add the required inputs for your cluster in the configuration pop-up, then click "Save". You can update this configuration at any time in the "Configure" tab.
Note
If you encounter issues with Windows Defender blocking the execution, you may need to configure an allowlist. See Configure exclusions for Microsoft Defender Antivirus for more details.
You'll now be able to see all enabled tools in the "Tools" tab.
Usage
Once configured, the MCP server will automatically provide AlloyDB capabilities to your AI assistant. You can:
- "Show me all tables in the 'orders' database."
- "What are the columns in the 'products' table?"
- "How many orders were placed in the last 30 days?"
Server Capabilities
The AlloyDB MCP server provides the following tools:
| Tool Name | Description |
|---|---|
list_tables |
Lists detailed schema information for user-created tables. |
execute_sql |
Executes a SQL query. |
list_active_queries |
List currently running queries. |
list_available_extensions |
List available extensions for installation. |
list_installed_extensions |
List installed extensions. |
get_query_plan |
Get query plan for a SQL statement. |
list_autovacuum_configurations |
List autovacuum configurations and their values. |
list_memory_configurations |
List memory configurations and their values. |
list_top_bloated_tables |
List top bloated tables. |
list_replication_slots |
List replication slots. |
list_invalid_indexes |
List invalid indexes. |
Custom MCP Server Configuration
The AlloyDB MCP server is configured using environment variables.
export ALLOYDB_POSTGRES_PROJECT="<your-gcp-project-id>"
export ALLOYDB_POSTGRES_REGION="<your-alloydb-region>"
export ALLOYDB_POSTGRES_CLUSTER="<your-alloydb-cluster-id>"
export ALLOYDB_POSTGRES_INSTANCE="<your-alloydb-instance-id>"
export ALLOYDB_POSTGRES_DATABASE="<your-database-name>"
export ALLOYDB_POSTGRES_USER="<your-database-user>" # Optional
export ALLOYDB_POSTGRES_PASSWORD="<your-database-password>" # Optional
export ALLOYDB_POSTGRES_IP_TYPE="PUBLIC" # Optional: `PUBLIC`, `PRIVATE`, `PSC`. Defaults to `PUBLIC`.
Add the following configuration to your MCP client (e.g., settings.json for Gemini CLI, mcp_config.json for Antigravity):
{
"mcpServers": {
"alloydb-postgres": {
"command": "npx",
"args": ["-y", "@toolbox-sdk/server", "--prebuilt", "alloydb-postgres", "--stdio"]
}
}
}
Documentation
For more information, visit the AlloyDB for PostgreSQL documentation.