Steampipe MCP Server
An MCP server that allows Claude to query Steampipe PostgreSQL databases directly. Connect Claude to your Steampipe instance to easily analyze data from AWS, GCP, and other cloud providers through natural language.
zen4ever
README
Steampipe MCP Server
An MCP server interacting with PostgreSQL databases, primarily for use with Steampipe.
Steampipe has a schema per connection, and creates a search_path that includes all the schemas, but public schema is typically empty. In additiona to that, Steampipe plugins for AWS, GCP and other clouds have a lot of tables, so just listing all of them is not practical. So, the recommended way to prompt your Claude Desktop would be to say something like this: "In steampipe using aws_all schema, give me a list of all ec2 instances". This way Claude will be more likely to use list_tables_in_schema in schema command, to limit the number of tables retrieved.
Prerequisites
1. Install Steampipe
macOS:
brew tap turbot/tap
brew install steampipe
Linux:
sudo /bin/sh -c "$(curl -fsSL https://steampipe.io/install/steampipe.sh)"
Windows:
iwr -useb https://steampipe.io/install/steampipe.ps1 | iex
2. Start Steampipe Service
Start Steampipe as a background service:
steampipe service start
You can verify the service is running with:
steampipe service status
3. Get Database URL
The Steampipe PostgreSQL connection string can be found:
steampipe service status
Look for the Database URL
in the output, which typically looks like:
postgres://steampipe:password@localhost:9193/steampipe
You can provide this URL in the --database-url
argument when running the server:
steampipe-mcp --database-url postgresql://steampipe:password@localhost:9193/steampipe
Note: Protocol must be postgresql://
for the server to work correctly.
4. Configuring Environment Variables
You can configure the database connection using an environment variable instead of passing it each time:
-
Create a
.env
file in the project directory with your database URL:DATABASE_URL=postgresql://steampipe:password@localhost:9193/steampipe
-
The server will automatically load this configuration when starting up.
Available Tools
This MCP server provides several useful tools for interacting with your PostgreSQL database:
query
Runs a read-only SQL query against the database and returns results as JSON.
list_all_tables
Lists all available tables in all schemas in your database's search path. Steampipe doesn't use public
schema, there is schema per connection.
list_tables_in_schema
Lists all tables within a specific schema. Useful to limit the amount of tables, especially when working with just one schema.
get_table_schema
Retrieves column names and data types for a specific table, table should be in a format like schema.table
.
Project Structure
steampipe-mcp-server/
├── src/
│ └── steampipe_mcp_server/ # Main package
│ ├── __init__.py
│ ├── cli.py # Command-line interface
│ ├── database.py # Database service
│ ├── server.py # MCP server setup
│ ├── tools.py # MCP tools implementation
│ └── test_utils.py # Testing utilities
├── tests/ # Test directory
├── Makefile # Build automation
├── pyproject.toml # Project configuration
└── README.md # This file
Installation
Development Setup (Recommended)
The easiest way to get started is to use the included Makefile:
# Create a virtual environment first
uv venv
# Install development dependencies
make dev-install
# View all available commands
make help
Alternatively, you can:
- Clone the repository
- Create a virtual environment:
uv venv
- Activate the environment:
source .venv/bin/activate
(Linux/macOS) or.venv\Scripts\activate
(Windows) - Install dev dependencies:
uv pip install -e .[dev]
Install from Source
pip install -e .
Development
Using the Makefile
The project includes a Makefile with common tasks:
# Run the server in development mode with Inspector
make dev
# Run tests
make test
# Run linting
make lint
# Run type checking
make typecheck
# Format code
make format
# Run all checks (lint and typecheck)
make check
# Install in Claude Desktop
make install-mcp
Run make help
to see all available commands.
How to Run
1. Development Mode (Recommended)
# Using make
make dev
# OR manually
mcp dev src/steampipe_mcp_server/cli.py
This will start the server and the MCP Inspector, allowing you to test the query
tool and other tools interactively.
2. Using CLI
After installation:
# Using make
make server
# OR with explicit URL
steampipe-mcp --database-url postgresql://steampipe:password@localhost:9193/steampipe
# OR with environment variable
export DATABASE_URL=postgresql://steampipe:password@localhost:9193/steampipe
steampipe-mcp
3. Install in Claude Desktop
Development Version
For development and testing:
# Using make (ensure DATABASE_URL environment variable is set)
make install-mcp
# OR manually
mcp install steampipe_mcp_server.cli:main
Published Version
For the published version, you can configure Claude Desktop directly:
- Open Claude Desktop
- Navigate to Settings > Developer > Edit Config
- Add the following configuration to the JSON file:
{
"mcpServers": {
"steampipe": {
"command": "uvx",
"args": [
"steampipe-mcp-server",
"--database-url",
"postgresql://steampipe:password@localhost:9193/steampipe"
]
}
}
}
- Save the config file and restart Claude Desktop
Replace the database URL with your actual Steampipe database URL. This configuration uses uvx
to execute the published package directly.
The tools will be available within Claude under the steampipe
namespace.
Testing
Run tests with:
# Using make
make test
# OR manually
pytest
For tests that require a database connection, set the TEST_DB_URL
environment variable.
Contributing
- Fork the repository
- Create a new branch for your feature
- Make your changes
- Run tests and checks:
make check test
- Submit a pull request
Recommended Servers
Crypto Price & Market Analysis MCP Server
A Model Context Protocol (MCP) server that provides comprehensive cryptocurrency analysis using the CoinCap API. This server offers real-time price data, market analysis, and historical trends through an easy-to-use interface.
MCP PubMed Search
Server to search PubMed (PubMed is a free, online database that allows users to search for biomedical and life sciences literature). I have created on a day MCP came out but was on vacation, I saw someone post similar server in your DB, but figured to post mine.
dbt Semantic Layer MCP Server
A server that enables querying the dbt Semantic Layer through natural language conversations with Claude Desktop and other AI assistants, allowing users to discover metrics, create queries, analyze data, and visualize results.
mixpanel
Connect to your Mixpanel data. Query events, retention, and funnel data from Mixpanel analytics.

Sequential Thinking MCP Server
This server facilitates structured problem-solving by breaking down complex issues into sequential steps, supporting revisions, and enabling multiple solution paths through full MCP integration.

Nefino MCP Server
Provides large language models with access to news and information about renewable energy projects in Germany, allowing filtering by location, topic (solar, wind, hydrogen), and date range.
Vectorize
Vectorize MCP server for advanced retrieval, Private Deep Research, Anything-to-Markdown file extraction and text chunking.
Mathematica Documentation MCP server
A server that provides access to Mathematica documentation through FastMCP, enabling users to retrieve function documentation and list package symbols from Wolfram Mathematica.
kb-mcp-server
An MCP server aimed to be portable, local, easy and convenient to support semantic/graph based retrieval of txtai "all in one" embeddings database. Any txtai embeddings db in tar.gz form can be loaded
Research MCP Server
The server functions as an MCP server to interact with Notion for retrieving and creating survey data, integrating with the Claude Desktop Client for conducting and reviewing surveys.