mcpField
O
oraclemcp

oraclemcp

ローカル
github.com/MuhDurデータベース43 週間前に更新

oraclemcp について

oraclemcpは、AIエージェント向けにOracle Databaseへのアクセスを制御する純Rust製MCPサーバーです。SQL実行前のフェイルクローズ分類に加え、権限レベル、ロールバック、監査記録を備えています。

主な機能

  1. 01フェイルクローズのSQL分類
  2. 02READ_ONLYからADMINまでの権限階層
  3. 03DMLの既定ロールバックとコミット確認
  4. 04署名付きハッシュチェーン監査
  5. 05stdioとStreamable HTTPのトランスポート
  6. 06Oracle VECTOR検索のガバナンス

活用シーン

  1. 01読み取り専用プロファイルでのOracle検索
  2. 02プレビューと確認を経た書き込み
  3. 03特権データベース操作の監査
  4. 04Oracle 23aiでの制御されたベクトル検索

MCP 対応

Oracle Databaseへのアクセス用に、43個のガバナンス対象MCPツールと互換エイリアスを公開します。stdioとTLS/mTLS対応のStreamable HTTPをサポートします。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"muhdur-oraclemcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/muhdur/oraclemcp:0.11.0"
]
}
}
}
起動コマンドdocker run -i --rm ghcr.io/muhdur/oraclemcp:0.11.0

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
ocighcr.io/muhdur/oraclemcp:0.11.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

oraclemcp:純粋な Rust で実装された、ガバナンスが適用された最小権限の Oracle Database MCP サーバー

CI crates.io ライセンス forbid(unsafe_code) 約3,300件のテスト nightly-2026-05-11

AI エージェント向けの、ガバナンスが適用された最小権限の Oracle Database アクセスを、純粋な Rust で実現します。

oraclemcp は、AI エージェントにガバナンスが適用された最小権限の Oracle データベースアクセスを提供する Model Context Protocol サーバーです。エージェントが送信するすべての生のステートメントは、Oracle に到達する前に分類されます。読み取りツールでは読み取り専用と証明されたステートメントのみが許可され、読み取り以外の SQL は、プロファイルで許可された明示的な経路を通じてのみ実行されます。この経路では、デフォルトで DML をロールバックし、コミット前にプレビューに基づく許可を必須とします。セッションの権限昇格は明示的かつ一時的で、プロファイルの max_level を上限とします。エンジンに依存しない SQL ガードは PL/SQL の解析機能から独立しており、デフォルトのバイナリにはオフラインエンジンが組み込まれています。すべてのクレートで #![forbid(unsafe_code)] を使用しています。

Oracle とは関係のない独立したオープンソースプロジェクトです。Oracle 独自の MCP サーバーとの比較をご覧ください。

ドライバー

oraclemcp は、主要な接続経路として、独自の成熟した純粋な Rust 製 Oracle ドライバーを使用します。Oracle 公式の oracledb クレートは、友好的な合意のもとでクレート名を Oracle に譲ったもので、現在はベータ版のため、万一問題が発生した場合に限り、接続時に限定して使用するフォールバックとして提供されます。Oracle Instant Client、ODPI-C、C ツールチェーンは不要です。

flowchart LR
    A["Connection request"] --> D["driver-cx<br/>pure-Rust · primary<br/>password · IAM · wallet · TCPS/PEM"]
    D -->|"basic-password<br/>connect fails"| O["oracledb<br/>Oracle · beta<br/>connect-time fallback"]
    D --> DB[("Oracle Database")]
    O --> DB

フォールバックが発生するのは基本認証での接続に失敗した場合のみです。IAM、ウォレット、TCPS/PEM は常に driver-cx を使用し、フォールバックによって確立済みのセッションが移行することはありません。

概要

ツール43 個のガバナンス対応 MCP ツールと 25 個の互換エイリアス。それぞれに実際の JSON Schema と MCP セーフティヒントを備えています
安全性フェイルクローズの SQL 分類器 · 4 段階の権限レベル READ_ONLY → READ_WRITE → DDL → ADMIN · デフォルトで DML をロールバック · 署名付きハッシュチェーン監査
認証TCP 経由のユーザー名/パスワード · IAM / OCI ADB トークン · TLS/TCPS + PEM · Oracle ウォレット(cwallet.sso)
Oracle18c · 21c · 23ai — ガバナンス対応のネイティブ VECTOR 検索を含みます
コード純粋な Rust 製の 9 個のクレート + バイナリ · #![forbid(unsafe_code)] · 約3,300件のテスト + 差分ファザー
トランスポートstdio(デフォルト)+ rustls による TLS/mTLS とオプションの OAuth に対応した Streamable HTTP

