MicrosoftMSSQLMCP管理工具Skill mssql

该技能专用于管理Microsoft MSSQL MCP服务器,提供状态检查、服务器重建和上游更新功能。支持Node.js和.NET版本,涵盖环境配置验证、构建流程和数据库连接测试,适用于AI与SQL数据库集成的开发和维护。关键词包括MSSQL、MCP、服务器管理、数据库、AI、Node.js、.NET、构建、更新、DevOps。

DevOps 0 次安装 0 次浏览 更新于 3/11/2026

名称: mssql 描述: 管理MssqlMcp服务器 - 状态、重建和上游更新 参数提示: “[status] [rebuild] [update] [–node] [–dotnet] [–check]” 允许工具: Bash, Read, Glob, Grep, Write, AskUserQuestion

/microsoft:mssql

管理预置的MssqlMcp服务器(Node.js和.NET)。该插件附带预构建的服务器 - 此技能用于诊断、重建和上游更新。

子命令

$ARGUMENTS 解析第一个位置参数:

子命令 描述
status 检查环境、验证构件、测试连接性(默认无参数时)
rebuild 从现有源代码重建服务器
update 从上游GitHub拉取最新版本并重建

标志

标志 适用于 描述
--node status, rebuild 仅操作Node.js服务器
--dotnet status, rebuild 仅操作.NET服务器
--check update 显示可能的变化而不应用

子命令: status(默认)

检查环境配置、验证构建构件是否存在,并测试数据库连接性。

步骤 1: 检查环境变量

echo "MSSQL_AUTH_TYPE: ${MSSQL_AUTH_TYPE:-azure-default (默认)}"
echo "MSSQL_SERVER_NAME: ${MSSQL_SERVER_NAME:-localhost (默认)}"
echo "MSSQL_DATABASE_NAME: ${MSSQL_DATABASE_NAME:-master (默认)}"
echo "MSSQL_USER: ${MSSQL_USER:-(未设置)}"
echo "MSSQL_PASSWORD: ${MSSQL_PASSWORD:+(已设置)}"
echo "MSSQL_ENCRYPT: ${MSSQL_ENCRYPT:-true (默认)}"
echo "MSSQL_READONLY: ${MSSQL_READONLY:-true (默认)}"
echo "MSSQL_TRUST_CERT: ${MSSQL_TRUST_CERT:-true (默认)}"
echo "MSSQL_CONNECTION_STRING: ${MSSQL_CONNECTION_STRING:+(自定义 - 用于.NET)}"

步骤 2: 验证构建构件

# Node.js - 检查包是否存在(单文件,运行时无需node_modules)
ls ${CLAUDE_PLUGIN_ROOT}/vendor/MssqlMcp/Node/bundle/index.cjs

# Node.js - 检查dist是否存在(用于打包步骤)
ls ${CLAUDE_PLUGIN_ROOT}/vendor/MssqlMcp/Node/dist/index.js

# .NET - 检查发布的exe是否存在
ls ${CLAUDE_PLUGIN_ROOT}/vendor/MssqlMcp/dotnet-publish/MssqlMcp.exe

报告:

构建构件

  Node.js:
    bundle/index.cjs: 找到(运行时入口点)
    dist/index.js: 找到(用于打包步骤)

  .NET:
    dotnet-publish/MssqlMcp.exe: 找到(预构建,准备使用)

步骤 3: 测试数据库连接性

# 对于 LocalDB
sqlcmd -S "(localdb)\MSSQLLocalDB" -d master -Q "SELECT @@VERSION" -C

# 对于自定义服务器
sqlcmd -S "${MSSQL_SERVER_NAME}" -d "${MSSQL_DATABASE_NAME}" -Q "SELECT @@VERSION" -C

步骤 4: 报告

SQL Server MCP 状态

环境:
  服务器: (localdb)\MSSQLLocalDB
  数据库: master
  认证: azure-default
  模式: 只读

构建状态:
  mssql-node: 就绪(bundle/index.cjs 找到)
  mssql-dotnet: 就绪(dotnet-publish/MssqlMcp.exe 找到)

连接性:
  sqlcmd 测试: 成功
  SQL 版本: Microsoft SQL Server 2022 (RTM)

状态: 就绪

子命令: rebuild

从现有源代码重建服务器。在修改源代码或修复损坏构建后使用。

先决条件

  • Node.js: Node.js 18+ 带 npm
  • .NET: .NET 8 SDK

步骤 1: 检查先决条件

node --version
npm --version
dotnet --version

步骤 2: 构建 Node.js(除非 --dotnet)

cd ${CLAUDE_PLUGIN_ROOT}/vendor/MssqlMcp/Node
npm install
npm run build
npm run bundle

验证:

ls dist/index.js
ls bundle/index.cjs

步骤 3: 构建 .NET(除非 --node)

cd ${CLAUDE_PLUGIN_ROOT}/vendor/MssqlMcp/dotnet
dotnet publish MssqlMcp/MssqlMcp.csproj -c Release -o ../dotnet-publish

验证:

ls ${CLAUDE_PLUGIN_ROOT}/vendor/MssqlMcp/dotnet-publish/MssqlMcp.exe

步骤 4: 强制添加重建构件到 git

git add -f plugins/microsoft/vendor/MssqlMcp/dotnet-publish/
git add -f plugins/microsoft/vendor/MssqlMcp/Node/bundle/
git add -f plugins/microsoft/vendor/MssqlMcp/Node/dist/

