Skip to main content
Glama
dhipskind253

mssql-mcp

by dhipskind253

mssql-mcp

AWS Secrets Managerからツール呼び出し時に接続情報を取得する、読み取り専用のMicrosoft SQL Server MCPサーバーです。シークレットの参照先以外、ディスクや環境変数から読み取られるものはありません。

クロスプラットフォーム対応:純粋なJavaScriptで記述されたMCPサーバー(ネイティブ依存やODBC依存なし)であるため、npxを介してmacOS、Linux、Windows上で同一に動作します。

.claude.jsonでの設定

{
  "mcpServers": {
    "my-db": {
      "command": "npx",
      "args": ["-y", "@dhipskind253/mssql-mcp"],
      "env": {
        "AWS_ACCOUNT_ID": "123456789012",
        "SECRET_NAME": "my-aws-secret",
        "AWS_REGION": "us-east-1",
        "TRUST_SERVER_CERTIFICATE": "false"
      }
    }
  }
}

環境変数

必須

デフォルト

説明

AWS_ACCOUNT_ID

はい

シークレットが存在するAWSアカウント。名前とリージョンと組み合わせて完全なARNになります。

SECRET_NAME

はい

Secrets Managerのシークレット名(ARNサフィックスは不要)。

AWS_REGION

はい

シークレットが存在するAWSリージョン(例: us-east-1)。AWS SDKのデフォルトリージョンとしても使用されます。

TRUST_SERVER_CERTIFICATE

いいえ

false

SQL ServerへのTLS証明書検証をスキップします。true/false/1/0/yes/noを受け付けます。理由を理解している場合のみtrueに設定してください。

標準のAWS SDK環境変数(AWS_PROFILEAWS_ACCESS_KEY_IDなど)は、デフォルトの認証情報プロバイダーチェーンを介して尊重されます。ほとんどのユーザーはaws sso loginを実行して最新の状態にするだけで十分です。

Related MCP server: MSSQL MCP Python Server

必要なシークレットJSON

シークレットの値は、少なくとも以下のフィールドを含むJSONドキュメントである必要があります:

{
  "host": "myserver.database.windows.net",
  "port": 1433,
  "database": "mydb",
  "username": "ro_user",
  "password": "..."
}

database**dbname**として提供することも可能です。これはAWSが組み込みのRDS認証情報シークレットテンプレートで使用するフィールド名です。両方が存在する場合はdatabaseが優先されます。

オプションのフィールド(デフォルト値):

フィールド

デフォルト

備考

port

1433

encrypt

true

サーバーへのTLS接続。

TLS証明書の信頼設定はシークレットからは読み取られません。代わりにMCPサーバーのenvブロックでTRUST_SERVER_CERTIFICATEを設定してください。シークレットJSON内のtrustServerCertificateフィールドは無視されます。

設計上の読み取り専用制限

このサーバーはデータの挿入、更新、削除を行うことはできません。以下の2つのレイヤーで強制されます:

  1. run_selectツールは、単一のSELECTまたはWITH(CTE)ステートメント以外のすべて(INSERTUPDATEDELETEEXECMERGEDROPALTERSELECT INTOなど)を字句解析レベルで拒否します。

  2. 他のツールは書き込みSQLを発行しません。get_procedure_definitionはプロシージャのソースを返しますが、プロシージャを実行することはありません。

注意: 字句解析によるチェックはUXのためのものであり、セキュリティ境界ではないことに留意してください。将来の安全のため、Secrets Managerに設定する認証情報は読み取り専用のデータベースログインSELECTVIEW DEFINITIONのみ許可されたもの)にすることを推奨します。そうすれば、誤った書き込み(または将来のバグ)はSQL Server自体によって拒否されます。

再起動なしでのAWS認証情報の更新

サーバーはデフォルトのAWS認証情報チェーンを使用するため、SSOセッションの期限が切れてもClaudeやMCPサーバーを再起動せずに復旧できます:

  1. 任意のターミナルでaws sso loginを実行します。

  2. Claudeに**refresh_secret**ツールを呼び出すよう依頼します。

  3. 作業を続行します。

AWS認証が原因でツール呼び出しが失敗した場合、エラーメッセージにその旨が明示され、同じ手順を促されます。エラーには安定したプレフィックスが付けられます:

プレフィックス

意味

[AWS_AUTH_REQUIRED]

SSOセッションの期限切れ、または認証情報が利用不可。

[AWS_ACCESS_DENIED]

プリンシパルにsecretsmanager:GetSecretValue権限がない。

[AWS_SECRET_NOT_FOUND]

シークレット名/アカウント/リージョンの不一致。

[AWS_SECRET_INVALID]

シークレットJSONのフィールド不足または形式不正。

[DB_CONNECT_FAILED]

SQL Serverインスタンスに到達不可。

[DB_QUERY_FAILED]

SQL Serverがクエリ実行中にエラーを返した。

[INVALID_QUERY]

送信されたクエリが読み取り専用ルールに違反した。

ツール

ツール

目的

list_schemas

データベース内のユーザースキーマ。

list_tables

テーブル(スキーマによるフィルタリング可能)。

describe_table

カラム、型、NULL許容、ID、PK、デフォルト値。

list_indexes

テーブルのインデックス(インデックス/カラムごとに1行)。

list_foreign_keys

テーブルからの外部キー。

list_views

ビュー(スキーマによるフィルタリング可能)。

get_view_definition

ビューのソースSQL。

list_procedures

ストアドプロシージャ(スキーマによるフィルタリング可能)。

get_procedure_definition

プロシージャのソースSQL(実行はしない)。

sample_rows

SELECT TOP n * FROM schema.table(デフォルト10、最大100)。

run_select

単一のSELECT/CTE。max_rowsで制限(デフォルト100、ハード上限1000)。

refresh_secret

シークレットの再取得と再接続。

ローカル開発

npm install
npm run build
# point your .claude.json command at the local build:
#   "command": "node",
#   "args": ["/absolute/path/to/mssql-mcp/dist/index.js"]
Install Server
A
license - permissive license
A
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Official Microsoft MCP Server to query Microsoft Entra data using natural language

  • Read-only MCP server for ClassQuill, a tutoring-business-management platform.

  • GibsonAI MCP server: manage your databases with natural language

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dhipskind253/mssql-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server