クイックスタート

macOS と Linux では、次の1行でインストールまたは更新できます(ターミナルに貼り付けて実行する場合も、非インタラクティブなエージェント実行の場合も利用できます)。

curl -fsSL "https://raw.githubusercontent.com/MuhDur/oraclemcp/main/install.sh?$(date +%s)" | bash

SHA-256 ダイジェスト(cosign が存在する場合は cosign の署名と来歴も)を検証し、oraclemcp と短縮エイリアスの om を $HOME/.local にインストールします。Windows(install.ps1)、Docker(ghcr.io/muhdur/oraclemcp:latest)、cargo binstall oraclemcp も利用できます。エアギャップ環境でのオフラインインストール、検証方法、サービスのインストールについては、bash install.sh --help と docs/ に記載されています。npm/npx の配布経路はありません。

オンボーディングしてクライアントを接続します。

oraclemcp setup --discover           # one READ_ONLY profile per tnsnames.ora entry — consent-gated, no secrets written to disk
oraclemcp doctor                     # offline diagnostics: driver, TNS/wallet, classifier, NLS
oraclemcp serve --profile db_ro --allow-no-auth    # stdio (local dev)

stdio 経由で MCP クライアント(Claude Desktop など)に接続します。

{
  "mcpServers": {
    "oracle": {
      "command": "oraclemcp",
      "args": ["serve", "--profile", "db_ro", "--allow-no-auth"]
    }
  }
}

複数のローカル MCP クライアントは、書き込み可能なプロファイルを含め、同じ stdio 設定を同時に使用できます。サービスの状態が必要になると、クライアントは監査ログの書き込みとデータベースプールを管理する1つのローカルブローカーに自動的に接続します。各クライアントは、それぞれのセッションレベル、確認トークン、トランザクション、キャンセルを保持します。クライアントが60秒間接続しないと、ブローカーは終了します。HTTP でも、デフォルトでクライアントごとに分離されたステートフルセッションが提供されます。HTTP クライアントと stdio クライアントは、同じブローカーと状態のルートを共有します。各ローカルクライアントは、設定されたデータベースの認証情報をそれぞれ解決する必要があります。ブローカーの認証情報と異なる認証情報を持つクライアントは、セッションを開く前に ORACLEMCP_BROKER_CREDENTIAL_MISMATCH を受け取ります。

または、表示は1回限りのベアラーを使って認証済み HTTP を実行し、秘密情報を含まない1回限りのペアリング URL からローカルダッシュボードを開きます。

oraclemcp --json clients issue --label claude --scope oracle:read
oraclemcp serve --listen 127.0.0.1:7070 --client-credentials --profile db_ro
om dashboard

doctor の出力はエージェントのセッションに安全に貼り付けられます。接続文字列、ユーザー名、認証情報への参照、パスワード、ウォレットのパス、IAM トークン、サーバー DN は省略しつつ、構造化された障害クラスと ORA コードは保持します。

oraclemcp を選ぶ理由

  • 設計上、フェイルクローズです。 エージェントが考案した SELECT が、気付かないうちに DELETE になることはありません。読み取りツールでは、読み取り専用と証明された SELECT/WITH とディクショナリのイントロスペクションのみが許可されます。読み取り以外の実行は oracle_execute に分離され、プロファイルの上限によって制限され、DML はデフォルトでロールバックされ、コミット前には明示的な確認が必要です。複数ステートメントのバッチ、文字列連結による動的 SQL、SELECT 内にある未証明の関数呼び出しなどの禁止構文は、型付きエンベロープと安全な代替案の提案とともに、Oracle に触れる前に拒否されます。
  • エージェントを第一に考えた UX。 すべてのツールには、実際の JSON Schema、タイトル、明示的な MCP アノテーション(readOnlyHint、destructiveHint、idempotentHint、openWorldHint)が付属します。エラーは、機械的に安定したクラス、曖昧な入力に対する提案、次の手順のヒントを備えた構造化された ErrorEnvelope であり、単なる文字列ではありません。引数なしの oracle_capabilities ツールを使って、エージェントが利用可能な機能を確認できます。
  • 純粋な Rust で、unsafe はありません。 すべてのクレートで #![forbid(unsafe_code)] が指定されています。フェイルクローズの分類器は、実際の sqlparser AST 分類器であり、差分 cargo-fuzz ターゲットも備えています。
  • 2つのトランスポート。 stdio(デフォルト)と Streamable HTTP(--listen)に対応し、フェイルクローズの認証デフォルト、オプションの OAuth ベアラー強制、ネイティブな rustls TLS/mTLS を備えています。

