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 中添加(--refresh 强制拉取 PyPI 最新版,忽略本地缓存):
{
"mcpServers": {
"mssql": {
"type": "stdio",
"command": "uvx",
"args": ["--refresh", "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 |
传输模式:stdio 或 streamable_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 |
获取表的列结构(列名、类型、可空性等) |
mssql_export_to_csv |
将查询结果导出到 CSV 文件(支持自定义分隔符) |
提示示例
基础查询
查一下当前连接的是哪个数据库,SQL Server 版本是多少
列出当前数据库里所有的表
描述一下 dbo.Orders 表的结构
查询 dbo.Orders 表中最近 10 条记录
统计 dbo.Orders 表中每个状态的订单数量,按数量降序排列
导出功能
将查询结果导出到 CSV 文件(逗号分隔,自动创建目录)
导出查询结果为 TSV 格式(制表符分隔,适合 Excel 打开)
导出数据到自定义路径,使用分号分隔
License
MIT
Metadata
Release files for yuppie-mcp-mssql 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| yuppie_mcp_mssql-0.2.0.tar.gz | 10.2 kB | Without provenance | Details for yuppie_mcp_mssql-0.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| yuppie_mcp_mssql-0.2.0-py3-none-any.whl | Python 3 | none | any | Details for yuppie_mcp_mssql-0.2.0-py3-none-any.whl |
Total release size: 24.6 kB
Release files / yuppie_mcp_mssql-0.2.0.tar.gz
| Download URL | yuppie_mcp_mssql-0.2.0.tar.gz |
|---|---|
| Size | 10.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
de047df95517f256da82c75dd816131de489d917807adfae81eaca852a1104e6
|
|
BLAKE2b-256 checksum How to use checksums |
cd8af4762c85aac2f82126929606e1fc0000a4e6bec2a291402d92293b7e33b0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|
Release files / yuppie_mcp_mssql-0.2.0-py3-none-any.whl
| Download URL | yuppie_mcp_mssql-0.2.0-py3-none-any.whl |
|---|---|
| Size | 14.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0731b6edf0d292c268ccda90cef79718d0ad91cb44fd7c0f813bb027524a941d
|
|
BLAKE2b-256 checksum How to use checksums |
25aa60ed04098b3fd60e909935b0ea71f05d012f5bde4a2763735f7c9c2b0c35
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|
Security for yuppie-mcp-mssql 0.2.0
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.