Skip to main content
Glama

mcp-sql

Model Context Protocol を介して SQL Server に接続するための CLI ツール / MCP サーバー。

Isasoft SAS の所有物です。

依存関係のインストール

bun install

開発

Bun で直接実行(開発モード):

bun run src/cli.ts --help

スタンドアロン実行可能ファイルのビルド

ターゲットマシンに Bun/Node ランタイムを必要としない単一のネイティブ実行可能ファイルにコンパイル:

bun run build:win        # dist/mcp-sql-win-x64.exe (Windows x64)

クロスコンパイルスクリプトも利用可能です(このビルドの一部としては実行・検証されていません。build:linux は Windows 上でのクロスコンパイルに成功していますが、build:mac-x64 / build:mac-arm64 は実際の macOS ハードウェアでは検証されていません):

bun run build:mac-x64    # dist/mcp-sql-macos-x64 (macOS Intel, cross-compiled, unverified)
bun run build:mac-arm64  # dist/mcp-sql-macos-arm64 (macOS Apple Silicon, cross-compiled, unverified)
bun run build:linux      # dist/mcp-sql-linux-x64 (Linux x64, cross-compiled)

出力バイナリは dist/ に書き込まれます。

使用方法

ビルド後(または開発モードで bun run src/cli.ts 経由)、CLI は以下のサブコマンドを提供します:

mcp-sql setup [name]  Interactively configure a SQL Server connection
                       (defaults to the name "default")
mcp-sql list           List configured connections and mark the active one
mcp-sql use <name>     Switch which configured connection is active
mcp-sql remove <name>  Remove a configured connection (and its credential)
mcp-sql run            Run mcp-sql in server mode (starts the MCP server)
mcp-sql discover        Detect installed AI clients (Claude Desktop, Cline, Roo
                        Code) and configure them to use mcp-sql

複数の接続

mcp-sql は複数の名前付き SQL Server 接続を同時に保存できますが、アクティブにできるのは常に1つだけです — それが mcp-sql run(したがって接続された AI クライアント)が使用する接続です。明示的な名前を渡さない場合、すべては従来どおり "default" という名前で動作します。

setup

mcp-sql setup          # configure (or reconfigure) the "default" connection
mcp-sql setup staging  # configure a connection named "staging"

指定された名前(省略時は default)で SQL Server の接続情報・資格情報を設定・保存するための対話型ウィザードを案内します。最後に、この接続をアクティブにするかどうかを尋ねます(最初に設定した接続の場合はデフォルトで「はい」になります)。

list

mcp-sql list

設定済みのすべての接続の名前を、ホストとデータベース(パスワードは決して表示しません)とともに一覧表示し、どれがアクティブかを示します。まだ何も設定されていない場合は、クラッシュせずにわかりやすいメッセージを表示します。

use

mcp-sql use staging

指定された接続をアクティブとしてマークします。名前が存在しない場合は、既知の接続名の一覧とともに明確なエラーを表示します。

remove

mcp-sql remove staging

設定済みの接続とその保存された資格情報を削除します。現在アクティブな接続の削除は拒否されます — 先に mcp-sql use <other-name> で別の接続に切り替えてください。

discover

mcp-sql discover           # detect clients and write/merge their MCP config
mcp-sql discover --dry-run # preview what would be written, without touching any files

インストール済みの AI クライアント(Claude Desktop、Cline、Roo Code)を検出し、各クライアントの MCP 設定ファイルに mcp-sql エントリを注入します。この実行可能ファイル自身のパスを command として、args: ["run"] を指定します。既存の設定内容や他の MCP サーバーエントリは保持され、実際の(ドライラン以外の)注入のたびに以前のファイルの .bak バックアップが書き込まれます。

run

mcp-sql run

mcp-sql を MCP サーバーモードで起動します。これは AI クライアントが呼び出すものです — 通常は手動で実行する必要はありません。discover が自動的に設定します。

恒久的なインストール場所

discover は現在実行中の実行可能ファイルの絶対パス(process.execPath)を各クライアントの設定に注入します。つまり、コンパイル済みの .exe は discover を実行した場所に置いたままにする必要があります — 後で移動または名前を変更すると、クライアント設定は存在しないファイルを指すことになります。

推奨: コンパイル済みの実行可能ファイルは

C:\Users\Wil\appisoft\mcp\dist\mcp-sql-win-x64.exe

に置いてください。これは bun run build:win が出力する場所であり、この安定したプロジェクトディレクトリ内です。

discover 実行後にこのファイルを移動しないでください。 移動する必要がある場合は、実行可能ファイルの新しい場所から discover を再実行してください(例: path\to\new\location\mcp-sql-win-x64.exe discover)。これによりクライアント設定が更新されます。

インストール / 配布

リリースは azure-pipelines.yml で定義された Azure Pipelines パイプラインによって自動的にビルドされます:

  1. v* に一致するタグをプッシュします(例: v1.0.0)。パイプラインはタグのプッシュでトリガーされ(または手動で実行可能)、Bun をインストールし、bun test と bunx tsc --noEmit を必須ゲートとして実行し、その後単一の windows-latest エージェントで4つの bun run build:* スクリプトすべてを実行します(Bun が Windows から mac/linux ターゲットをクロスコンパイルします。build:win と build:linux のみが実行検証済みです — mac ビルドはベストエフォートで、実機では未検証です。上記の注記を参照)。

  2. 4つのバイナリすべての SHA256 チェックサムが dist/checksums.sha256 に生成されます。

  3. すべて(4つのバイナリ、インストールスクリプト、チェックサムファイル)が mcp-sql-release という名前の Azure DevOps パイプライン成果物として公開されます。パイプライン実行の「Artifacts」タブからダウンロードしてください。(パイプライン内のコメントアウトされた GitHubRelease@1 ブロックは、GitHub サービス接続が設定された後に GitHub Release にも公開する方法を示しています。)

エンドユーザーは、ダウンロードした mcp-sql-release フォルダ内から単一のスクリプトでインストールします:

# Windows
.\install.ps1
# macOS / Linux
./install.sh

両方のスクリプトはバイナリをインストールし、必要に応じて mcp-sql setup(対話型の資格情報ウィザード)と mcp-sql discover(Claude Desktop、Cline、Roo Code を設定)を実行し、他のアプリケーションの設定ファイルに触れる前に何を行おうとしているかを明確に表示します。自動ステップを省略するには -SkipSetup/-SkipDiscover(PowerShell)または --skip-setup/--skip-discover(bash)を渡します。

このリポジトリの /docs フォルダは、Azure DevOps のプロジェクト Wiki として公開する準備ができています(Project Settings -> Wikis -> Publish code as wiki -> このリポジトリ -> /docs)。「ワンライナー」スタイルのインストールガイド(Azure Artifacts のプライベートフィード用に調整済み)が含まれています — docs/Installation.md を参照してください。

あるいは(またはさらに)、このリポジトリが GitHub に置かれたら、同じ /docs フォルダを GitHub Pages で公開できます: Settings -> Pages -> Source: "GitHub Actions" を有効にし(一度だけ)、ワークフロー .github/workflows/pages.yml が docs/** に触れる main へのプッシュのたびに docs/ を自動的にビルドしてデプロイします(Jekyll 経由)。

帰属表示

「Propiedad de Isasoft SAS」は mcp-sql --help の出力の一部として表示されます。

Related MCP Connectors