ODBC MCP Server について
ODBC MCP Serverは、ODBC経由でClaude DesktopなどのMCPクライアントをデータベースに接続します。複数接続と読み取り専用の保護に対応し、接続確認、スキーマ参照、SQLクエリのツールを提供します。
主な機能
- 01ODBC対応データベースへの接続
- 02複数のデータベース接続の設定
- 03データ変更を防ぐ読み取り専用保護
- 04接続、DSN、テーブル、スキーマの確認
- 05SQLクエリの実行と結果取得
- 06設定ファイルや環境変数による設定
活用シーン
- 01データベースのテーブル一覧とスキーマ確認
- 02顧客や注文などの業務データの検索
- 03データベースの分析とインサイトの作成
MCP 対応
MCPサーバーとして、接続とDSNの一覧、接続テスト、テーブル一覧、スキーマ取得、SQLクエリ実行のツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
ODBC MCP サーバー
ODBC 接続を介してデータベースを照会できるようにする、MCP(Model Context Protocol)サーバーです。Claude Desktop などの LLM ツールに対応しています。このサーバーを使うと、セキュリティと読み取り専用の保護を維持しながら、Claude やその他の MCP クライアントがデータベースのデータにアクセスし、分析して、知見を得られます。
特長
- ODBC 対応のあらゆるデータベースに接続
- 複数のデータベース接続に対応
- 設定ファイルまたは Claude Desktop の設定による柔軟な構成
- データの変更を防ぐ読み取り専用の保護
- UV パッケージマネージャーによる簡単なインストール
- 詳細なエラー報告とログ記録
前提条件
- Python 3.10 以上
- UV パッケージマネージャー
- 使用するデータベースの ODBC ドライバーがシステムにインストールされていること
- Sage 100 Advanced の場合:ProvideX ODBC ドライバー
インストール
git clone https://github.com/tylerstoltz/mcp-odbc.git
cd mcp-odbc
uv venv
.venv\Scripts\activate # On Mac / Linux: source .venv/bin/activate (untested)
uv pip install -e .
設定
サーバーは次の方法で設定できます。
- 専用の設定ファイル
- 環境変数
- Claude Desktop の設定
基本的な設定
データベース接続の詳細を記載した設定ファイル(.ini)を作成します。
[SERVER]
default_connection = my_database
max_rows = 1000
timeout = 30
[my_database]
dsn = MyDatabaseDSN
username = your_username
password = your_password
readonly = true
SQLite の設定
ODBC を使用する SQLite データベースの場合:
[SERVER]
default_connection = sqlite_db
max_rows = 1000
timeout = 30
[sqlite_db]
dsn = SQLite_DSN_Name
readonly = true
Sage 100 ProvideX の設定
ProvideX との互換性を確保するには、特別な設定が必要です。最良の結果を得るため、次の最小限の設定を使用してください。
[SERVER]
default_connection = sage100
max_rows = 1000
timeout = 60
[sage100]
dsn = YOUR_PROVIDEX_DSN
username = your_username
password = your_password
company = YOUR_COMPANY_CODE
readonly = true
ProvideX に関する重要な注意事項:
- 最小限の設定を使用してください。パラメーターを追加すると、接続の問題が発生する場合があります
- 安全のため、必ず
readonly = trueを設定してください - Sage 100 の接続には
companyパラメーターが必要です - 接続の確立後に接続属性を変更しないでください
Claude Desktop との連携
Claude Desktop でサーバーを設定するには:
-
claude_desktop_config.jsonを開くか、新規作成します。- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
-
MCP サーバーの設定を追加します。
{
"mcpServers": {
"odbc": {
"command": "uv",
"args": [
"--directory",
"C:\\path\\to\\mcp-odbc",
"run",
"odbc-mcp-server",
"--config",
"C:\\path\\to\\mcp-odbc\\config\\your_config.ini"
]
}
}
}
使用方法
サーバーを手動で起動する
# Start with default configuration
odbc-mcp-server
# Start with a specific config file
odbc-mcp-server --config path/to/config.ini
Claude Desktop で使用する
- 上記のとおり、Claude Desktop の設定ファイルでサーバーを設定します
- Claude Desktop を再起動します
- ODBC ツールが MCP ツールの一覧に自動的に表示されます
利用可能な MCP ツール
ODBC MCP サーバーでは、次のツールを利用できます。
- list-connections:設定済みのデータベース接続をすべて一覧表示します
- list-available-dsns:システム上で利用可能な DSN をすべて一覧表示します
- test-connection:データベース接続をテストし、情報を返します
- list-tables:データベース内のテーブルをすべて一覧表示します
- get-table-schema:テーブルのスキーマ情報を取得します
- execute-query:SQL クエリを実行し、結果を返します
クエリの例
サーバーに接続した後、Claude Desktop で次のプロンプトを試してください。
- 「データベース内のテーブルをすべて表示してください」
- 「Customer テーブルのスキーマは何ですか?」
- 「最初の 10 件の顧客を取得するクエリを実行してください」
- 「過去 30 日間に発注された注文をすべて検索してください」
- 「地域別に売上データを分析し、知見を提示してください」
トラブルシューティング
接続の問題
接続に問題が発生した場合:
- ODBC ドライバーが正しくインストールされていることを確認します
- ODBC データ ソース アドミニストレーターを使って DSN をテストします
- 設定ファイルの接続パラメーターを確認します
- Claude Desktop のログで詳細なエラーメッセージを確認します
ProvideX 固有の問題
Sage 100/ProvideX の場合:
- 最小限の接続設定(DSN、ユーザー名、パスワード、会社)を使用します
- Company パラメーターが正しいことを確認します
- ProvideX 専用の設定テンプレートを使用します
Driver not capableエラーが発生する場合、接続時に自動コミットが設定されていることを確認します
テーブルが見つからない場合
テーブルが表示されない場合:
- データベースアカウントのユーザー権限を確認します
- 会社コードが正しいことを確認します(Sage 100 の場合)
- スキーマ名を含むテーブル名(schema.table)を使用してみます
ライセンス
MIT License - Copyright (c) 2024
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。