比較

Oracle は SQLcl に公式の MCP を組み込んで提供していますが、こちらは独立したプロジェクトです。AI エージェントをデータベースに安全につなげられるかを左右する、エージェントとデータの間にあるガードという観点で、根拠に基づく率直な比較を示します。

Oracle SQLcl MCPoraclemcp
デフォルトの動作読み取り専用ではありません読み取り専用、フェイルクローズ
書き込み/DDL の制御サーバー内にゲートがありません。DB 権限と非本番レプリカに依存しますサーバー内で制御します。分類器+READ_ONLY→ADMIN の段階的なレベル設定+プレビュー→確認トークン+デフォルトでロールバック
安全境界権限付与の管理です。誤った権限付与や巧妙なプロンプトによって書き込みが可能になりますサーバー自体です。権限付与にかかわらず強制されます
SQL の処理自由形式で、/* LLM in use */ タグが付けられます自由形式ですが、Oracle に渡す前に分類されます
監査DB 側のログテーブル(DBTOOLS$MCP_LOG)署名付きのハッシュチェーン HMAC 監査+判定証明書
実行環境Java。JVM と SQLcl のインストールが必要ですRust 製の静的バイナリ 1 つで完結。JVM、C ツールチェーン、Instant Client は不要です

SQLcl-MCP の各項目はOracle の公式ドキュメント(最小権限のユーザーを構成し、非本番レプリカを優先し、DBTOOLS$MCP_LOG で監査すること)に基づいています。oraclemcp の各項目は、このリポジトリで強制されます。Oracle は公式のサポート対象オプションです。また、Oracle が管理する Autonomous MCP は、ユーザーごとの ID を用いた、厳選されたレポートを提供する別の方式を採用しており、アクセスを厳格に制限した読み取り専用の BI に適しています。

安全モデル

ガードによってリクエストが拒否された場合は、生成された拒否カタログを参照し、型付きの安全な次のアクションを確認してください。ガードを迂回する方法が推奨されることはありません。

中核となる不変条件は、フェイルクローズの SQL ガードです。「永久に読み取り専用」ということではありません。操作レベルは READ_ONLY < READ_WRITE < DDL < ADMIN の段階になっており、oracle_execute、oracle_compile_object、oracle_create_or_replace、oracle_patch_source、oracle_set_session_level を通じて利用できます。読み取り専用はデフォルトであり、未構成のプロファイルまたは protected プロファイルの上限です。プロファイルの max_level では、ADMIN まで引き上げることができます。レベルを引き上げる際は、必ず以下のガードが適用されます。

  • 読み取り以外の文を実行する前に、プレビュー → 確認トークンによる段階的な昇格を行います。
  • 一時的で、TTL によって期限が定められた昇格期間を設けます。
  • 現在のレベルで、分類器が引き続きすべての文を制御します。
  • DML はデフォルトでロールバックされ、protected プロファイルは変更不可能な上限で READ_ONLY に固定されます。また、OAuth スコープでは有効なレベルを引き下げることしかできません。
  • 特権アクションごとに、署名付きの追記専用 HMAC-SHA256 ハッシュチェーン監査記録を作成します。
flowchart LR
    A["Agent SQL"] --> C{"Fail-closed<br/>classifier"}
    C -->|"proven READ_ONLY"| R["Read tools · rows returned"]
    C -->|"forbidden / unparseable"| X["Refuse<br/>typed ErrorEnvelope"]
    C -->|"non-read"| L{"Operating-level gate<br/>READ_ONLY → READ_WRITE → DDL → ADMIN"}
    L -->|"above level / ceiling"| X
    L -->|"within profile ceiling"| P["Preview → confirmation token"]
    P --> E["Execute"]
    E -->|"DML"| RB["Rollback by default<br/>commit only with grant"]
    R --> AU[("Signed hash-chained audit")]
    E --> AU

