PostgreSQL Extension
The PostgreSQL MCP Server extension allows Goose to interact directly with your PostgreSQL databases, enabling database operations, querying, and schema management capabilities. This makes it easy to work with your databases through natural language interactions.
Command
npx -y @modelcontextprotocol/server-postgres postgresql://localhost/mydb
Customizing Your Connection
It's worth noting that this MCP server only allows connecting to a single predefined database at this time, and the connection URL must be specified in the command. We're using postgresql://localhost/mydb
as an example here to access a local database, but you can configure this for your own environment.
The PostgreSQL connection URL follows this format:
postgresql://username:password@hostname:5432/database
Where:
username
: Your PostgreSQL userpassword
: Your PostgreSQL passwordhostname
: The host where PostgreSQL is running (e.g., localhost, IP address, or domain)5432
: The default PostgreSQL port (change if using a different port)database
: The name of your database
Examples:
- Local database:
postgresql://localhost/mydb
- Local with credentials:
postgresql://myuser:mypass@localhost/mydb
- Remote database:
postgresql://user:pass@db.example.com:5432/production
Never commit connection strings with credentials to version control! Use environment variables or secure configuration management.
Configuration
Note that you'll need Node.js installed on your system to run this command, as it uses npx
.
- Goose CLI
- Goose Desktop
- Run the
configure
command:
goose configure
- Choose to add a
Command-line Extension
┌ goose-configure
│
◇ What would you like to configure?
│ Add Extension
│
◆ What type of extension would you like to add?
│ ○ Built-in Extension
│ ● Command-line Extension (Run a local command or script)
│ ○ Remote Extension
└
- Name your extension
┌ goose-configure
│
◇ What would you like to configure?
│ Add Extension
│
◇ What type of extension would you like to add?
│ Command-line Extension
│
◆ What would you like to call this extension?
│ PostgreSQL
└
- Enter the command with your database connection URL
┌ goose-configure
│
◇ What would you like to configure?
│ Add Extension
│
◇ What would you like to call this extension?
│ PostgreSQL
│
◆ What command should be run?
│ npx -y @modelcontextprotocol/server-postgres postgresql://localhost/mydb
└
- Set the timeout (default 300s is usually sufficient)
┌ goose-configure
│
◇ What would you like to configure?
│ Add Extension
│
◇ What would you like to call this extension?
│ PostgreSQL
│
◇ What command should be run?
│ npx -y @modelcontextprotocol/server-postgres postgresql://localhost/mydb
│
◆ Please set the timeout for this tool (in secs):
│ 300
└
- Configure your PostgreSQL connection URL
┌ goose-configure
│
◇ What would you like to configure?
│ Add Extension
│
◇ What would you like to call this extension?
│ PostgreSQL
│
◇ What command should be run?
│ npx -y @modelcontextprotocol/server-postgres postgresql://localhost/mydb
│
◇ Please set the timeout for this tool (in secs):
│ 300
│
◆ Would you like to add environment variables?
│ No
└ Added PostgreSQL extension
- Launch the installer
- Press
Yes
to confirm the installation - Enter your PostgreSQL connection URL in the format:
postgresql://username:password@hostname:5432/database
- Click
Save Configuration
- Scroll to the top and click
Exit
from the upper left corner
Example Usage
The PostgreSQL extension enables you to query and analyze data or give you information about the table structures. The extension is only capable of read-only operations, so you can use it to get information about your database, but not to modify it.
Just describe what you want to do in natural language, and Goose will help you accomplish it using the appropriate SQL commands and PostgreSQL features.
Goose Prompt
Search my database for any students whose current GPA is higher than the average in their current grade level. Tell me their name, grade, and how much they exceed their grade’s average GPA, and the average GPA.
Goose Output
Based on the query results, here are the students who are performing above their grade level average:
Grade 11
Emma Johnson
GPA: 4.00
Grade Average: 3.90
Exceeds average by: 0.10 points
Grade 12
John Smith
GPA: 3.85
Grade Average: 3.78
Exceeds average by: 0.08 points
Both students are performing well above their respective grade level averages. Emma Johnson in Grade 11 shows the highest difference above the grade average, exceeding it by 0.10 points, while John Smith in Grade 12 exceeds his grade's average by 0.08 points.