关于 Steampipe MCP Server
Steampipe MCP Server 将 MCP 客户端连接到 PostgreSQL 数据库,尤其适用于 Steampipe,可执行只读查询和检查架构,帮助 Claude 用户探索 Steampipe 连接及云服务商插件数据。
主要功能
- 01执行只读 SQL 查询
- 02列出各架构中的表
- 03列出指定架构中的表
- 04查看表的列名和类型
适用场景
- 01查询 Steampipe 云服务商数据
- 02查询前检查数据库架构
- 03通过 Claude 探索数据库结果
MCP 相关
该 MCP 服务向 Claude Desktop 等客户端提供查询、表列表和架构检查工具,并连接到 PostgreSQL 数据库。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Steampipe MCP 服务
一个用于与 PostgreSQL 数据库交互的 MCP 服务,主要用于配合 Steampipe 使用。
Steampipe 为每个连接提供一个架构,并创建一个包含所有架构的 search_path,但 public 架构通常为空。此外,Steampipe 的 AWS、GCP 和其他云服务插件包含大量表,因此逐一列出所有表并不实际。因此,建议这样提示 Claude Desktop:“在 Steampipe 中使用 aws_all 架构,列出所有 ec2 实例。”这样一来,Claude 更有可能在架构命令中使用 list_tables_in_schema,从而限制获取的表数量。
前置条件
1. 安装 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. 启动 Steampipe 服务
将 Steampipe 作为后台服务启动:
steampipe service start
你可以使用以下命令验证服务是否正在运行:
steampipe service status
3. 获取数据库 URL
可以在以下位置找到 Steampipe PostgreSQL 连接字符串:
steampipe service status
在输出中查找 Database URL,其格式通常如下:
postgres://steampipe:password@localhost:9193/steampipe
运行服务时,可以在 --database-url 参数中提供此 URL:
steampipe-mcp-server --database-url postgresql://steampipe:password@localhost:9193/steampipe
注意:服务必须使用 postgresql:// 协议才能正常工作。
4. 配置环境变量
你可以使用环境变量配置数据库连接,而不必每次都传入连接信息:
-
在项目目录中创建
.env文件,并填入数据库 URL:STEAMPIPE_MCP_DATABASE_URL=postgresql://steampipe:password@localhost:9193/steampipe -
服务启动时会自动加载此配置。
5. 在 Claude Desktop 中安装
对于已发布的版本,你可以直接配置 Claude Desktop:
- 打开 Claude Desktop
- 前往 Settings > Developer > Edit Config
- 将以下配置添加到 JSON 文件中:
{
"mcpServers": {
"steampipe": {
"command": "uvx",
"args": [
"steampipe-mcp-server",
"--database-url",
"postgresql://steampipe:password@localhost:9193/steampipe"
]
}
}
}
- 保存配置文件并重启 Claude Desktop
将数据库 URL 替换为你的实际 Steampipe 数据库 URL。此配置使用 uvx 直接执行已发布的软件包。
这些工具将在 Claude 的 steampipe 命名空间下提供。
可用工具
此 MCP 服务提供了若干实用工具,用于与 PostgreSQL 数据库交互:
query
针对数据库运行只读 SQL 查询,并以 JSON 格式返回结果。
list_all_tables
列出数据库 search_path 中所有架构的所有可用表。Steampipe 不使用 public 架构,每个连接都有自己的架构。
list_tables_in_schema
列出特定架构中的所有表。此工具有助于限制表的数量,尤其是在只使用一个架构时。
get_table_schema
获取特定表的列名和数据类型。表名应采用 schema.table 这样的格式。
安装
开发环境设置(推荐)
最简单的入门方式是使用附带的 Makefile:
# Create a virtual environment first
uv venv
# Install development dependencies
make dev-install
# View all available commands
make help
你也可以:
- 克隆代码仓库
- 创建虚拟环境:
uv venv - 激活环境:
source .venv/bin/activate(Linux/macOS)或.venv\Scripts\activate(Windows) - 安装开发依赖:
uv pip install -e .[dev]
开发
使用 Makefile
此项目包含一个用于执行常见任务的 Makefile:
# 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
运行 make help 查看所有可用命令。
运行方法
1. 开发模式(推荐)
# Using make
make dev
# OR manually
mcp dev src/steampipe_mcp_server/cli.py
这会启动服务和 MCP Inspector,让你可以交互式测试 query 工具及其他工具。
2. 使用 CLI
安装后:
# Using make
make server
# OR with explicit URL
steampipe-mcp-server --database-url postgresql://steampipe:password@localhost:9193/steampipe
# OR with environment variable
export STEAMPIPE_MCP_DATABASE_URL=postgresql://steampipe:password@localhost:9193/steampipe
steampipe-mcp-server
测试
使用以下命令运行测试:
# Using make
make test
# OR manually
pytest
对于需要数据库连接的测试,请设置 TEST_DB_URL 环境变量。
贡献
- Fork 代码仓库
- 为你的功能创建一个新分支
- 进行修改
- 运行测试和检查:
make check test - 提交 pull request
发布
要发布软件包的新版本:
-
更新
pyproject.toml中的版本 -
运行所有检查,确保一切正常:
make check test -
在 GitHub 上为此版本打标签:
git tag v0.1.0 # Use appropriate version number git push origin v0.1.0
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。