SQL Server

io.github.hlgurgel由 GitHub 账号 hlgurgel 发布v0.1.8更新于 Oct 24, 2026

Servidor MCP para SQL Server com controle de permissões e modo somente-leitura

已验证STDIO仅桌面数据库开发者工具

概览

AI 生成的概览

面向 SQL Server 的本地 MCP 服务器,让助手浏览架构并执行只读查询,写操作工具受权限与确认限制。

可以做什么
  • 执行只读 SELECT 查询并列出可访问的数据库
  • 查看表与视图的结构、列、类型、主键、索引、约束及表统计信息
  • 浏览存储过程和函数,包括其源代码
  • 查看预估执行计划以及 SQL Agent 作业的最近运行状态
  • 当连接用户具备写权限时:执行存储过程、带 WHERE 条件的 UPDATE、创建索引、修改过程以及执行带回滚脚本的 DDL
适用场景
适合需要让助手探查或查询 SQL Server 数据库、了解其架构、存储过程与函数,或分析执行计划和作业状态的场景。写操作工具仅对具备写权限的连接用户开放。
运行要求
以 Python 包形式本地运行(Python 3.10+),需安装 Microsoft ODBC Driver 18 for SQL Server。需要通过 MSSQL_CONNECTION_STRING 环境变量提供连接字符串,或使用 MSSQL_ENV_FILE 指向的 .env 文件。可选的 HTTP 模式需安装 server 附加组件并设置 MCP_HOST/MCP_PORT。
安装前请注意
连接字符串包含数据库凭据;README 称其从环境读取且不出现在响应和日志中,但仍会存放在客户端配置文件中。写操作工具(执行过程、UPDATE、建索引、修改过程、DDL)可能修改或删除数据与架构,仅对具备写权限的用户开放,且每次执行都需显式确认。可选 HTTP 模式默认绑定 0.0.0.0,可能将数据库暴露到网络。

安装

在 SourceWeft 中

  1. 打开 控制台中的 SQL Server,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

mcp-sqlserver

[PyPI version] [License: MIT] [Python versions]

Servidor MCP (Model Context Protocol) para SQL Server, com controle de permissões e modo somente-leitura por padrão. Permite que agentes de IA (Claude, opencode e outros clientes MCP) consultem e administrem bancos SQL Server de forma segura.

Segurança

  • Credenciais nunca expostas ao LLM — a string de conexão é lida do ambiente e nunca aparece nas respostas nem nos logs.
  • Somente leitura por padrão — a ferramenta consulta bloqueia DDL/DML (INSERT, UPDATE, DELETE, DROP, etc.).
  • Escrita sob demanda — ferramentas de escrita (executar_update, executar_ddl, etc.) só são expostas quando o usuário da conexão possui permissão de escrita (roles sysadmin, db_owner, db_datawriter ou db_ddladmin), e exigem confirmação explícita antes de cada execução.

Pré-requisitos

  • Python 3.10+
  • Driver ODBC Driver 18 for SQL Server:
    • macOS: brew install msodbcsql18
    • Windows/Linux: instale o driver correspondente da Microsoft

Instalação

Via PyPI:

bash
pip install sqlserver-mcp-tools

Ou, sem instalar nada (executa direto do PyPI com cache):

bash
uvx --from sqlserver-mcp-tools mcp-sqlserver

Configuração

O servidor lê a string de conexão das seguintes fontes, em ordem de prioridade:

  1. Variável de ambiente MSSQL_CONNECTION_STRING
  2. Variável de ambiente MSSQL_ENV_FILE apontando para um arquivo .env
  3. Arquivo .env no diretório de trabalho (ou na raiz do projeto)

Exemplo de string de conexão:

DRIVER={ODBC Driver 18 for SQL Server};SERVER=localhost,1433;DATABASE=seu_banco;UID=seu_usuario;PWD=sua_senha;TrustServerCertificate=yes

Uso com clientes MCP

