MCP SQL サーバー
会話型 AI インターフェースを介して SQL データベース対話ツールを提供する FastMCP サーバー。
概要
このプロジェクトは、会話型AIインターフェースを通じてMS SQL Serverの操作を公開するサーバーを構築します。FastMCPフレームワークを使用してSQLデータのクエリと操作のためのツールを提供し、ユーザーが自然言語でデータベースを操作できるようにします。
特徴
SQLクエリを実行して結果を表示する
データベース内の利用可能なテーブルを一覧表示する
列情報を使用してテーブル構造を記述する
クエリ以外の操作(INSERT、UPDATE、DELETE)を実行する
システムで利用可能なODBCドライバを一覧表示する
データベース情報とサーバーの詳細を表示する
要件
Python 3.7以上
pyodbc
非同期
FastMCPフレームワーク
マイクロソフトSQLサーバー
SQL Server 用 ODBC ドライバー 17
インストール
Python の依存関係をインストールします。
Microsoft SQL Server と SQL Server 用の ODBC ドライバー 17 がインストールされていることを確認してください。
スクリプトで接続設定を構成します。
使用法
サーバーを実行します。
サーバーは初期化され、指定された SQL Server データベースへの接続を確立します。
利用可能なツール
クエリSQL
SQL クエリを実行し、結果を返します。
クエリが指定されていない場合は、デフォルトで
SELECT * FROM [dbo].[Table_1]
になります。クエリ結果をフォーマットされた文字列として返します
リストテーブル
データベースで使用可能なすべてのテーブルを一覧表示します。
テーブル名のリストを文字列として返します
テーブルの説明
特定のテーブルの構造を取得します。
table_name
: 記述するテーブルの名前名前やデータ型などの列情報を返します
非クエリ実行
INSERT、UPDATE、DELETE などの非クエリ SQL ステートメントを実行します。
sql
: 実行するSQL文影響を受けた行数を含む操作結果を返します
トランザクション(コミット/ロールバック)を自動的に処理します
リスト_odbc_drivers
システム上で利用可能なすべての ODBC ドライバーを一覧表示します。
インストールされているODBCドライバのコンマ区切りリストを返します。
データベース情報
接続されたデータベースに関する一般情報を取得します。
サーバー名、データベース名、SQL Server のバージョン、現在のサーバー時刻、テーブル数を返します。
建築
サーバーは、操作のブロックを回避するために非同期アーキテクチャを使用します。
ライフサイクル管理:
app_lifespan
コンテキスト マネージャーは、データベース接続のセットアップと破棄を処理します。非ブロッキング操作: データベース操作は、メイン イベント ループのブロックを防ぐために
asyncio.get_event_loop().run_in_executor()
を使用して別のスレッドで実行されます。エラー処理: すべての操作には、便利なエラー メッセージによる包括的なエラー処理が含まれます。
エラー処理
サーバーはさまざまなエラー状態を処理します。
データベース接続の失敗
SQLクエリ構文エラー
テーブルが見つからないエラー
権限関連の問題
すべてのエラーがログに記録され、適切なエラー メッセージがクライアントに返されます。
カスタマイズ
新しいデータベース ツールを追加したり、既存のツールを変更したりするには、既存のツールで使用されているパターンに従います。
セキュリティに関する考慮事項
サーバーは Windows 認証を使用します ("Trusted_Connection=yes")
SQLインジェクションを防ぐためにSQLクエリの入力検証を実装することを検討してください。
最小権限の原則に基づいてデータベースユーザーの権限を制限する
トラブルシューティング
よくある問題:
接続エラー: SQL Server インスタンス名を確認し、実行中であることを確認します
ODBC ドライバー エラー: SQL Server 用 ODBC ドライバー 17 がインストールされていることを確認してください
権限エラー: アプリケーションを実行している Windows ユーザーが適切な SQL Server 権限を持っていることを確認してください
ライセンス
[ライセンス情報]
接触
[連絡先]
This server cannot be installed
local-only server
The server can only run on the client's local machine because it depends on local resources.
MS SQL データベースとの自然言語による対話を提供する FastMCP サーバー。これにより、ユーザーは会話型 AI インターフェースを通じてデータのクエリ、テーブルの一覧表示、構造の記述、データベース操作の実行が可能になります。
Related MCP Servers
- -securityAlicense-qualityFacilitates interaction with Microsoft SQL Server Express, supporting database operations such as querying, table management, and schema inspection via natural language MCP commands.Last updated -4MIT License
- -securityFlicense-qualityA FastMCP server that enables natural language querying of PostgreSQL databases through LLM integration, allowing users to generate SQL queries from plain English and visualize the results.Last updated -3
- -securityFlicense-qualityA FastMCP-based server that enables interaction with MySQL databases, supporting client-server communication for querying and analyzing MySQL data.Last updated -
- -securityAlicense-qualityA FastMCP-based server that enables executing Microsoft SQL Server data queries and table structure queries through a standardized MCP protocol interface.Last updated -4MIT License