潜行🐱
SQL server的MCP服务器——让AI代理在您的数据库中徘徊。
单二进制。零外部依赖。只需将其指向您的SQL Server即可。
安装
预构建二进制文件(推荐)
下载适用于您平台的最新版本:
或者使用curl:
# Linux/macOS
curl -fsSL https://github.com/copycatdb/prowl/releases/latest/download/prowl-$(uname -s | tr '[:upper:]' '[:lower:]')-$(uname -m) -o prowl
chmod +x prowl来源
cargo install --git https://github.com/copycatdb/prowl.git快速开始
# Configure
export TDSSERVER=localhost
export TDSPORT=1433
export TDSUSER=sa
export TDSPASSWORD=YourPassword123!
# Run (stdin/stdout JSON-RPC — connect via MCP client)
prowl克劳德桌面
增添 claude_desktop_config.json:
{
"mcpServers": {
"prowl": {
"command": "/path/to/prowl",
"args": ["--host", "localhost", "--user", "sa", "--password", "YourPassword123!"]
}
}
}VS代码/GitHub副本
增添 .vscode/settings.json:
{
"github.copilot.chat.mcpServers": {
"prowl": {
"command": "/path/to/prowl",
"args": ["--host", "localhost", "--user", "sa", "--password", "yourpass"]
}
}
}工具
prowl公开了10个用于数据库探索和监控的MCP工具:
架构发现
| 工具 | 说明 |
|---|---|
list_databases | 列出实例上的所有数据库 |
list_tables | 列出数据库中的所有表 |
describe_table | 列、类型、可空性、PK和FK |
查询执行
| 工具 | 说明 |
|---|---|
query | 执行只读SQL,返回markdown表(写操作被阻止) |
query_plan | 显示查询的执行计划 |
监测和诊断
| 工具 | 说明 |
|---|---|
active_sessions | 与CPU的活动用户会话、读取、写入 |
blocking_chains | 会话阻止其他会话 |
index_usage | 按改进措施列出的主要缺失指标 |
table_sizes | 数据库中每个表使用的空间 |
server_info | 版本、版次、兼容级别 |
例子: list_databases
| name |
| --- |
| master |
| tempdb |
| model |
| msdb |
| MyApp |例子: describe_table
## Columns
| COLUMN_NAME | DATA_TYPE | CHARACTER_MAXIMUM_LENGTH | NUMERIC_PRECISION | NUMERIC_SCALE | IS_NULLABLE | IS_PRIMARY_KEY |
| --- | --- | --- | --- | --- | --- | --- |
| id | int | NULL | 10 | 0 | NO | YES |
| name | nvarchar | 255 | NULL | NULL | NO | NO |
| email | nvarchar | 255 | NULL | NULL | YES | NO |
| created_at | datetime2 | NULL | NULL | NULL | NO | NO |
## Foreign Keys
(no results)安全
这 query 该工具拒绝任何包含写关键字的SQL(INSERT, UPDATE, DELETE, DROP, ALTER, CREATE, TRUNCATE, EXEC, EXECUTE).所有查询都在以下位置运行 READ UNCOMMITTED 隔离级别 NOCOUNT ON.
配置
prowl从环境变量或命令行参数读取连接设置(CLI参数优先):
| 环境变量 | CLI参数 | 默认值 | 描述 |
|---|---|---|---|
TDSSERVER | --host | localhost | SQL Server主机名 |
TDSPORT | --port | 1433 | SQL Server端口 |
TDSUSER | --user | sa | 用户名 |
TDSPASSWORD | --password | (空) | 密码 |
TDSDATABASE | --database | (无) | 默认数据库 |
| — | --no-trust-cert | false | 禁用信任服务器证书 |
默认情况下,prowl信任服务器证书(对开发人员友好)。使用 --no-trust-cert 在具有适当证书的生产环境中。
建筑
src/
main.rs — stdin/stdout JSON-RPC loop, arg parsing
server.rs — MCP protocol handler (initialize, tools/list, tools/call)
connection.rs — tabby connection management (connect, reconnect)
tools/
mod.rs — Tool registry and dispatch
schema.rs — list_databases, list_tables, describe_table
query.rs — query, query_plan
monitor.rs — active_sessions, blocking_chains, index_usage, table_sizes, server_infoprowl通过stdin/stdout直接使用JSON-RPC实现MCP协议,不需要繁重的SDK。它维护一个持久的TDS连接,并在发生错误时重新连接。
CopyCat生态系统
prowl是 模仿猫 家庭——全部建立在tabby之上:
| 项目 | 它做什么 |
|---|---|
| 虎斑猫 | 纯Rust TDS 7.4+协议库 |
| 猛扑 | 箭头原生ADBC驱动程序(Python) |
| 潜行 | 用于AI代理的MCP服务器👈 你来了 |
| 嘶嘶声 | 异步Python驱动程序 |
| 胡须 | DB-API 2.0 Python驱动程序 |
| 爪 | 典型锈蚀API |
| 毛球 | ODBC驱动程序 |
| 颗粒饲料 | Node.js驱动程序 |
| 猫薄荷 | 去司机 |
| 毛团 | JDBC驱动程序 |
| 依偎 | .NET ADO。NET驱动程序 |
许可证
麻省理工学院
