AdoMcp について
AdoMcpは、データベースのスキーマ確認や制御されたSQL実行を行うエージェント向けのMCPサーバーです。5種類のデータベースに対応し、書き込みSQLは既定で無効です。
主な機能
- 01設定済みデータベース接続の管理
- 02データベースオブジェクトの検索
- 03列、キー、既定値、コメントの確認
- 04テーブルインデックスの確認
- 05読み取り専用SQLの実行とCSV出力
- 06明示的な設定による書き込みSQLの制御
活用シーン
- 01データベーススキーマとオブジェクト名の調査
- 02列コメントとインデックスの確認
- 03データ確認のための読み取り専用クエリ
- 04明示的な許可のもとで書き込みを有効化
MCP 対応
接続管理、スキーマ検索、インデックス確認、SQL実行のツールをMCPクライアントに提供します。既定ではstdioで動作し、HTTPモードにも対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
AdoMcp
データベースオブジェクトの検出、テーブル構造やコメントの理解、インデックスの確認、安全な SQL の実行を AI エージェントで行える、すぐに使えるデータベース Model Context Protocol (MCP) サーバーです。
スキーマの検出、コメントやインデックスの確認、制御された SQL の実行に対応した、すぐに実行できるデータベース MCP サーバーです。
SQL Server、MySQL/MariaDB、PostgreSQL、SQLite、Oracle に対応しています。プラグインのコアは Agent Plugins(Open Plugin Spec)1.0 に準拠しており、Codex、Claude Code、GitHub Copilot App、Copilot CLI で使用できます。
サーバー名とバージョンは、MCP SDK がアセンブリメタデータから自動的に生成します。サーバーは MCP initialize/server/discover のレスポンスでルートレベルの instructions を返し、クライアントに対して、まず接続とオブジェクトを特定し、データの読み取りには query_sql のみを使用し、明示的な許可を得た場合に限り execute_sql を呼び出すよう案内します。
機能
| ツール | 説明 |
|---|---|
list_connections | 設定済みのデータベース接続を一覧表示します |
add_connection | 現在のプロセスで接続を追加または置き換えます |
remove_connection | 実行時に追加された接続を削除します |
list_objects | テーブル、ビュー、ストアドプロシージャ、関数、トリガー、シーケンス、シノニムなどのオブジェクトを検索します |
get_table_schema | フィールド、型、NULL 許容性、主キー、デフォルト値、コメントを取得します |
get_table_indexes | テーブルのインデックスを取得します |
query_sql | 読み取り専用の SQL を実行し、CSV を返します |
execute_sql | 書き込み SQL を実行します。デフォルトでは無効で、明示的に有効化する必要があります |
| データベース | ドライバー | コメントのサポート |
|---|---|---|
| SQL Server | Microsoft.Data.SqlClient | MS_Description 拡張プロパティ |
| MySQL / MariaDB | MySqlConnector | TABLE_COMMENT / COLUMN_COMMENT |
| PostgreSQL | Npgsql | obj_description / col_description |
| SQLite | Microsoft.Data.Sqlite | SQLite はネイティブのコメントに対応していません |
| Oracle | Oracle.ManagedDataAccess.Core | ALL_TAB_COMMENTS / ALL_COL_COMMENTS。PUBLIC synonym を含みます |
前提条件
- .NET 10 SDK
- プラグインを使用する場合、クライアントでローカルの
dnxプロセスの起動を許可する必要があります
AdoMcp を事前にインストールする必要はありません。プラグインとサンプル設定では dnx -y AdoMcp を使用します。初回実行時に NuGet からパッケージが取得されます。
プラグインのインストール
リポジトリルートの plugin.json、mcp.json、skills/adomcp/SKILL.md は、汎用の Agent Plugins 1.0 プラグインコアです。.codex-plugin/、.claude-plugin/、.mcp.json、marketplace ファイルは、クライアントとの互換性および配布のためのエントリーポイントです。プラグインはデフォルトで AdoMcp を stdio で起動し、書き込み SQL は有効にしません。
Codex
リポジトリには .codex-plugin/plugin.json が含まれており、Codex プラグインマーケットプレイスまたはローカルのプラグインソースで使用できます。MCP サーバーのみが必要な場合は、直接追加できます。
codex mcp add adomcp -- dnx -y AdoMcp
Claude Code(cc)
/plugin marketplace add John0King/AdoMCP
/plugin install adomcp@adomcp-plugins
インストール後に /reload-plugins を実行します。/mcp を使用して、adomcp が接続されていることを確認してください。
GitHub Copilot CLI
GitHub リポジトリから直接インストールできます。
copilot plugin install John0King/AdoMCP
copilot mcp get adomcp
marketplace からインストールすることもできます。
copilot plugin marketplace add John0King/AdoMCP
copilot plugin install adomcp@adomcp-plugins
GitHub Copilot App
Copilot App で Customize → Plugins を開き、John0King/AdoMCP marketplace を追加してから AdoMcp をインストールします。このリポジトリの .github/plugin/marketplace.json、plugin.json、.mcp.json、skill が、1 つのプラグインとして読み込まれます。
Copilot App/クラウドのエージェントでこのローカル stdio MCP サーバーを起動するには、実行環境で .NET 10 を実行でき、NuGet にアクセスできる必要があります。実行環境でローカルプロセスが許可されていない場合は、まずご自身で AdoMcp を HTTP モードでデプロイし、以下の手順に従ってリモートアドレスを設定してください。
MCP の直接設定
ローカル MCP に対応する任意のクライアントで使用できます。
{
"mcpServers": {
"adomcp": {
"command": "dnx",
"args": ["-y", "AdoMcp"]
}
}
}
HTTP モードを使用するには、まずサーバーを起動します。
dnx -y AdoMcp -- --http
次に、エンドポイントに接続します。
{
"mcpServers": {
"adomcp": {
"url": "http://localhost:5100/mcp"
}
}
}
データベース接続の設定
AdoMcp は以下の順に設定を読み込み、後のソースが前のソースを上書きします。
- アプリケーションディレクトリ内の
appsettings.json appsettings.{Environment}.json- ユーザー設定
~/.adomcp.json(Windows の場合は%USERPROFILE%\.adomcp.json) ADOMCP_プレフィックス付きの環境変数- .NET User Secrets
- コマンドラインの
--allow-any-sql(グローバルなAllowAnySqlを上書きし、動的接続および個別に権限が設定されていない静的接続に適用されます)
最も一般的な方法は、ユーザーディレクトリに .adomcp.json を作成することです。
{
"AllowAnySql": false,
"Databases": [
{
"Name": "mydb",
"DbType": "PostgreSql",
"ConnectionString": "Host=localhost;Database=app;Username=postgres;Password=***;",
"AllowAnySql": false,
"Description": "Local development database"
}
]
}
DbType に指定できる値は、SqlServer、MySql、PostgreSql、Sqlite、Oracle です。
静的接続で AllowAnySql を明示的に設定した場合はその値が使用され、省略した場合はグローバル設定を継承します。動的接続もグローバル設定を継承し、個別に指定することはできません。グローバル値は設定ファイル、ADOMCP_ALLOWANYSQL 環境変数、または起動パラメーターで設定できます。コマンドラインの設定が優先され、デフォルト値は false です。権限はプロセスの起動時に決定されます。list_connections の canWrite 列に、現在有効な権限が表示されます。
設定ファイルを作成せず、セッション中にエージェントから add_connection を呼び出すこともできます。動的接続は起動時に決定されたグローバルな AllowAnySql を継承し、現在の AdoMcp プロセスでのみ有効です。再起動後は保持されません。同じ名前の動的接続は、その動的接続を削除するまで静的接続を上書きします。
実際の接続文字列を Git にコミットしないでください。本番環境では、環境変数、User Secrets、またはクライアントのシークレット管理機能を使用することをおすすめします。
実行モード
デフォルトでは stdio を使用します。stdout は MCP JSON-RPC の転送専用で、ログは stderr に出力されます。
# 默认 stdio
dnx -y AdoMcp
# 显式 stdio(兼容旧配置)
dnx -y AdoMcp -- --stdio
# HTTP,默认监听 http://localhost:5100/mcp
dnx -y AdoMcp -- --http
# 安装为全局 .NET tool
dotnet tool install -g AdoMcp
adomcp
書き込み SQL の安全スイッチ
execute_sql は対象の接続に基づいて判定されます。静的接続では "AllowAnySql": true を明示して書き込みを有効にするか、この項目を省略してグローバル設定を継承できます。動的接続は常にグローバル設定を継承します。例:
dnx -y AdoMcp -- --allow-any-sql
dnx -y AdoMcp -- --http --allow-any-sql
設定ファイルでトップレベルに "AllowAnySql": true を設定するか、環境変数 ADOMCP_ALLOWANYSQL=true を設定することもできます。実行中に設定ファイルを変更しても、現在のプロセスの書き込み権限は変わりません。必ず読み取り専用にする必要があるデータベースでは、読み取り権限のみを持つデータベースアカウントも使用してください。query_sql の SQL テキスト検査は、データベース権限の代わりにはなりません。
エージェントに推奨するワークフロー
list_connectionsで接続を確認します。- 接続が不足している場合は、
add_connectionで追加します。 list_objectsでスキーマ、オブジェクトの種類、オブジェクト名を確認します。get_table_schemaで構造とコメントを確認します。- キーやパフォーマンスに関わる場合は、
get_table_indexesを使用します。 - 読み取り専用の検証には
query_sqlを使用します。 - ユーザーから明示的な許可を得ており、かつサーバーで書き込み機能が有効な場合に限り、
execute_sqlを使用します。
Oracle では、owner が指定されていないオブジェクトがシノニムの場合があります。まず list_objects で実際のスキーマを特定してください。
環境変数
| 変数 | 説明 |
|---|---|
ADOMCP_MODE | stdio または http |
ADOMCP_URLS | HTTP リッスンアドレス。例:http://0.0.0.0:5100 |
ADOMCP_ALLOWANYSQL | 動的接続および個別に権限が設定されていない静的接続に対する、グローバルな書き込みのデフォルト値。既定値は false です |
ADOMCP_DATABASES | JSON エンコードされた Databases 配列 |
MCP Registry
AdoMcp は、公式の MCP Registry に登録されています。Server name は io.github.John0King/adomcp です。
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。