Claude Desktop

Adicione ao claude_desktop_config.json:

json
{  "mcpServers": {    "mcp-sqlserver": {      "command": "uvx",      "args": ["--from", "sqlserver-mcp-tools", "mcp-sqlserver"],      "env": {        "MSSQL_CONNECTION_STRING": "DRIVER={ODBC Driver 18 for SQL Server};SERVER=...;DATABASE=...;UID=...;PWD=...;TrustServerCertificate=yes"      }    }  }}

Se instalou via pip install, pode usar o entry point diretamente:

json
{  "mcpServers": {    "mcp-sqlserver": {      "command": "mcp-sqlserver",      "env": {        "MSSQL_CONNECTION_STRING": "DRIVER={ODBC Driver 18 for SQL Server};SERVER=...;DATABASE=...;UID=...;PWD=...;TrustServerCertificate=yes"      }    }  }}

OpenCode

No opencode.json do projeto:

json
{  "mcp": {    "sqlserver": {      "type": "local",      "command": ["mcp-sqlserver"],      "environment": {        "MSSQL_CONNECTION_STRING": "DRIVER={ODBC Driver 18 for SQL Server};SERVER=...;DATABASE=...;UID=...;PWD=...;TrustServerCertificate=yes"      }    }  }}

Alternativa: apontar para um arquivo .env local, mantendo a senha fora do JSON:

json
{  "mcp": {    "sqlserver": {      "type": "local",      "command": ["mcp-sqlserver"],      "environment": {        "MSSQL_ENV_FILE": "/caminho/para/seu/.env"      }    }  }}

Servidor HTTP (Streamable HTTP)

Além do modo local (stdio), o servidor pode ser executado como um MCP remoto via Streamable HTTP, expondo o endpoint /mcp. Instale com o extra server:

bash
pip install 'sqlserver-mcp-tools[server]'

Inicie o servidor:

bash
MSSQL_CONNECTION_STRING="DRIVER={ODBC Driver 18 for SQL Server};SERVER=...;DATABASE=...;UID=...;PWD=...;TrustServerCertificate=yes" \  mcp-sqlserver-http

Opcionalmente, ajuste host/porta com MCP_HOST (padrão 0.0.0.0) e MCP_PORT (padrão 8090). O endpoint MCP fica em http://<host>:<porta>/mcp.

Para consumir remotamente no opencode:

json
{  "mcp": {    "sqlserver": {      "type": "remote",      "url": "http://10.177.51.228:8090/mcp"    }  }}

Ferramentas disponíveis

Somente leitura (sempre disponíveis):

FerramentaDescrição
consultaExecuta SELECT (somente leitura, bloqueia DDL/DML)
listar_bancosLista os bancos de dados acessíveis
listar_tabelasLista tabelas e views de um banco
descrever_tabelaEstrutura de uma tabela (colunas, tipos, PK)
listar_indicesÍndices de uma tabela
listar_proceduresLista stored procedures
ler_procedureCódigo-fonte de uma procedure
listar_funcoesLista funções (scalar e table-valued)
ler_funcaoCódigo-fonte de uma função
listar_constraintsConstraints de uma tabela (PK, FK, UNIQUE, CHECK, DEFAULT)
estatisticas_tabelaEstatísticas (linhas, tamanho, uso de dados)
plano_execucaoPlano de execução estimado (sem executar)
status_jobsStatus da última execução de jobs do SQL Agent

Escrita (só com permissão de escrita na conexão):

FerramentaDescrição
executar_procedureExecuta uma stored procedure
executar_updateExecuta UPDATE (exige WHERE)
criar_indiceCria índice
alterar_procedureAltera procedure com backup automático
executar_ddlExecuta DDL com backup do script de reversão

Licença

MIT

来源:README.md,提交 5bea8a3

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

3
  1. v0.1.8最新Oct 11, 2026
  2. v0.1.7Oct 10, 2026
  3. v0.1.6Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分