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 分