mcpField
S
SQL Server

SQL Server

ローカル
github.com/hlgurgelデータベース03 週間前に更新

SQL Server について

SQL Serverは、AIエージェントなどのMCPクライアントからSQL Serverデータベースを照会・管理するためのMCPサーバーです。読み取り専用ツールは常時利用でき、書き込みツールは接続権限に応じて有効になり、実行ごとに確認が必要です。

主な機能

  1. 01読み取り専用クエリとデータベース検査
  2. 02テーブル、ビュー、プロシージャ、関数の一覧
  3. 03インデックス、制約、統計情報の確認
  4. 04データベース権限に応じた書き込みツール
  5. 05書き込み操作ごとの確認
  6. 06stdioとStreamable HTTPに対応

活用シーン

  1. 01データベース構造とメタデータの確認
  2. 02書き込みを伴わないSELECTクエリの実行
  3. 03確認後に許可された更新やDDLを実行

MCP 対応

stdioまたはStreamable HTTP経由で、SQL Serverの照会・管理ツールをMCPクライアントに提供します。書き込みツールは、接続に書き込み権限がある場合にのみ利用できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"hlgurgel-sqlserver": {
"command": "uvx",
"args": [
"sqlserver-mcp-tools"
],
"env": {
"MSSQL_CONNECTION_STRING": "<MSSQL_CONNECTION_STRING>"
}
}
}
}
起動コマンドuvx sqlserver-mcp-tools
設定が必要な環境変数
MSSQL_CONNECTION_STRINGシークレットString de conexão ODBC para o SQL Server

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypisqlserver-mcp-tools0.1.8

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

mcp-sqlserver

PyPI version License: MIT Python versions

SQL Server 用の MCP(Model Context Protocol)サーバーです。権限制御に対応し、デフォルトで読み取り専用モードで動作します。AI エージェント(Claude、opencode、その他の MCP クライアント)が SQL Server データベースを安全に参照・管理できます。

セキュリティ

  • 認証情報が LLM に公開されることはありません — 接続文字列は環境から読み込まれ、応答やログに表示されることはありません。
  • デフォルトで読み取り専用 — consulta ツールは DDL/DML(INSERT、UPDATE、DELETE、DROP など)をブロックします。
  • 必要に応じて書き込み — 書き込みツール(executar_update、executar_ddl など)は、接続ユーザーが書き込み権限(roles sysadmin、db_owner、db_datawriter、db_ddladmin)を持つ場合にのみ公開され、実行のたびに明示的な確認が必要です。

前提条件

  • Python 3.10+
  • ODBC Driver 18 for SQL Server ドライバー:
    • macOS:brew install msodbcsql18
    • Windows/Linux:Microsoft の対応するドライバーをインストールしてください

インストール

PyPI 経由:

pip install sqlserver-mcp-tools

または、インストールせずに実行(キャッシュを使用して PyPI から直接実行):

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

設定

サーバーは、以下の優先順位で接続文字列を読み込みます。

  1. 環境変数 MSSQL_CONNECTION_STRING
  2. .env ファイルを指定する環境変数 MSSQL_ENV_FILE
  3. 作業ディレクトリ(またはプロジェクトのルート)にある .env ファイル

接続文字列の例:

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

MCP クライアントでの使用

Claude Desktop

claude_desktop_config.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"
      }
    }
  }
}

pip install でインストールした場合は、エントリーポイントを直接使用できます:

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

プロジェクトの opencode.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"
      }
    }
  }
}

別の方法として、ローカルの .env ファイルを指定し、パスワードを JSON に含めないようにできます:

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

HTTP サーバー(Streamable HTTP)

ローカルモード(stdio)に加えて、サーバーを Streamable HTTP 経由の リモート MCP サーバー として実行し、/mcp エンドポイントを公開できます。server エクストラを指定してインストールしてください:

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

サーバーを起動します:

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

必要に応じて、MCP_HOST(デフォルトは 0.0.0.0)と MCP_PORT(デフォルトは 8090)でホスト/ポートを設定できます。MCP エンドポイントは http://<host>:<porta>/mcp です。

opencode からリモート接続するには:

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

使用可能なツール

読み取り専用(常に使用可能):

ツール説明
consultaSELECT を実行します(読み取り専用、DDL/DML をブロック)
listar_bancosアクセス可能なデータベースを一覧表示します
listar_tabelasデータベース内のテーブルとビューを一覧表示します
descrever_tabelaテーブルの構造(列、型、PK)を表示します
listar_indicesテーブルのインデックスを一覧表示します
listar_proceduresストアドプロシージャを一覧表示します
ler_procedureプロシージャのソースコードを表示します
listar_funcoes関数(スカラー関数およびテーブル値関数)を一覧表示します
ler_funcao関数のソースコードを表示します
listar_constraintsテーブルの制約(PK、FK、UNIQUE、CHECK、DEFAULT)を一覧表示します
estatisticas_tabela統計情報(行数、サイズ、データ使用量)を表示します
plano_execucao推定実行プランを表示します(実行はしません)
status_jobsSQL Agent ジョブの最終実行ステータスを表示します

書き込み(接続に書き込み権限がある場合のみ):

ツール説明
executar_procedureストアドプロシージャを実行します
executar_updateUPDATE を実行します(WHERE が必要です)
criar_indiceインデックスを作成します
alterar_procedure自動バックアップ付きでプロシージャを変更します
executar_ddlロールバック用スクリプトをバックアップして DDL を実行します

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。