多数据库SQL连接服务器

一个支持多种数据库类型(包括SQLite、MySQL、PostgreSQL和SQL Server)的SQL连接服务器,提供连接管理、查询执行和模式检查功能。

  • by Soumya7681
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Soumya7681/sql-mcp-server

使用说明

多数据库SQL MCP服务器

一种模型上下文协议(MCP)服务器,为包括SQLite、MySQL、PostgreSQL和SQL server在内的多种数据库类型提供SQL数据库连接。

特性

  • 多数据库支持:SQLite、MySQL、PostgreSQL和SQL Server
  • 连接管理:创建、管理和断开多个数据库连接
  • 查询执行:使用参数化支持执行SQL查询
  • 模式检查:获取表和列信息
  • 类型安全:使用TypeScript构建,以获得更好的开发体验

安装

npm install

发展

# Build the project
npm run build

🔌 MCP服务器集成

要将此工具集集成到基于MCP的系统中,请按如下方式修改配置:

{
  "mcpServers": {
    "weather": {
      "command": "node",
      "args": [
        "/ABSOLUTE/PATH/TO/PARENT/FOLDER/project/build/index.js"
      ]
    }
  }
}

要将此工具集集成到基于MCP的系统中,请使用自定义npm脚本更新配置以运行Playwright服务器:

{
  "mcpServers": {
    "playwright": {
      "command": "npm",
      "args": [
        "run",
        "start:mcp"
      ]
    }
  }
}

✅ 确保你的 package.json 包括a start:mcp 指向正确TypeScript入口文件的脚本 ts-node.

示例 package.json 代码片段:

"scripts": {
  "start:mcp": "ts-node src/index.ts"
}

这允许您跳过手册 npm run build 开发过程中的步骤,使直接从TypeScript源代码迭代和测试MCP工具更快。


用法

服务器支持以下工具:

1.连接数据库

连接到具有指定配置的数据库。

参数:

  • connectionId (字符串,必填):连接的唯一标识符
  • type (字符串,必填):数据库类型-“sqlite”、“mysql”、“postgresql”或“mssql”
  • database (字符串,必填):数据库名称
  • host (字符串,可选):数据库主机(SQLite不需要)
  • port (数字,可选):数据库端口(SQLite不需要)
  • username (字符串,可选):数据库用户名(SQLite不需要)
  • password (字符串,可选):数据库密码(SQLite不需要)
  • filename (字符串,可选):SQLite数据库文件路径(SQLite需要)
  • ssl (布尔值,可选):启用SSL连接
  • trustServerCertificate (布尔值,可选):信任服务器证书(仅限MSSQL)

2.execute_query

在连接的数据库上执行SQL查询。

参数:

  • connectionId (字符串,必填):连接标识符
  • query (字符串,必填):要执行的SQL查询
  • parameters (数组,可选):参数化查询的查询参数

3.get_table_schema

获取表的架构信息。

参数:

  • connectionId (字符串,必填):连接标识符
  • tableName (字符串,可选):特定表名(如果未提供,则返回所有表)

4.列表连接

列出所有活动的数据库连接。

参数: 无

5.断开连接_数据库

断开与数据库的连接。

参数:

  • connectionId (字符串,必填):要断开连接的连接标识符

数据库特定注释

SQLite

  • 需要 filename 指向数据库文件的参数
  • 无需主机、端口、用户名或密码
  • 如果文件不存在,将创建该文件

MySQL

  • 默认端口:3306
  • 支持SSL连接
  • 使用mysql2驱动程序进行基于Promise的操作

PostgreSQL

  • 默认端口:5432
  • 支持SSL连接 rejectUnauthorized: false 为了发展
  • 使用pg驱动程序

SQL Server(MSSQL)

  • 默认端口:1433
  • 支持SSL加密
  • 使用 trustServerCertificate: true 用于自签名证书
  • 使用mssql驱动程序

连接示例

SQLite

{
  "connectionId": "my-sqlite",
  "type": "sqlite",
  "database": "myapp",
  "filename": "./data/myapp.db"
}

MySQL

{
  "connectionId": "my-mysql",
  "type": "mysql",
  "host": "localhost",
  "port": 3306,
  "database": "myapp",
  "username": "root",
  "password": "password",
  "ssl": false
}

PostgreSQL

{
  "connectionId": "my-postgres",
  "type": "postgresql",
  "host": "localhost",
  "port": 5432,
  "database": "myapp",
  "username": "postgres",
  "password": "password",
  "ssl": false
}

SQL Server

{
  "connectionId": "my-mssql",
  "type": "mssql",
  "host": "localhost",
  "port": 1433,
  "database": "myapp",
  "username": "sa",
  "password": "YourStrong@Passw0rd",
  "ssl": true,
  "trustServerCertificate": true
}

错误处理

该服务器包括全面的错误处理功能,用于:

  • 数据库连接失败
  • 查询执行错误
  • 连接ID无效
  • 不支持的数据库类型
  • 架构检查错误

所有错误都会返回描述性消息,以帮助调试。

项目结构

src/
├── index.ts           # Main server entry point
├── DatabaseManager.ts # Database connection and query management
├── handlers.ts        # Tool call handlers
├── tools.ts          # Tool definitions
└── types.ts          # TypeScript type definitions

需求

  • Node.js 18+
  • TypeScript 5+
  • 特定数据库类型的数据库驱动程序

许可证

麻省理工学院

🤝 贡献

我们欢迎捐款!请查看我们的 贡献.md 作为指导方针。