SQL Server CLI工具

一个用于SQL Server的命令行工具和MCP服务器,支持SQL Server身份验证和多种数据库操作。

  • by Cyronius
  • TypeScript
  • 本地部署
  • 5 星标
  • 更新于
在 GitHub 查看 Cyronius/claude-database-tools

使用说明

claude数据库工具

用于Claude Code的SQL Server CLI和MCP服务器。

为什么是这个工具?

这个项目是微软官方项目的替代品 mssql MCP服务器 具有一些关键优势:

  • 使用用户名和密码:支持SQL Server身份验证(用户名/密码),而不仅仅是Windows/Entra身份验证。非常适合开发环境、Docker容器或集成身份验证不可用的场景。

  • CLI首次设计:CLI工具可以直接从 Claude代码技能,使您无需设置MCP服务器即可访问数据库。当您想要更简单的配置或需要在MCP服务器有问题的环境中工作时,这很有用。

  • 包括MCP服务器:如果您喜欢这种集成方法,还可以提供MCP服务器。

特性

  • CLI工具:SQL Server操作的命令行界面
  • MCP服务器:用于Claude集成的模型上下文协议服务器(实验)
  • 安全:内置SQL注入预防和查询验证
  • 运营:列出表、描述模式、查询数据、插入/更新/删除记录、DDL生成

安装

git clone https://github.com/cyronius/claude-database-tools.git
cd claude-database-tools
npm install
npm run build

配置

复制 .env.example 到 .env 并配置您的数据库连接:

cp .env.example .env

编辑 .env 使用您的SQL Server凭据:

SQL_SERVER=localhost
SQL_DATABASE=your_database
SQL_USER=your_username
SQL_PASSWORD=your_password
SQL_PORT=1433
SQL_ENCRYPT=false
SQL_TRUST_SERVER_CERTIFICATE=true

CLI使用情况

构建后,使用以下命令运行命令:

node dist/cli/index.js <command> [options]

或全局安装:

npm install -g .
sql-cli <command> [options]

命令

命令 描述
list-tables [schemas...] 列出表,可选择按架构筛选
describe-table <tableName> 获取表架构(列、索引、外键)
read-data <query> 执行SELECT查询
insert-data <tableName> <jsonData> 插入记录
update-data <tableName> <updates> <whereClause> 更新记录
delete-data <tableName> <whereClause> --confirm 删除记录
exec-proc <procedureName> [params] 执行存储过程
create-table <tableName> <columns> 创建新表
drop-table <tableName> 放下一张桌子
create-index <tableName> <indexName> <columns> 创建索引
get-ddl <tableName> 生成CREATE TABLE DDL
get-alter-ddl <tableName> 生成ALTER表DDL

例子

# List all tables
sql-cli list-tables

# List tables in specific schemas
sql-cli list-tables dbo sales

# Describe a table
sql-cli describe-table dbo.Users

# Query data
sql-cli read-data "SELECT TOP 10 * FROM dbo.Users"

# Insert data
sql-cli insert-data dbo.Users '{"name": "John", "email": "john@example.com"}'

# Update data
sql-cli update-data dbo.Users '{"name": "Jane"}' "id = 1"

# Delete data (requires --confirm flag)
sql-cli delete-data dbo.Users "id = 1" --confirm

# Get table DDL
sql-cli get-ddl dbo.Users

MCP服务器(实验)

备注:MCP服务器集成尚未完全测试。使用风险自负。

MCP服务器允许Claude Code直接与您的SQL server数据库交互。

设置

添加到您的 ~/.claude/mcp.json:

{
  "mcpServers": {
    "mssql": {
      "command": "node",
      "args": ["/path/to/claude-database-tools/dist/index.js"],
      "env": {
        "SQL_SERVER": "your-server",
        "SQL_DATABASE": "your-database",
        "SQL_USER": "your-username",
        "SQL_PASSWORD": "your-password",
        "SQL_ENCRYPT": "true",
        "READONLY": "true"
      }
    }
  }
}

重新启动Claude Code以加载MCP服务器。

可用的MCP工具

只读的 (可用时 READONLY=true):

  • list_tables -列出表格
  • describe_table -获取表架构
  • read_data -执行SELECT查询
  • get_table_ddl -生成CREATE TABLE DDL
  • get_table_alter_ddl -生成ALTER表DDL

写 (要求 READONLY=false):

  • insert_data -插入记录
  • update_data -更新记录
  • delete_data -删除记录
  • create_table -创建表格
  • create_index -创建索引
  • drop_table -放下桌子
  • execute_stored_proc -执行存储过程

安全

  • SQL注入防护:SELECT查询根据危险的关键字和模式进行验证
  • 参数化查询:所有INSERT/UPDATE/DELETE操作都使用参数化查询
  • WHERE条款必填:UPDATE和DELETE操作需要WHERE子句
  • 查询限制:最大查询长度为10000个字符,结果集限制为10000条记录
  • 只读模式:设置 READONLY=true 禁用写入操作

许可证

麻省理工学院