解析できない、または分類できない文はフェイルクローズで拒否されます。文には、分類されたバイト列と監査記録に結び付けられた判定証明書を付与できます。この証明書が依拠するルーチン純粋性の法則は、proofs/purity-core/PurityCore.lean に仕様が定義されており、適合性テストによって Rust 分類器との整合性が固定されています。

ガバナンス対象の側面

データベースセッションは、複数の独立した制御が適用されるガバナンス対象として扱われます。それぞれに実行可能な検証スクリプトがあります。

側面適用される制御検証
コスト呼び出しごとの max_query_cost と、プリンシパルごとの永続的な予算。上限を超える見積もりは実行前に拒否されますcost_gate.sh
時間as_of フラッシュバック読み取り、SCN 間/DB 間の oracle_diff、過去の実行計画タイムラインtime_diff.sh
データ送信結果がサーバーから出る前に適用されるプロファイルスコープの結果マスキングと、マスキング証明書(ADR 0008)served_egress.sh
証明判定証明書と、監査ヘッドの Rekor への非同期アンカリング(ADR 0010)verdict_certificate.sh
ポリシープロファイルごとの拒否/制限のみの SQL ポリシー。ベース分類器を厳しくすることはできますが、緩和することはできません(ADR 0009)sql_policy.sh
稼働中の DBCQN 変更通知、oracle_orient の鮮度/ドリフト、Arrow IPC 出力living_db.sh
ベクトル検索ポリシー/マスキング/監査の全経路を通じた、上限付きでフェイルクローズする 23ai oracle_semantic_searchgoverned_rag.sh
フリートMCP から参照可能な複数のプロファイルを一度にマッピングまたは比較します。到達不能なターゲットは、型付きの UNREACHABLE/FAIL_CLOSED レーンになりますfleet.sh
可逆ワークスペースネイティブの SAVEPOINT チェックポイント、保留中の DML、oracle_undo_to、元に戻す操作を考慮する oracle_preview_dmlreversible.sh
エディション許可リストによるエディションベースの再定義、永続化された提案、ADMIN のみが実行できるマージeditions.sh
インシデントの記録om incident capture/replay — オフラインで再分類される、編集済みの決定論的バンドル(ADR 0011)incident.sh
診断oracle_top_queries(無料の V$SQLSTATS)と、最小権限アカウントでも適切に機能を縮退する読み取り専用の oracle_db_health スイート(ADR 0005)バージョンマトリックスのレーン

エージェントに表示される内容は、アクティブなレベルと有効な上限によって異なります。READ_ONLY では、有効なプロファイル/OAuth の上限で READ_WRITE が許可されている場合、tools/list に oracle_execute と execute_approved が含まれます。これらが表示されても、書き込み権限は付与されません。その他の上位レベルのツールは、セッションが上限の範囲内で昇格するまで非表示のままです。まだ表示されていないツールへの呼び出しは、レベル未満の他のステートメントと同じ型付きの ErrorEnvelope で拒否されます。

ツール

以下の表は、サーバーのツールレジストリ(tools/list が提供するものと同じ記述子)から、scripts/docs_generate.sh が生成しています(oraclemcp robot-docs tools --markdown でレンダリング)。手動で編集しないでください。レジストリを編集し、bash scripts/docs_generate.sh --write を実行してください。