步骤 5: 报告

MssqlMcp 重建完成

Node.js 服务器:
  输出: bundle/index.cjs(包含所有依赖的单文件包)

.NET 服务器:
  输出: dotnet-publish/MssqlMcp.exe

构件已重新跟踪到git。准备好时提交。

子命令: update

从上游 Azure-Samples/SQL-AI-samples 拉取最新版本并重建。

警告: 本地补丁将被覆盖

此插件包含本地补丁(记录在 vendor/MssqlMcp/PATCHES.md 中)。更新后,必须重新应用这些补丁。

步骤 1: 克隆上游到临时目录

TEMP_DIR=$(mktemp -d)
cd "$TEMP_DIR"

git clone --depth 1 --filter=blob:none --sparse \
  https://github.com/Azure-Samples/SQL-AI-samples.git
cd SQL-AI-samples
git sparse-checkout set MssqlMcp

LATEST_COMMIT=$(git rev-parse --short HEAD)
LATEST_MESSAGE=$(git log -1 --format=%s)

步骤 2: 比较版本

cd "${CLAUDE_PLUGIN_ROOT}"
CURRENT_COMMIT=$(cat plugins/microsoft/vendor/MssqlMcp/VERSION 2>/dev/null || echo "未知")

报告:

MssqlMcp 更新检查

  当前: ${CURRENT_COMMIT}
  上游: ${LATEST_COMMIT} - ${LATEST_MESSAGE}

如果 --check,在此停止。

步骤 3: 复制文件

# 备份当前
mv plugins/microsoft/vendor/MssqlMcp plugins/microsoft/vendor/MssqlMcp.bak

# 复制新文件(从备份保留构建构件和父级.gitignore)
cp -r "$TEMP_DIR/SQL-AI-samples/MssqlMcp" plugins/microsoft/vendor/
cp -r plugins/microsoft/vendor/MssqlMcp.bak/Node/dist plugins/microsoft/vendor/MssqlMcp/Node/ 2>/dev/null || true
cp -r plugins/microsoft/vendor/MssqlMcp.bak/Node/bundle plugins/microsoft/vendor/MssqlMcp/Node/ 2>/dev/null || true
cp -r plugins/microsoft/vendor/MssqlMcp.bak/Node/node_modules plugins/microsoft/vendor/MssqlMcp/Node/ 2>/dev/null || true
cp -r plugins/microsoft/vendor/MssqlMcp.bak/dotnet-publish plugins/microsoft/vendor/MssqlMcp/ 2>/dev/null || true
cp plugins/microsoft/vendor/MssqlMcp.bak/.gitignore plugins/microsoft/vendor/MssqlMcp/ 2>/dev/null || true

# 写入版本文件
echo "${LATEST_COMMIT}" > plugins/microsoft/vendor/MssqlMcp/VERSION

# 清理
rm -rf plugins/microsoft/vendor/MssqlMcp.bak
rm -rf "$TEMP_DIR"

步骤 4: 重建 Node.js

cd plugins/microsoft/vendor/MssqlMcp/Node
npm install
npm run build
npm run bundle

步骤 5: 重建 .NET

cd plugins/microsoft/vendor/MssqlMcp/dotnet
dotnet publish MssqlMcp/MssqlMcp.csproj -c Release -o ../dotnet-publish

步骤 6: 重新应用本地补丁

重要: 读取并重新应用 PATCHES.md 中的补丁:

cat plugins/microsoft/vendor/MssqlMcp/PATCHES.md

当前要重新应用的补丁:

  1. 多认证支持Node/src/index.ts 中:
    • 添加 AuthType 类型
    • 用多认证工厂替换 createSqlConfig()
    • 更新 ensureSqlConnection() 以支持SQL认证

重新应用后,重建:

cd plugins/microsoft/vendor/MssqlMcp/Node
npm run build && npm run bundle

步骤 7: 强制添加并报告

git add -f plugins/microsoft/vendor/MssqlMcp/dotnet-publish/
git add -f plugins/microsoft/vendor/MssqlMcp/Node/bundle/
git add -f plugins/microsoft/vendor/MssqlMcp/Node/dist/
git status --short plugins/microsoft/vendor/MssqlMcp/

示例

# 检查状态(默认)
/microsoft:mssql

# 仅检查Node.js服务器状态
/microsoft:mssql status --node

# 重建两个服务器
/microsoft:mssql rebuild

# 仅重建.NET服务器
/microsoft:mssql rebuild --dotnet

# 检查上游更新(干运行)
/microsoft:mssql update --check

# 拉取上游并重建
/microsoft:mssql update

故障排除

Node.js 构建失败:

常见问题:
  1. Node.js版本过旧 - 升级到18+
  2. node_modules损坏 - 删除并重试
  3. npm缓存问题 - npm cache clean --force
  4. zod/TypeScript不兼容 - 将 @modelcontextprotocol/sdk 固定到1.x版本

.NET 构建失败:

常见问题:
  1. 错误SDK版本 - 安装 .NET 8
  2. 缺少工作负载 - dotnet workload restore
  3. NuGet缓存问题 - dotnet nuget locals all --clear

上游源

相关命令

  • /microsoft:setup-dab - 安装和配置 Data API Builder