Skip to main content

MCP SQL Server Filesystem

English | 中文

一个简洁高效的 MCP (Model Context Protocol) 服务器,提供 SQL Server 数据库访问和文件系统操作功能。

✨ 主要特性

🗄️ 数据库功能

  • SQL 查询执行 - 支持 SELECT 查询
  • SQL 命令执行 - 支持 INSERT/UPDATE/DELETE 操作
  • 表结构查询 - 获取表的详细结构信息和字段描述
  • 表列表 - 列出数据库中的所有表

📁 文件系统功能

  • 文件读取 - 读取文件内容
  • 文件写入 - 写入内容到文件
  • 目录列表 - 列出目录内容

🔒 安全特性

  • SQL 注入防护
  • 文件系统访问控制
  • 环境变量配置
  • 权限验证

🚀 快速开始

📋 前置要求

1. 安装 ODBC Driver for SQL Server

Windows:

# 下载并安装 Microsoft ODBC Driver 17 for SQL Server
# 访问: https://docs.microsoft.com/en-us/sql/connect/odbc/download-odbc-driver-for-sql-server
# 或使用 winget 安装
winget install Microsoft.ODBCDriverforSQLServer

macOS:

# 使用 Homebrew 安装
brew tap microsoft/mssql-release https://github.com/Microsoft/homebrew-mssql-release
brew update
brew install msodbcsql17 mssql-tools

Linux (Ubuntu/Debian):

# 添加 Microsoft 仓库
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list

# 安装驱动
sudo apt-get update
sudo apt-get install msodbcsql17

2. 验证 ODBC 安装

# Windows
odbcad32.exe

# macOS/Linux
odbcinst -j

📦 零安装使用(推荐)

# 安装 uv(如果尚未安装)
pip install uv

# 直接运行 - 无需克隆仓库!
uvx mcp-sqlserver-filesystem@latest

🔧 配置

在你的 MCP 客户端(如 Claude Desktop、AugmentCode)中添加以下配置:

{
  "mcpServers": {
    "mcp-sqlserver-filesystem": {
      "command": "uvx",
      "args": ["mcp-sqlserver-filesystem@latest"],
      "env": {
        "DB_SERVER": "localhost",
        "DB_DATABASE": "your_database",
        "DB_USERNAME": "your_username",
        "DB_PASSWORD": "your_password",
        "DB_USE_WINDOWS_AUTH": "false",
        "DB_TRUST_SERVER_CERTIFICATE": "true",
        "DB_ENCRYPT": "false",
        "FS_ALLOWED_PATHS": "*",
        "FS_ALLOWED_EXTENSIONS": "*.*",
        "FS_IGNORE_FILE_LOCKS": "true"
      }
    }
  }
}

🛠️ 可用工具

数据库工具

  • sql_query - 执行 SQL SELECT 查询
  • sql_execute - 执行 SQL INSERT/UPDATE/DELETE 命令
  • list_tables - 列出数据库中的所有表
  • get_table_schema - 获取表的结构信息

文件系统工具

  • read_file - 读取文件内容
  • write_file - 写入文件内容
  • list_directory - 列出目录内容

📋 环境变量

数据库配置

  • DB_SERVER - SQL Server 服务器地址
  • DB_DATABASE - 数据库名称
  • DB_USERNAME - 用户名
  • DB_PASSWORD - 密码
  • DB_USE_WINDOWS_AUTH - 是否使用 Windows 身份验证
  • DB_TRUST_SERVER_CERTIFICATE - 是否信任服务器证书
  • DB_ENCRYPT - 是否加密连接

文件系统配置

  • FS_ALLOWED_PATHS - 允许访问的路径(* 表示所有路径)
  • FS_ALLOWED_EXTENSIONS - 允许的文件扩展名(*.* 表示所有文件)
  • FS_IGNORE_FILE_LOCKS - 是否忽略文件锁

🔧 开发

本地开发

# 克隆仓库
git clone https://github.com/ppengit/mcp-sqlserver-filesystem.git
cd mcp-sqlserver-filesystem

# 安装依赖
uv sync

# 运行服务器
uv run python -m mcp_sqlserver_filesystem server

测试

# 运行测试
uv run pytest

# 运行特定测试
uv run pytest tests/test_database.py

📄 许可证

MIT License - 详见 LICENSE 文件。

🤝 贡献

欢迎贡献!请提交 Issue 或 Pull Request。

❓ 常见问题

Q: 出现 "No module named 'pyodbc'" 错误

A: 请确保已安装 ODBC Driver for SQL Server,参见上面的前置要求部分。

Q: 出现 "Data source name not found" 错误

A: 检查 DB_SERVER 配置是否正确,确保 SQL Server 服务正在运行。

Q: 连接超时或拒绝连接

A:

  1. 检查 SQL Server 是否启用了 TCP/IP 协议
  2. 确认防火墙设置允许连接到 SQL Server 端口(默认1433)
  3. 验证用户名和密码是否正确

Q: 文件系统操作被拒绝

A: 检查 FS_ALLOWED_PATHS 和 FS_ALLOWED_EXTENSIONS 配置,确保路径和文件类型被允许访问。

📞 支持

🔄 更新日志

v1.0.1

  • 🎉 首个稳定版本发布
  • ✨ 完整的 SQL Server 数据库支持
  • 📁 全面的文件系统操作
  • 🔒 增强的安全特性
  • 📝 改进的错误处理和日志记录
  • 🚀 简化的架构,专注于核心功能

注意: 此版本专注于核心功能的稳定性和可靠性,提供简洁高效的MCP服务器体验。

Metadata

Release files for mcp-sqlserver-filesystem 1.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mcp-sqlserver-filesystem 1.0.3
File Size Uploaded Provenance
mcp_sqlserver_filesystem-1.0.3.tar.gz 20.9 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for mcp-sqlserver-filesystem 1.0.3
File Interpreter ABI Platform
mcp_sqlserver_filesystem-1.0.3-py3-none-any.whl Python 3 none any Details

Total release size: 44.6 kB

Release files / mcp_sqlserver_filesystem-1.0.3.tar.gz

Download URL mcp_sqlserver_filesystem-1.0.3.tar.gz
Size 20.9 kB
Tags Source
SHA-256 checksum
How to use checksums
b53294cd6e11097114f95f5387ec19b14d1b410a4140739ed8b7d16f4e479435
BLAKE2b-256 checksum
How to use checksums
ad4b38e440a1b9998c5253d7822620382dac72b55914aef16760fdaefa5b8caf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / mcp_sqlserver_filesystem-1.0.3-py3-none-any.whl

Download URL mcp_sqlserver_filesystem-1.0.3-py3-none-any.whl
Size 23.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
aec8b8207dee21433f8667a8210bfdfa9a9c207cca5fb0394f5d0c3567f5e123
BLAKE2b-256 checksum
How to use checksums
4d5dd1c6ab27a87d497c1595a0a4fcc94822c4a86d0ba45c9d0312e7892a6557
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Security for mcp-sqlserver-filesystem 1.0.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page