ツールタイトル目的表示されるレベル破壊的
oracle_list_profilesOracle プロファイル一覧接続文字列、ユーザー名、認証情報の参照先を公開せずに、設定済みの接続プロファイルを一覧表示します。READ_ONLYいいえ
oracle_connection_infoOracle 接続情報アクティブなプロファイル、その有効な MCP アクセス(動作レベル、プロファイルの max_level、保護状態、現在書き込みが許可されているかどうか)、および Oracle の接続状態を説明します。READ_ONLYいいえ
oracle_switch_profileOracle プロファイル切り替え名前を指定して、この MCP サーバーを別の設定済みプロファイルに再接続し、そのプロファイルの有効な MCP アクセスを報告します。READ_ONLYいいえ
oracle_set_session_levelOracle セッションレベル設定アクティブなプロファイルの上限内で一時的にセッションの動作レベルを引き上げる操作をプレビューまたは適用するか、READ_ONLY に戻します。READ_ONLYはい
oracle_queryOracle クエリ位置指定バインドを使用して、読み取り専用の SELECT を実行します。ページ分割に対応し、行数とバイト数に上限があります。READ_ONLYいいえ
oracle_semantic_searchOracle セマンティック検索oracle_query と同じポリシー、セマンティック解決、マスキング、監査の経路を使用して、範囲を制限したフェイルクローズ方式の 23ai ベクトル検索を実行します。READ_ONLYいいえ
oracle_diffOracle 差分読み取り専用と確認された SELECT を、2 つの Oracle SCN 間、または 2 つのデータベース間で比較します。READ_ONLYいいえ
oracle_preview_sqlOracle SQL プレビューSQL を実行せずに分類し、正確な SQL、型指定されたバインド、コミット/保留モード、出力上限、タイムアウトを確認情報に紐付けます。READ_ONLYいいえ
oracle_executeOracle 実行分類器とアクティブなプロファイルのゲートを通じて、読み取り以外の SQL 文を 1 つ実行します。DML はデフォルトでロールバックされます。READ_ONLYはい
oracle_checkpointOracle チェックポイント名前付きチェックポイント(ネイティブの Oracle SAVEPOINT)をこのセッションに設定し、取り消し可能な作業領域を開きます。hold=true と一致するプレビュー確認情報を指定した oracle_execute は DML をロールバックせず保留し、oracle_undo_to で取り消せます。READ_WRITEはい
oracle_undo_toOracle 指定位置まで取り消し取り消し可能な作業領域を元に戻します。ROLLBACK TO SAVEPOINT により、そのチェックポイントの後に実行された保留中のすべての文を破棄し、その上に積まれたチェックポイントを解放したうえで、トランザクションを開いたままにします。READ_WRITEはい
oracle_preview_dmlOracle DML プレビューDML 文を 1 つドライランします。サーバーは専用のセーブポイントで囲んで実行し、変更された行を読み取った後、そのセーブポイントまでロールバックして結果を提示します。コミットされるものも、残されるものもありません。READ_WRITEはい
oracle_compile_objectOracle オブジェクトのコンパイルアクティブな DDL プロファイルのゲートを通じて、PL/SQL/ビューオブジェクトを 1 つプレビューまたはコンパイルします。デフォルトはプレビューで、実行には返された確認トークンが必要です。DDLはい
oracle_create_or_replaceOracle の作成または置換分類器とアクティブな DDL プロファイルのゲートを通じて、CREATE OR REPLACE 文を 1 つプレビューまたは適用します。DDLはい
oracle_patch_sourceOracle ソースのパッチ保存されたソースオブジェクト 1 つに対して、old_text を new_text に完全一致で置換する操作をプレビューまたは適用します。プレビューでは現在のソースを再取得し、実行では既存の DDL 確認ゲートを使用します。DDLはい
oracle_list_schemasOracle スキーマ一覧このセッションから参照できるオブジェクトを所有するスキーマを、必要に応じて名前で絞り込んで一覧表示します。READ_ONLYいいえ
oracle_schema_inspectOracle スキーマ検査現在のスキーマ、1 つの所有者、またはアクセス可能なすべてのスキーマ内のオブジェクトを、必要に応じて型や名前で絞り込んで一覧表示します。READ_ONLYいいえ
oracle_search_objectsOracle オブジェクト検索detail_level を指定して、読み取り専用のオブジェクト検索と検査を一元的に行います。READ_ONLYいいえ
oracle_orientOracle 状況把握範囲を制限した状況把握の根拠を返します。デフォルトでは、アクティブなプロファイルのキャッシュ可能なスナップショットを 1 つ返します。fleet=true の場合は、MCP から参照できるすべてのプロファイルを個別にマッピングし、スキーマ、バージョン、鮮度、ドリフト、および型付きの UNREACHABLE/FAIL_CLOSED レーン状態を返します。READ_ONLYいいえ
oracle_describeOracle の説明テーブル/ビューの列と制約のメタデータを説明します。READ_ONLYいいえ
oracle_describe_indexOracle インデックスの説明インデックス 1 つのメタデータ、インデックス対象の列、および関数ベースの式を説明します。READ_ONLYいいえ
oracle_describe_triggerOracle トリガーの説明トリガー 1 つのタイミング、イベント、対象テーブル、ステータス、および本体を説明します。READ_ONLYいいえ
oracle_describe_viewOracle ビューの説明ビュー 1 つの定義メタデータと列を説明します。READ_ONLYいいえ
oracle_get_ddlOracle DDL の取得DBMS_METADATA.GET_DDL を使用して、オブジェクトの DDL を取得します(オブジェクト型は許可リストで指定)。READ_ONLYいいえ
oracle_get_sourceOracle ソースの取得ALL_SOURCE からオブジェクトのソース全文または指定した行範囲を取得するか、ALL_VIEWS.TEXT からビュー定義を取得します。文字数に上限があります。READ_ONLYいいえ
oracle_sample_rowsOracle 行サンプルテーブルまたはビューから任意の先頭行を、厳格な行数上限付きで読み取ります。READ_ONLYいいえ
oracle_read_clobOracle CLOB の読み取りキーを指定して、CLOB/NCLOB/テキスト値を 1 つ読み取ります。文字数に上限があります。READ_ONLYいいえ
oracle_compile_errorsOracle コンパイルエラー現在のスキーマ、所有者、またはオブジェクト 1 つのコンパイルエラーを取得します(ALL_ERRORS)。READ_ONLYいいえ
oracle_search_sourceOracle ソース検索ALL_SOURCE 全体から検索語を全文検索します(行数と行長に上限があります)。READ_ONLYいいえ
oracle_plscope_inspectOracle PL/Scope 検査ALL_IDENTIFIERS/ALL_STATEMENTS にデータがある場合、PL/SQL オブジェクト 1 つの PL/Scope 識別子と SQL 文のメタデータを検査します。READ_ONLYいいえ
oracle_explain_planOracle 実行計画の説明検証済みの SELECT に対して、診断目的の書き込みを伴う EXPLAIN PLAN を明示的に実行します。PLAN_TABLE に書き込み、READ_WRITE と allow_plan_table_write が必要です。読み取り専用スタンバイでは無効です。READ_WRITEはい
oracle_top_queriesOracle 上位クエリ無償のライブカーソルキャッシュ(V$SQLSTATS)を対象に、経過時間/CPU/バッファ取得数/ディスク読み取り数で順位付けした上位 SQL を読み取り専用で取得します。ライブ呼び出しでは、正確な sql_id または範囲を制限した sql_text で絞り込めます。READ_ONLYいいえ
oracle_plan_timelineOracle 実行計画のタイムライン1 つの SQL ID について、AWR スナップショットから読み取り専用で過去のオプティマイザー実行計画と相対コストのタイムラインを取得します。READ_ONLYいいえ
oracle_db_healthOracle データベースの健全性読み取り専用の DBA 健全性チェック一式を実行します。READ_ONLYいいえ
oracle_plsql_parseOracle PL/SQL の解析オフラインの plsql-intelligence ローワーを使用して PL/SQL ソースを解析し、宣言数と診断数を返します。READ_ONLYいいえ
oracle_plsql_analyzeOracle PL/SQL の分析ローカルプロジェクトルートに対してオフラインの plsql-intelligence エンジンを実行し、doctor の要約を返します。READ_ONLYいいえ
oracle_plsql_what_breaksOracle PL/SQL の影響予測Oracle に触れることなく、PL/SQL ChangeSet による無効化と再コンパイルの影響を予測します。READ_ONLYいいえ
oracle_plsql_lineageOracle PL/SQL の系譜ローカルの PL/SQL プロジェクト内で、論理オブジェクト ID を起点にオフラインの依存関係系譜をたどります。READ_ONLYいいえ
oracle_lineageOracle 系譜実行時に検証される COLUMN 系譜です。ソースから導出された owner.object.column のエッジを、保護された Oracle カタログと照合し、検証済み、欠落、または型不一致のドリフトとして示します。READ_ONLYいいえ
oracle_plsql_sastOracle PL/SQL SASTローカルの PL/SQL プロジェクトに対して、オフラインの plsql-sast ルールハーネスを実行し、検出結果とスキップされたルールの根拠を返します。READ_ONLYいいえ
oracle_plsql_docOracle PL/SQL ドキュメントソースからドキュメントコメントを抽出するか、既存の plsql-doc DocSet をレンダリングします。READ_ONLYいいえ
oracle_plsql_live_snapshotOracle PL/SQL ライブスナップショットOracle のライブディクショナリの行セットを抽出し、plsql-intelligence CatalogSnapshotBuilder で正規化します。READ_ONLYいいえ
oracle_plsql_blast_radiusOracle PL/SQL 影響範囲ライブカタログのスナップショットを抽出し、提案された ChangeSet に対して plsql-cicd の変更影響予測を実行します。READ_ONLYいいえ
広告されるすべてのツール記述子には、人が読めるタイトルと明示的な MCP アノテーションが含まれています。これらのヒントはクライアント向けの参考情報であり、強制適用の境界は引き続きフェイルクローズ型分類器と運用レベルゲートです。oracle_query と oracle_explain_plan は outputSchema も広告し、クエリ結果では Oracle NUMBER セルをデフォルトで文字列として扱います(numbers_as_float=true を明示的に指定すると浮動小数点数になります)。tools/* に加えて、initialize は resources、prompts、completions(プロトコル 2025-11-25)を広告します。resources/list では oracle://capabilities と oracle://tools が公開され、oracle://schema/{owner} および oracle://object/{owner}/{type}/{name} の読み取りテンプレートは、同じ安全なディスパッチ経路を通ります。
互換性エイリアス

より短い Oracle MCP ツール群から移行する場合に備えて、サーバーは互換性エイリアスを広告します。これらは保護された oracle_* ツールにルーティングされ、分類器、検証、運用レベルの動作を共有します。execute_approved、deploy_ddl、read_patch_preview は単なる名前変更ではなく、ラッパーです。

エイリアスルーティング先
current_databaseoracle_connection_info
switch_databaseoracle_switch_profile
enable_writesoracle_set_session_level
disable_writesoracle_set_session_level
queryoracle_query
preview_sqloracle_preview_sql
execute_approvedoracle_execute
compile_objectoracle_compile_object
compile_with_warningsoracle_compile_object
create_or_replaceoracle_create_or_replace
patch_packageoracle_patch_source
patch_vieworacle_patch_source
read_patch_previeworacle_patch_source
deploy_ddloracle_create_or_replace
list_objectsoracle_schema_inspect
list_schemasoracle_list_schemas
get_schemaoracle_schema_inspect
describe_tableoracle_describe
describe_indexoracle_describe_index
describe_triggeroracle_describe_trigger
describe_vieworacle_describe_view
get_ddloracle_get_ddl
get_object_sourceoracle_get_source
get_errorsoracle_compile_errors
get_cloboracle_read_clob

設定

接続プロファイルは profiles.toml に保存されます。シークレットがディスクに書き込まれることはありません。認証情報は env:、file:、または keyring: を通じて実行時に解決される参照情報です。読み取り専用の最小プロファイルは次のとおりです。

[profiles.db_ro]
connect_string = "//db.example.com:1521/FREEPDB1"
username       = "APP_RO"
credential_ref = "env:ORACLE_APP_PASSWORD"
# default_level defaults to read_only and is the ceiling for this profile;
# set max_level to permit explicit, TTL-bounded elevation up to ADMIN.

HTTP TLS/mTLS/OAuth リスナー、署名付き監査チェーン、結果のマスキングポリシー、フリート/モニタープロファイル、TCPS/ウォレット、IAM/DRCP/プロキシ認証、呼び出しごとのタイムアウト/SDU 上限など、フィールドの完全なリファレンスは docs/configuration.md にあります。

ドキュメント

ソースからビルドする

このブランチは nightly-2026-05-11 に固定されており、安定した MSRV はありません(この固定は asupersync 経由で推移的に適用され、Windows では windows_by_handle が必要です。詳しくは docs/toolchain.md を参照してください)。上記の検証済みリリースアーカイブの利用を推奨します。ソースからビルドするのは、次のことを行う場合に限ってください。

rustup toolchain install nightly-2026-05-11 --component rustfmt --component clippy
cargo +nightly-2026-05-11 install oraclemcp

ライブデータベースへのアクセスには、純粋な Rust 製のシンドライバーが組み込まれています。Oracle Instant Client、ODPI-C、C ツールチェーンは不要です。ネットサービス名で接続する場合は、必要に応じて TNS_ADMIN を設定してください。デフォルトのビルドにはオフラインの PL/SQL エンジンが含まれます。--no-default-features を指定すると省略されます。

ライセンス

Apache-2.0 OR MIT のライセンスで提供されています。Docker イメージおよびクレートに Oracle Instant Client は再配布されません。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。