MS Access MCP Explorer について
MS Access MCP Explorer は、Microsoft Access データベースを調査・検索する MCP サーバーです。スキーマ確認や SQL 検証、複数データベース間のクエリを行うユーザー向けです。
主な機能
- 01登録済みデータベースの一覧
- 02データベーススキーマの確認
- 03データベース間の SQL 実行
- 04Access SQL 構文の検証
- 05クエリ例と制約の確認
活用シーン
- 01クエリ作成前のテーブル確認
- 02複数の Access データベースの検索
- 03実行前の SQL 構文チェック
- 04データベース接続の診断
MCP 対応
データベース一覧、スキーマ確認、クエリ実行、SQL 検証、接続診断のツールを MCP クライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MS Access MCP Explorer
MCP(Model-Command-Procedure)を使用して、Microsoft Access データベースを探索およびクエリするツールです。
インストール
UV を使用してインストールします。
uv pip install omni-ms-access-mcp
または、pip を使用します。
pip install omni-ms-access-mcp
使用方法
コマンドライン
Access データベースのパスを指定して、MCP サーバーを起動します。
ms-access-mcp --db-path "C:\path\to\your\database.accdb"
Python API
from omni_ms_access_mcp.server import AccessMCP
# Initialize the MCP server
mcp_server = AccessMCP(db_path="C:/path/to/your/database.accdb")
# Run the server
mcp_server.run()
利用可能なツール
-
list_databases - 利用可能なすべてのデータベースを一覧表示します
- パラメーターは不要です
- 説明とともに、登録済みのすべてのデータベースを表示します
-
get_schema_tool - データベースのスキーマ情報を取得します
- 必須パラメーター:
database- 調査するデータベース名 - 例:
get_schema_tool(database="sales_db")
- 必須パラメーター:
-
query_data - 複数のデータベースに対して SQL クエリを実行します
- 必須パラメーター:
sql- [database].[table] 構文を使用した SQL クエリ - 例:
query_data(sql="SELECT TOP 10 * FROM [sales_db].[Customers]")
- 必須パラメーター:
-
test_cross_db_connectivity - データベース接続とクロスデータベース機能をテストします
- パラメーターは不要です
- 接続の問題の診断に役立ちます
-
query_builder_help - Access SQL クエリの作成例を取得します
- 必須パラメーター:
query_type- 必要なクエリのヘルプの種類 - オプション:simple_select、cross_database_join、union、aggregation、date_filtering、boolean_filtering
- 例:
query_builder_help(query_type="cross_database_join")
- 必須パラメーター:
-
validate_query_syntax - 実行前に Access SQL の構文を検証します
- 必須パラメーター:
sql- 検証するクエリ - よくある Access SQL の誤りをチェックします
- 必須パラメーター:
-
query_limitations - Access の制限事項と回避策を確認します
- 必須パラメーター:
topic- 制限事項のトピック - オプション:joins、performance、data_types、functions、best_practices、all
- 例:
query_limitations(topic="joins")
- 必須パラメーター:
クロスデータベースクエリのサポート
このツールは、特別な構文を使用して複数の Access データベースにまたがるクエリをサポートします。
-- Always use [database_name].[table_name] format
SELECT [c].[CustomerName], [o].[OrderTotal]
FROM [sales_db].[Customers] AS [c], [orders_db].[Orders] AS [o]
WHERE [c].[CustomerID] = [o].[CustomerID]
AND [o].[OrderDate] > #2024-01-01#
Access SQL の重要なルール
- 日付:引用符ではなく、
#YYYY-MM-DD#形式を使用します - ブール値:
True/Falseではなく、1/0を使用します - 文字列の連結:
+ではなく、&を使用します - 結果の制限:
LIMITではなく、TOP Nを使用します - 条件分岐:
CASE WHENではなく、IIF()を使用します
既知の制限事項
クロスデータベースの JOIN
データベース間の直接 JOIN は失敗することがよくあります。以下の回避策を使用してください。
- WHERE 句によるフィルタリング:
FROM [db1].[t1], [db2].[t2] WHERE [t1].[id]=[t2].[id] - UNION 操作で結果を結合します
- データベースごとにクエリを実行し、アプリケーションコードで結果を結合します
パフォーマンス
- データベースファイルのサイズは 2GB に制限されています
- レコード数が 100k を超えると、クエリの速度が大幅に低下します
- 結果を制限するには、必ず
TOP NまたはWHERE句を使用してください
データ型
- ブール型フィールドには、1/0 または -1/0 が使われる場合があります
- テキストフィールドは 255 文字に制限されています(より大きな値には Memo を使用します)
- 変換関数を使用してください:
CInt()、CDbl()、CStr()、CDate()
ベストプラクティス
- すべてのテーブルで、必ず
[database].[table]構文を使用します - まず小さなデータセットでテストします
- 複雑なクエリを実行する前に、
validate_query_syntaxを使用します - 制約を把握するために、
query_limitationsツールを実行します - 可能な限り、関連するデータは同じデータベースに保存します
トラブルシューティング
エラーが発生した場合:
test_cross_db_connectivityを実行して、すべてのデータベースにアクセスできることを確認しますget_schema_toolを使用して、テーブル名と列名を確認します- 正しい構文の例については、
query_builder_helpを確認します - 既知の問題と回避策については、
query_limitationsを確認します
開発
開発環境のセットアップ
uv venv
.venv\Scripts\activate.bat
uv pip install -e .
パッケージのビルド
publish.bat
パッケージインデックスへの公開
uv pip install -U twine
uv python -m twine upload dist/*
要件
- システムに Microsoft Access Driver がインストールされている必要があります
- Python 3.7 以降
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。