SQL数据库MCP服务器

一个模型上下文协议(MCP)服务器,使AI助手能够通过基本SQL认证直接安全地与Microsoft SQL Server数据库交互。

  • by MoMitwalyIgniteTech
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 momitwalyignitetech/mssql-mcp-server

使用说明

MSSQL数据库MCP服务器

一种模型上下文协议(MCP)服务器,使AI助手能够使用以下方式直接安全地与Microsoft SQL server数据库交互 基本SQL身份验证.

🚀 特性

  • 基本SQL身份验证 -使用用户名/密码连接(不需要Azure AD)
  • 安全查询执行 -内置SQL注入保护和查询验证
  • 多个数据库操作 -读取、写入、创建表、管理索引
  • 只读模式 -生产环境的安全模式
  • 交叉平台的 -适用于Windows、macOS和Linux
  • AI助手集成 -与Claude Desktop、VS Code Agent和其他MCP客户端兼容

🛠️ 安装

先决条件

  • Node.js 14或更高版本
  • 访问Microsoft SQL Server数据库
  • MCP兼容的AI助手(Claude Desktop、VS Code Agent等)

设置

  1. 克隆存储库

    git clone https://github.com/yourusername/mssql-mcp-server.git
    cd mssql-mcp-server
    
  2. 安装依赖项

    npm install
    
  3. 构建项目

    npm run build
    

⚙️ 配置

Claude桌面设置

  1. 打开克劳德桌面设置: File → Settings → Developer → Edit Config
  2. 添加以下配置:
{
  "mcpServers": {
    "mssql": {
      "command": "node",
      "args": ["/path/to/your/mssql-mcp-server/dist/index.js"],
      "env": {
        "SERVER_NAME": "your-server.database.windows.net",
        "DATABASE_NAME": "your-database-name",
        "SQL_USERNAME": "your-username",
        "SQL_PASSWORD": "your-password",
        "READONLY": "true",
        "CONNECTION_TIMEOUT": "30",
        "TRUST_SERVER_CERTIFICATE": "false"
      }
    }
  }
}

VS代码代理设置

  1. 创建 .vscode/mcp.json 在您的工作空间中:
{
  "mcp": {
    "servers": {
      "mssql": {
        "type": "stdio",
        "command": "node",
        "args": ["/path/to/your/mssql-mcp-server/dist/index.js"],
        "env": {
          "SERVER_NAME": "your-server.database.windows.net",
          "DATABASE_NAME": "your-database-name",
          "SQL_USERNAME": "your-username",
          "SQL_PASSWORD": "your-password",
          "READONLY": "true"
        }
      }
    }
  }
}

环境变量

变量 必填 描述 默认值
SERVER_NAME ✅ SQL Server主机名 -
DATABASE_NAME ✅ 数据库名称 -
SQL_USERNAME ✅ SQL身份验证用户名 -
SQL_PASSWORD ✅ SQL身份验证密码 -
READONLY ❌ 仅限于只读操作 "false"
CONNECTION_TIMEOUT ❌ 连接超时(秒) 30
TRUST_SERVER_CERTIFICATE ❌ 信任自签名证书 "false"

🔧 可用工具

只读模式(READONLY: "true")

  • read_data -执行SELECT查询
  • list_table -列出数据库中的所有表
  • describe_table -获取详细的表架构信息

完全访问模式(READONLY: "false")

所有只读工具加上:

  • insert_data -将新记录插入表中
  • update_data -更新现有记录
  • create_table -创建新表
  • create_index -创建数据库索引
  • drop_table -删除表格

💡 使用示例

配置后,您可以使用自然语言与数据库交互:

"Show me all customers from New York"
"Create a table for storing product information"
"List all tables in the database"
"Describe the structure of the users table"
"Insert a new customer record"

🔒 安全功能

  • SQL注入保护 -所有查询都经过验证和净化
  • 只读模式 -安全地探索数据库,没有修改风险
  • 查询验证 -危险操作和模式被阻止
  • 连接安全性 -默认情况下启用SSL加密
  • WHERE条款要求 -SELECT和UPDATE操作需要WHERE子句

🏗️ 发展

构建

npm run build

观看模式

npm run watch

启动服务器

npm start

🐛 故障排除

常见问题

连接错误

  • 验证服务器名称、数据库名称和凭据
  • 检查与SQL Server的网络连接
  • 确保SQL Server允许该身份验证方法

未找到模块(Windows+WSL)

  • 使用完整的Windows路径: C:\\path\\to\\dist\\index.js
  • 或者将服务器复制到Windows目录

权限不足

  • 验证SQL用户是否具有适当的数据库权限
  • 检查数据库是否需要特定的身份验证方法

调试模式

将此添加到您的环境变量中以进行详细的日志记录:

"DEBUG": "true"

🤝 贡献

  1. 分叉存储库
  2. 创建要素分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add some amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

📄 许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

🙏 致谢

📞 支持

  • 为错误报告或功能请求创建问题
  • 检查 MCP文件 关于MCP的一般问题
  • 查看故障排除部分以了解常见问题

由以下材料制成❤️ 对于AI社区