oracle について
データベース利用者向けの Oracle Database MCP サーバーです。読み取り専用 SQL 分析、スキーマ確認、テーブル統計、Oracle AWR レポートに対応します。
主な機能
- 01読み取り専用 SQL クエリ
- 02SQL 実行計画
- 03現在のスキーマのテーブル統計
- 04Oracle AWR レポート
- 05テーブルごとのスキーマリソース
活用シーン
- 01現在のスキーマの確認
- 02読み取り専用 SQL クエリの分析
- 03SQL 実行計画の確認
- 04Oracle AWR レポートの調査
MCP 対応
読み取り専用の Oracle クエリ、実行計画、テーブル統計、AWR レポート、スキーマリソースを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
5掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| sql | string | はい | 実行する SQL クエリ |
| model | string | はい | MCP クライアントがリクエストの処理に使用する言語モデルの名前とバージョン(例:gpt-4.1、claude-sonnet-4、llama4……) |
| mcp_client | string | はい | 使用している MCP クライアント実装の名前とバージョンを指定します(例:Copilot、Claude、Cline……) |
詳細
Oracle Database
Oracle Database への読み取り専用アクセスを提供する Model Context Protocol サーバーです。このサーバーを使用すると、LLM がデータベースのスキーマを調査し、読み取り専用クエリを実行および説明できます。
コンポーネント
ツール
-
orcl-query
- 接続中の Oracle Database に対して読み取り専用の SQL クエリを実行します
- 入力:
sql(文字列):実行する SQL クエリ - すべてのクエリは READ ONLY トランザクション内で実行されます
-
orcl-explain
- 接続中の Oracle Database に対して SQL クエリの実行計画を説明します
- 入力:
sql(文字列):実行する SQL クエリ GRANT SELECT_CATALOG_ROLE TO your_user;が必要です
-
orcl-stats
- 現在接続中のスキーマにある指定テーブルの統計情報を取得します
- 入力:
name(文字列):テーブル名 - テーブルの所有者は、値を返す USER SQL 関数と同じです
-
orcl-connect
- 新しい認証情報を使用して再接続します
- 入力:
connectionString(文字列):SQLNet 接続文字列。例:host.docker.internal:1521/freepdb1 - 入力:
user(文字列):ユーザー名。例:scott - 入力:
password(文字列):パスワード。例:tiger
例: orcl-connect host.docker.internal:1521/freepdb1 hr hr_2025
- orcl-awr
- オプションの sql_id を指定できる Automatic Workload Repository(AWR)。SELECT_CATALOG_ROLE と DBMS_WORKLOAD_REPOSITORY パッケージの実行権限が必要です
- 入力:
sql_id(文字列):(任意)特定のクエリの AWR レポートを取得する SQL ID。null の場合は、最後に生成された AWR レポート全体を取得します
リソース
このサーバーは、現在接続中の Oracle Database ユーザーに対して、各テーブルのスキーマ情報を提供します。
- テーブルスキーマ(
oracle://USER/<table>/schema)- 各テーブルの JSON スキーマ情報
- 列名とデータ型を含みます
- Oracle Database のメタデータから自動的に検出されます
変更履歴
変更履歴については、変更履歴をご覧ください。
デモ
Claude Desktop、Docker AI、Gemini CLI、Antigravity Code Editor での使用例については、デモをご覧ください。
Oracle AWR の動作例
orcl-awr ツールを使用して生成した AWR レポートの例と、上位の SQL 文の分析については、Oracle AWR の動作例をご覧ください。
Oracle サーバーでは、認証情報を安全に管理するために、環境変数または orcl-connect ツールを使用します。
ORACLE_USER:Oracle のユーザー名(orcl-connectを使用する場合は省略可能)ORACLE_PASSWORD:Oracle のパスワード(orcl-connectを使用する場合は省略可能)
接続文字列
接続文字列には、ホスト、ポート、サービス名/SID の情報のみを含めてください(認証情報は含めないでください)。コマンドライン引数として指定するのは任意です。起動時に省略した場合、他の機能を使用する前に orcl-connect ツールで接続を確立する必要があります。
サポートされている接続文字列の形式:
host:port/service_namehost:port:SID
ビルド
Docker:
docker build -t mochoa/mcp-oracle -f src/oracle/Dockerfile .
Claude Desktop での使用
このサーバーを Claude Desktop アプリで使用するには、claude_desktop_config.json の「mcpServers」セクションに次の設定を追加します。
Docker
- macOS で Docker を実行する場合、Oracle Database がホストネットワーク(例:localhost)上で実行されているときは
host.docker.internalを使用してください - 認証情報は環境変数
ORACLE_USERおよびORACLE_PASSWORDを介して渡されます
{
"mcpServers": {
"oracle": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e", "ORACLE_USER=myuser",
"-e", "ORACLE_PASSWORD=mypassword",
"mochoa/mcp-oracle",
"host.docker.internal:1521/freepdb1"
]
}
}
}
注:起動時に自動接続する場合は、接続文字列を最後の引数として引き続き指定できます:"args": [..., "mochoa/mcp-oracle", "host.docker.internal:1521/freepdb1"]。
ソース
通常どおり、この拡張機能のコードは GitHub にあります。変更の提案や貢献を歓迎します。私は React と TypeScript の開発を始めたばかりなので、この UI を改善するための貢献も歓迎します。
SQLcl MCP サーバーとの比較
SQLcl Docker 拡張機能を使用すると、次のように接続を登録できます。
docker exec --user sqlcl -ti mochoa_sqlcl-docker-extension-desktop-extension-service /opt/sqlcl/bin/sql -save hr_mcp -savepwd hr/[email protected]:1521/freepdb1
その後、この登録を使用します。
{
"mcpServers": {
"sqlcl-mcp-server": {
"type": "stdio",
"command": "docker",
"args": [
"exec",
"--user",
"sqlcl",
"-i",
"mochoa_sqlcl-docker-extension-desktop-extension-service",
"/opt/sqlcl/bin/sql",
"-mcp"
]
}
}
}
上記のデモ用プロンプトで、「orcl-query」ツールの代わりに「run-sql」を使用してください。
📜 ライセンス
このプロジェクトは、新たなコントリビューションには Apache License, Version 2.0 が適用され、既存のコードには MIT が適用されます。詳細はLICENSEファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。