Skip to main content

MCP Server for Microsoft SQL Server — no native drivers required

Project description

yuppie-mcp-mssql

Microsoft SQL Server MCP Server — 让 AI 助手能够查询和操作 SQL Server,无需安装任何本地驱动(纯 Python 实现)。

特性

  • 无驱动:基于 python-tds,无需 ODBC 驱动或 FreeTDS
  • 权限控制:INSERT / UPDATE / DELETE / DDL 各自独立开关,默认全只读
  • 支持 stdio 和 Streamable HTTP 两种传输模式

快速开始

Claude Code

在项目 .mcp.json 或全局配置中添加:

{
  "mcpServers": {
    "mssql": {
      "type": "stdio",
      "command": "uvx",
      "args": ["yuppie-mcp-mssql"],
      "env": {
        "DB_HOST": "localhost",
        "DB_PORT": "1433",
        "DB_NAME": "master",
        "DB_USER": "sa",
        "DB_PASSWORD": "your_password"
      }
    }
  }
}

Cursor

~/.cursor/mcp.json 中添加:

{
  "mcpServers": {
    "mssql": {
      "command": "uvx",
      "args": ["yuppie-mcp-mssql"],
      "env": {
        "DB_HOST": "localhost",
        "DB_USER": "sa",
        "DB_PASSWORD": "your_password"
      }
    }
  }
}

Cherry Studio

打开 设置MCP Servers,粘贴以下 JSON 配置:

{
  "mcpServers": {
    "mssql": {
      "command": "uvx",
      "args": ["yuppie-mcp-mssql"],
      "env": {
        "DB_HOST": "your_host",
        "DB_PORT": "1433",
        "DB_NAME": "your_database",
        "DB_USER": "your_username",
        "DB_PASSWORD": "your_password"
      }
    }
  }
}

OpenCode

~/.opencode/opencode.json 中添加:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "mssql": {
      "type": "local",
      "command": ["uvx", "yuppie-mcp-mssql"],
      "enabled": true,
      "environment": {
        "DB_HOST": "localhost",
        "DB_USER": "sa",
        "DB_PASSWORD": "your_password"
      }
    }
  }
}

Claude Desktop

claude_desktop_config.json 中添加:

{
  "mcpServers": {
    "mssql": {
      "command": "uvx",
      "args": ["yuppie-mcp-mssql"],
      "env": {
        "DB_HOST": "localhost",
        "DB_USER": "sa",
        "DB_PASSWORD": "your_password"
      }
    }
  }
}

环境变量

连接配置

变量 说明 必填 默认值
DB_HOST SQL Server 主机地址 localhost
DB_PORT SQL Server 端口 1433
DB_NAME 默认数据库 master
DB_USER 用户名 -
DB_PASSWORD 密码 -

权限控制

变量 说明 默认值
DB_ALLOW_INSERT 是否允许 INSERT false
DB_ALLOW_UPDATE 是否允许 UPDATE false
DB_ALLOW_DELETE 是否允许 DELETE false
DB_ALLOW_DDL 是否允许 DDL(CREATE/DROP/ALTER/TRUNCATE) false

传输模式

变量 说明 默认值
MCP_TRANSPORT 传输模式:stdiostreamable_http stdio
MCP_PORT HTTP 模式端口 8000

测试与调试

使用 MCP Inspector

在项目根目录创建 .env 文件配置数据库连接:

DB_HOST=your_host
DB_PORT=1433
DB_NAME=your_database
DB_USER=your_username
DB_PASSWORD=your_password

然后启动 MCP Inspector(会自动读取 .env 文件):

npx @modelcontextprotocol/inspector uv run yuppie-mcp-mssql

Inspector 会打开一个网页界面,可以:

  • 查看所有可用工具
  • 直接调用工具测试
  • 查看请求/响应日志
  • 测试环境变量

运行测试

# 安装开发依赖
uv pip install -e ".[dev]"

# 运行测试
uv run pytest -v

可用工具

工具 说明
mssql_get_db_info 获取当前数据库基本信息(版本、服务器名、当前用户等)
mssql_execute_sql 执行 SQL 语句(SELECT 始终允许,写操作受环境变量控制)
mssql_list_tables 列出当前数据库下的所有表
mssql_describe_table 获取表的列结构(列名、类型、可空性等)

提示示例

查一下当前连接的是哪个数据库,SQL Server 版本是多少
列出当前数据库里所有的表
描述一下 dbo.Orders 表的结构
查询 dbo.Orders 表中最近 10 条记录
统计 dbo.Orders 表中每个状态的订单数量,按数量降序排列

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

yuppie_mcp_mssql-0.1.1.tar.gz (8.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

yuppie_mcp_mssql-0.1.1-py3-none-any.whl (11.5 kB view details)

Uploaded Python 3

File details

Details for the file yuppie_mcp_mssql-0.1.1.tar.gz.

File metadata

  • Download URL: yuppie_mcp_mssql-0.1.1.tar.gz
  • Upload date:
  • Size: 8.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.16 {"installer":{"name":"uv","version":"0.9.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for yuppie_mcp_mssql-0.1.1.tar.gz
Algorithm Hash digest
SHA256 9927c37753d233f99b2be712a5f9e12969c37b74c79f2bbdb6955e7ff3adc226
MD5 8e391c6fbdc7095d43e714919d89e49f
BLAKE2b-256 33051bbfa5b20f7f10a538cefcdf31cbfad71bde9ed92cf45adaf8dd77f9b3e6

See more details on using hashes here.

File details

Details for the file yuppie_mcp_mssql-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: yuppie_mcp_mssql-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 11.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.16 {"installer":{"name":"uv","version":"0.9.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for yuppie_mcp_mssql-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 82fca534375236a8bf896377f3e091d4dc9820de0670366780838016d48a4373
MD5 b257f84a85f3493cb44e10f41f9f72dd
BLAKE2b-256 c64e524faf2acfa9052942e85d0641ad5ebb464f66932fcd6375596f3552bee1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page