SQL Server AI代理访问工具

prowl是一个基于tabby构建的SQL Server MCP服务器,为AI代理如Claude和Copilot提供直接访问SQL Server的能力。

  • by copycatdb
  • Rust
  • 本地部署
  • 更新于
在 GitHub 查看 copycatdb/prowl

使用说明

潜行🐱

SQL server的MCP服务器——让AI代理在您的数据库中徘徊。

建立在 虎斑猫 (纯Rust TDS 7.4+),prowl允许像Claude和Copilot这样的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_info

prowl通过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驱动程序

许可证

麻省理工学院