SQL查询服务器

一个允许AI代理查询和探索Azure SQL数据库的MCP服务器,提供SQL执行、表列表、模式检查、分页数据检索和数据库元数据获取功能。

  • by lostspace003
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Microsoft-Course-Content/copilot-studio-mcp-agent-sql

使用说明

Azure SQL MCP服务器

A. 模型上下文协议 (MCP)服务器,允许AI代理查询和探索 Azure SQL 数据库。它公开了五个工具,用于执行SQL、列出表、检查模式、检索分页数据和获取数据库元数据。

设计用于 微软复制品工作室、Claude Desktop、VS Code和任何其他MCP兼容客户端。

工具

工具 描述 只读
azure_sql_execute_query 使用参数化查询执行任意SQL(SELECT、INSERT、UPDATE、DELETE) 否
azure_sql_list_tables 列出所有具有模式和行数的表,或获取特定表的信息 是
azure_sql_get_table_schema 获取列名、数据类型、可空状态、默认值和主键信息 是
azure_sql_get_table_data 使用分页(限制/偏移)检索行 是
azure_sql_get_database_info 获取数据库名称、SQL Server版本、创建日期和对象计数 是

所有工具均已归还 标记语言 (人类可读)或 JSON (机器可读)输出。

先决条件

安装ODBC驱动程序

macOS:

brew tap microsoft/mssql-release https://github.com/Microsoft/homebrew-mssql-release
brew update
brew install msodbcsql18 mssql-tools18

Linux(Ubuntu/Debian):

curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
curl https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/prod.list \
  | sudo tee /etc/apt/sources.list.d/mssql-release.list
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install -y msodbcsql18

窗户: 下载自 Microsoft ODBC驱动程序18.

快速开始

使用uvx(推荐)

uvx mcp-server-azure-sql

使用pip

pip install mcp-server-azure-sql
mcp-server-azure-sql

来源

git clone https://github.com/Microsoft-Course-Content/copilot-studio-mcp-agent-sql.git
cd copilot-studio-mcp-agent-sql
pip install -e .
mcp-server-azure-sql

配置

设置这些环境变量(或创建 .env 文件):

变量 必填 描述
AZURE_SQL_SERVER 是 服务器主机名(例如。, myserver.database.windows.net)
AZURE_SQL_DATABASE 是 数据库名称
AZURE_SQL_USERNAME 是 数据库用户名
AZURE_SQL_PASSWORD 是 数据库密码
AZURE_SQL_DRIVER 无 ODBC驱动程序(默认值: ODBC Driver 18 for SQL Server)
MCP_API_KEY 没有用于HTTP模式身份验证的 neneneba API密钥
PORT 否 HTTP服务器端口(默认值: 8000)

复制示例文件以开始:

cp .env.example .env
# Edit .env with your Azure SQL credentials

与MCP客户端一起使用

克劳德桌面

添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "azure-sql": {
      "command": "uvx",
      "args": ["mcp-server-azure-sql"],
      "env": {
        "AZURE_SQL_SERVER": "your-server.database.windows.net",
        "AZURE_SQL_DATABASE": "your-database",
        "AZURE_SQL_USERNAME": "your-username",
        "AZURE_SQL_PASSWORD": "your-password"
      }
    }
  }
}

VS代码

添加到您的 .vscode/mcp.json:

{
  "servers": {
    "azure-sql": {
      "command": "uvx",
      "args": ["mcp-server-azure-sql"],
      "env": {
        "AZURE_SQL_SERVER": "your-server.database.windows.net",
        "AZURE_SQL_DATABASE": "your-database",
        "AZURE_SQL_USERNAME": "your-username",
        "AZURE_SQL_PASSWORD": "your-password"
      }
    }
  }
}

微软复制品工作室

对于Copilot Studio集成,请使用HTTP传输模式进行部署:

mcp-server-azure-sql --transport http

看 COPYLOT_STUDIO_SETUP.md 获取完整的分步部署和集成指南。

MCP检查员(调试)

npx @modelcontextprotocol/inspector uvx mcp-server-azure-sql

运输方式

模式 命令 用例
标准 (默认) mcp-server-azure-sql 本地客户:Claude Desktop、VS Code、MCP Inspector
超文本传输协议 mcp-server-azure-sql --transport http 远程部署:Copilot Studio、Azure应用服务、Docker

码头工人

docker build -t mcp-server-azure-sql .
docker run -p 8000:8000 \
  -e AZURE_SQL_SERVER="your-server.database.windows.net" \
  -e AZURE_SQL_DATABASE="your-database" \
  -e AZURE_SQL_USERNAME="your-username" \
  -e AZURE_SQL_PASSWORD="your-password" \
  mcp-server-azure-sql

发展

git clone https://github.com/Microsoft-Course-Content/copilot-studio-mcp-agent-sql.git
cd copilot-studio-mcp-agent-sql
pip install -e ".[dev]"

# Run tests
pytest tests/ -v

# Lint
ruff check src/ tests/
ruff format src/ tests/

安全

  • 所有用户输入使用 参数化查询 (? 占位符)以防止SQL注入
  • 单个查询中的多个SQL语句被拒绝
  • 凭据从环境变量加载,从不硬编码
  • HTTP模式支持通过 MCP_API_KEY
  • 默认情况下,连接使用TLS加密(Encrypt=yes)
  • 用一 最低特权 生产中的数据库帐户

许可证

麻省理工学院-见 许可证.