oraclemcp
OCI · GHCR.IO/MUHDUR/ORACLEMCP:0.10.0 · SCANNED AUG 3
Engine-free, governed Oracle Database MCP server with a fail-closed SQL guard (unofficial).
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →
Supply Chain Security0
- Malware scan not yet available for this package.Unverified
- CVE data not yet available for this package.Unverified
- Install-script risk not yet assessed.Unverified
- Dependency-health data not yet available.Unverified
Provenance & Transparency45
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (Apache-2.0 OR MIT).Pass
- Actively maintained (last published 7 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability76
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 6858 tokens (~152/item across 45 items; 43 tools + 2 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management23
- Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (9% of tools); any adoption earns full credit.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Unverified: 1 category
A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
oci · ghcr.io/muhdur/oraclemcp:0.10.0
claude mcp add muhdur-oraclemcp -- docker run --rm -i ghcr.io/muhdur/oraclemcp:0.10.0
codex mcp add muhdur-oraclemcp -- docker run --rm -i ghcr.io/muhdur/oraclemcp:0.10.0
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"muhdur-oraclemcp": {
"type": "local",
"command": [
"docker",
"run",
"--rm",
"-i",
"ghcr.io/muhdur/oraclemcp:0.10.0"
],
"enabled": true
}
}
} mcp_servers:
muhdur-oraclemcp:
command: "docker"
args: ["run", "--rm", "-i", "ghcr.io/muhdur/oraclemcp:0.10.0"] {
"mcpServers": {
"muhdur-oraclemcp": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"ghcr.io/muhdur/oraclemcp:0.10.0"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 3 Aug 26 +4
- Stability: unverified → 0.23 ▲ functional
- 31 Jul 26 −6
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 28 Jul 26 +34
- Tool coverage: unverified → 100 ▲ functional
- Schema quality: unverified → 100 ▲ functional
- First check of Schema quality: fail functional
- First check of Schema quality: fail functional
- First check of Tool coverage: 9 functional
- First check of Tool coverage: 100 functional
- First check of Schema quality: good functional
- 27 Jul 26 11
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Analysed oci/ghcr.io/muhdur/oraclemcp:0.10.0
Provenance none
Ecosystem: oci · Outcome: none
Reason: verify_failed
- Discovery method:
- cosign_tag
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
current_database Current Database ~28
Compatibility alias for oracle_connection_info; returns connected=false with recovery hints when live connection metadata is unavailable.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
describe_index Describe Index ~59
Compatibility alias for oracle_describe_index.
| Name | Type | Req | Description |
|---|---|---|---|
| index_name | string | — | Index name. May be OWNER.INDEX_NAME. |
| name | string | — | Alias for index_name. |
| owner | string | — | Optional schema owner; defaults to current schema. |
No output schema declared.
No examples provided.
describe_table Describe Table ~98
Compatibility alias for oracle_describe; returns columns and constraints.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | — | Alias for max_rows. |
| max_rows | integer | — | Maximum columns and constraints returned. |
| name | string | — | Alias for table_name. |
| owner | string | — | Optional schema owner; defaults to current schema. |
| table | string | — | Alias for table_name. |
| table_name | string | — | Table or view name. May be OWNER.TABLE. |
No output schema declared.
No examples provided.
describe_trigger Describe Trigger ~59
Compatibility alias for oracle_describe_trigger.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | — | Alias for trigger_name. |
| owner | string | — | Optional schema owner; defaults to current schema. |
| trigger_name | string | — | Trigger name. May be OWNER.TRIGGER_NAME. |
No output schema declared.
No examples provided.
describe_view Describe View ~59
Compatibility alias for oracle_describe_view.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | — | Alias for view_name. |
| owner | string | — | Optional schema owner; defaults to current schema. |
| view_name | string | — | View name. May be OWNER.VIEW_NAME. |
No output schema declared.
No examples provided.
get_clob Get CLOB ~151
Compatibility alias for oracle_read_clob.
| Name | Type | Req | Description |
|---|---|---|---|
| clob_col | string | — | CLOB/NCLOB/text column name. |
| clob_column | string | — | Alias for clob_col. |
| max_chars | integer | — | Maximum characters to return. |
| owner | string | — | Optional schema owner; defaults to current schema. |
| pk_col | string | — | Key column name. |
| pk_column | string | — | Alias for pk_col. |
| pk_val | string | — | Key value bound as :1. |
| pk_value | string | — | Alias for pk_val. |
| table | string | — | Table or view name. May be OWNER.TABLE. |
| table_name | string | — | Alias for table. |
No output schema declared.
No examples provided.
get_ddl Get DDL ~82
Compatibility alias for oracle_get_ddl; long DDL is explicitly marked partial rather than silently truncated.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | — | Alias for object_name. |
| object_name | string | — | Object name. May be OWNER.NAME. |
| object_type | string | yes | Allowlisted object type. |
| owner | string | — | Optional schema owner; defaults to current schema. |
No output schema declared.
No examples provided.
get_errors Get Errors ~80
Compatibility alias for oracle_compile_errors.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | — | Alias for max_rows. |
| max_rows | integer | — | Maximum compiler diagnostics returned. |
| name | string | — | Alias for object_name. |
| object_name | string | — | Optional object name. May be OWNER.NAME. |
| owner | string | — | Optional schema owner; defaults to current schema. |
No output schema declared.
No examples provided.
get_object_source Get Object Source ~128
Compatibility alias for oracle_get_source. Omit object_type to return every visible source variant for the object name.
| Name | Type | Req | Description |
|---|---|---|---|
| max_chars | integer | — | Maximum source characters to return. |
| name | string | — | Alias for object_name. |
| object_name | string | — | Object name. May be OWNER.NAME. |
| object_type | string | — | Optional source type: PACKAGE, PACKAGE_BODY, PROCEDURE, FUNCTION, TRIGGER, TYPE, or TYPE_BODY. When omitted, all visible source types for this name are returned. |
| owner | string | — | Optional schema owner; defaults to current schema. |
No output schema declared.
No examples provided.
get_schema Get Schema ~151
Compact schema orientation alias. With no object_type it lists TABLE, VIEW, and PACKAGE objects only; a bounded truncated page carries an opaque cursor.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | — | Opaque continuation cursor returned by a truncated get_schema page. |
| limit | integer | — | Maximum objects to return (default 100, hard cap 250). |
| max_rows | integer | — | Alias for limit. |
| name_like | string | — | Optional SQL LIKE pattern for object_name. |
| object_type | string | — | Optional object type filter. Supplying it overrides the compact TABLE/VIEW/PACKAGE default projection. |
| owner | string | — | Optional schema owner; omit for current schema, or use * for all accessible schemas. |
No output schema declared.
No examples provided.
list_objects List Objects ~88
Compatibility alias for oracle_schema_inspect.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | — | Maximum objects to return. |
| max_rows | integer | — | Alias for limit. |
| name_like | string | — | Optional SQL LIKE pattern for object_name. |
| object_type | string | — | Optional object type filter. |
| owner | string | — | Optional schema owner; omit for current schema, or use * for all accessible schemas. |
No output schema declared.
No examples provided.
list_schemas List Schemas ~55
Compatibility alias for oracle_list_schemas.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | — | Alias for max_rows. |
| max_rows | integer | — | Maximum schemas to return. |
| name_like | string | — | Optional SQL LIKE pattern for schema names. |
No output schema declared.
No examples provided.
oracle_capabilities Oracle Capabilities ~68
Compact discovery entry point: tools, operating level + gates, connection/standby status, feature tiers, version. Pass detail_level=full for the complete descriptor report.
| Name | Type | Req | Description |
|---|---|---|---|
| detail_level | string | — | compact (default) omits tool summaries and schemas; full returns the complete descriptor report. |
No output schema declared.
No examples provided.
oracle_compile_errors Oracle Compile Errors ~133
Retrieve compile errors for the current schema, an owner, or one object (ALL_ERRORS).
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | — | Alias for max_rows. Prefer max_rows. |
| max_rows | integer | — | Maximum compile errors to return (default 200, hard cap 5000). |
| name | string | — | Optional object name. May be OWNER.NAME. Omit to list all compile errors for the owner/current schema. |
| object_name | string | — | Alias for name for compatibility with older clients. Prefer name. |
| owner | string | — | Optional schema owner (case-insensitive). Defaults to current schema when available. |
No output schema declared.
No examples provided.
oracle_connection_info Oracle Connection Info ~36
Describe the active profile and Oracle connection. When live connection metadata is unavailable, returns connected=false with a structured connection_error and next_actions.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
oracle_db_health Oracle Db Health ~180
Read-only DBA health-check suite. health_type='all' (default) or a comma list of subchecks (invalid_objects, unusable_indexes, tablespace_undo, sequence_ceiling, disabled_constraints, buffer_cache_hit_ratio). Pure V$/DBA_*/ALL_* reads; each subcheck degrades DBA_*->ALL_* and yields a structured skip on insufficient privilege rather than failing the suite.
| Name | Type | Req | Description |
|---|---|---|---|
| health_type | string | — | Either 'all' (default) or a comma-separated list of subcheck names: invalid_objects, unusable_indexes, tablespace_undo, sequence_ceiling, disabled_constraints, buffer_cache_hit_ratio. Unknown names a… |
| timeout_seconds | integer | — | Tightens the profile's total request deadline and each Oracle round-trip cap for this tool call. It cannot widen the profile ceiling. |
No output schema declared.
No examples provided.
oracle_describe Oracle Describe ~135
Describe a table/view's columns and constraint metadata.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | — | Alias for max_rows. Prefer max_rows. |
| max_rows | integer | — | Maximum constraint rows to return (default 200, hard cap 5000). |
| name | string | — | Alias for table. Prefer table. |
| owner | string | — | Optional schema owner (case-insensitive). Defaults to current schema when available. |
| table | string | — | Table or view name. May be OWNER.TABLE. Required unless table_name or name is supplied. |
| table_name | string | — | Alias for table for compatibility with older clients. Prefer table. |
No output schema declared.
No examples provided.
oracle_describe_index Oracle Describe Index ~84
Describe one index's metadata, indexed columns, and function-based expressions.
| Name | Type | Req | Description |
|---|---|---|---|
| index_name | string | — | Alias for name for compatibility with older clients. Prefer name. |
| name | string | — | Index name (case-insensitive). Required unless index_name is supplied. |
| owner | string | — | Optional schema owner (case-insensitive). Defaults to current schema when available. |
No output schema declared.
No examples provided.
oracle_describe_trigger Oracle Describe Trigger ~86
Describe one trigger's timing, event, target table, status, and body.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | — | Trigger name (case-insensitive). Required unless trigger_name is supplied. |
| owner | string | — | Optional schema owner (case-insensitive). Defaults to current schema when available. |
| trigger_name | string | — | Alias for name for compatibility with older clients. Prefer name. |
No output schema declared.
No examples provided.
oracle_describe_view Oracle Describe View ~79
Describe one view's definition metadata and columns.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | — | View name (case-insensitive). Required unless view_name is supplied. |
| owner | string | — | Optional schema owner (case-insensitive). Defaults to current schema when available. |
| view_name | string | — | Alias for name for compatibility with older clients. Prefer name. |
No output schema declared.
No examples provided.
oracle_diff Oracle Diff ~531
Diff one proven read-only SELECT across two Oracle SCNs, or across two databases.
| Name | Type | Req | Description |
|---|---|---|---|
| binds | array | — | Positional bind values (string | number | bool | null) for :1, :2 … |
| db_a | string | — | Alias for profile_a. |
| db_b | string | — | Alias for profile_b. |
| key | array | — | Optional result-column names used to align rows and report changed[]. If omitted, oracle_diff infers a primary key only for a single resolved local table; otherwise it falls back to keyless add/remov… |
| key_columns | array | — | Alias for key. |
| keys | array | — | Alias for key. |
| max_blob_bytes | integer | — | Maximum BLOB bytes to inline per cell as base64 (default 1048576). |
| max_col_width | integer | — | Compatibility text cap for ordinary text/raw columns. Truncated values are returned as { value, truncated, char_length }. |
| max_lob_chars | integer | — | Maximum CLOB characters to inline per cell (default 32768). |
| max_result_bytes | integer | — | Maximum compact JSON bytes per compared side (default 10485760, hard cap 26214400). |
| max_rows | integer | — | Maximum rows compared from each side (default 200, hard cap 5000). |
| numbers_as_float | boolean | — | Emit numeric values as JSON numbers where possible. Default false preserves Oracle NUMBER losslessly as strings. |
| profile_a | string | — | Connection profile for side A. Supplying profile_a and profile_b selects cross-database mode: the same proven read runs against two databases (e.g. prod vs staging), each classified against its own c… |
| profile_b | string | — | Connection profile for side B. See profile_a. |
| scn_a | integer | — | System change number for side A. Required with scn_b when comparing one database at two points in time; optional in cross-database mode, where it pins side A to a flashback read instead of the curren… |
| scn_b | integer | — | System change number for side B. See scn_a. |
| sql | string | yes | A single read-only SELECT/WITH. The same proven SQL is run on both compared sides; it is classified as a read against each database it runs on. |
| timeout_seconds | integer | — | Tightens the profile's total request deadline and each Oracle round-trip cap for this tool call. It cannot widen the profile ceiling. |
| Name | Type | Req | Description |
|---|---|---|---|
| added | array | yes | Rows present on side B but not on side A. |
| changed | array | yes | Key-aligned row changes; empty for keyless diffs. |
| columns | array | yes | Column names in the compared query shape. |
| key_columns | array | yes | Key columns used for row alignment. Empty means keyless multiset diff. |
| keyed | boolean | yes | True when rows were aligned by explicit/inferred key columns and changed[] is meaningful. |
| mask_certificates | object | — | Present when result masking transformed either flashback page: before/after mask-decision certificates with audit entry hashes. |
| removed | array | yes | Rows present on side A but not on side B. |
| row_count_a | integer | yes | — |
| row_count_b | integer | yes | — |
| source_a | object | — | Where side A was read from. |
| source_b | object | — | Where side B was read from. |
| truncated | boolean | yes | True when either compared page hit a row/byte cap before all rows were compared. |
No examples provided.
oracle_get_ddl Oracle Get DDL ~157
Fetch an object's DDL via DBMS_METADATA.GET_DDL (allowlisted object types). Responses include full and returned character counts plus an explicit truncated flag; a long DDL prefix is never presented as a complete document.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | — | Object name. May be OWNER.NAME. Required unless object_name is supplied. |
| object_name | string | — | Alias for name for compatibility with older clients. Prefer name. |
| object_type | string | yes | Allowlisted type, e.g. TABLE, VIEW, PACKAGE, PACKAGE_BODY, PROCEDURE, FUNCTION, TRIGGER, TYPE, SEQUENCE, INDEX, SYNONYM. |
| owner | string | — | Optional schema owner (case-insensitive). Defaults to current schema when available. |
No output schema declared.
No examples provided.
oracle_get_source Oracle Get Source ~216
Fetch an object's full source text or inclusive line range from ALL_SOURCE with a character cap. Omit object_type to return every visible source variant for the object name.
| Name | Type | Req | Description |
|---|---|---|---|
| from_line | integer | — | Optional first ALL_SOURCE line to return, inclusive. Pair with oracle_search_source's LINE result. |
| max_chars | integer | — | Maximum source characters to return (default 1000000). |
| name | string | — | Object name. May be OWNER.NAME. Required unless object_name is supplied. |
| object_name | string | — | Alias for name for compatibility with older clients. Prefer name. |
| object_type | string | — | Optional supported source type: PACKAGE, PACKAGE_BODY, PROCEDURE, FUNCTION, TRIGGER, TYPE, TYPE_BODY. When omitted, all visible source types for this name are returned. |
| owner | string | — | Optional schema owner (case-insensitive). Defaults to current schema when available. |
| to_line | integer | — | Optional last ALL_SOURCE line to return, inclusive. Must not be lower than from_line. |
No output schema declared.
No examples provided.
oracle_list_profiles Oracle List Profiles ~24
List configured connection profiles without exposing connect strings, usernames, or credential references.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
oracle_list_schemas Oracle List Schemas ~91
List schemas that own objects visible to this session, optionally filtered by name.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | — | Alias for max_rows for compatibility with older clients. Prefer max_rows. |
| max_rows | integer | — | Maximum schemas to return (default 200, hard cap 5000). |
| name_like | string | — | Optional SQL LIKE pattern for schema names (case-insensitive), e.g. APP%. |
No output schema declared.
No examples provided.
oracle_orient Oracle Orient ~273
Return bounded orientation evidence: by default one cacheable snapshot for the active profile; fleet=true maps every MCP-visible profile independently with schema, version, freshness, drift, and typed UNREACHABLE/FAIL_CLOSED lane status. Dictionary reads are parameterized and read-only; include selects schema, fks, hot, freshness, and/or ddl (all by default). Every selected row list is capped and the response makes truncation explicit.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | — | Opaque continuation cursor returned by a truncated orient response. It is bound to this owner, include selection, fleet flag, and profile. |
| fleet | boolean | — | When true, orient every MCP-visible configured profile independently. Each profile is returned with REACHABLE, UNREACHABLE, or FAIL_CLOSED status; one unavailable lane never omits or fails the other… |
| include | array | — | Optional sections to return. Defaults to every section; ddl selects the recent_ddl field. |
| limit | integer | — | Alias for max_rows. |
| max_rows | integer | — | Maximum rows for each selected orientation list (default 100). The response sets truncated=true and returns next_cursor when another bounded page may exist. |
| owner | string | — | Optional schema owner (case-insensitive). Omit or use * for all visible schemas. |
No output schema declared.
No examples provided.
oracle_plan_timeline Oracle Plan Timeline ~133
Read-only historical optimizer plan and relative-cost timeline from AWR snapshots for one SQL ID. Requires a licensed Oracle Diagnostics Pack; when the license probe cannot prove DIAGNOSTIC access it returns a typed refusal before touching DBA_HIST_*.
| Name | Type | Req | Description |
|---|---|---|---|
| max_points | integer | — | Maximum AWR snapshot observations to return (default 100, capped at 1000). |
| sql_id | string | yes | The 13-character Oracle SQL ID to inspect. |
| timeout_seconds | integer | — | Tightens the profile's total request deadline and each Oracle round-trip cap for this tool call. It cannot widen the profile ceiling. |
No output schema declared.
No examples provided.
oracle_plscope_inspect Oracle PL/Scope Inspect ~136
Inspect PL/Scope identifier and SQL statement metadata for one PL/SQL object when ALL_IDENTIFIERS/ALL_STATEMENTS are populated.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | — | Alias for max_rows. Prefer max_rows. |
| max_rows | integer | — | Maximum identifiers and SQL statements per array (default 200, hard cap 5000). |
| name | string | — | Object name. May be OWNER.NAME. Required unless object_name is supplied. |
| object_name | string | — | Alias for name for compatibility. Prefer name. |
| owner | string | — | Optional schema owner (case-insensitive). Defaults to current schema when available. |
No output schema declared.
No examples provided.
oracle_preview_sql Oracle Preview SQL ~45
Classify a SQL statement and report whether it would pass the active profile/session gate without executing it.
| Name | Type | Req | Description |
|---|---|---|---|
| sql | string | yes | SQL statement to classify. It is never executed. |
No output schema declared.
No examples provided.
oracle_query Oracle Query ~854
Run a read-only SELECT with positional binds; paginated and row/byte capped.
| Name | Type | Req | Description |
|---|---|---|---|
| allow_plan_table_write | boolean | — | Default false. Must be true, with the active session at READ_WRITE, before max_query_cost may run EXPLAIN PLAN and write PLAN_TABLE for pre-execution cost estimation. |
| as_of | object | — | Flashback / AS-OF read: run this SELECT against a PAST committed snapshot. Pass a NORMAL SELECT (never hand-written AS OF SQL); the base query is proven read-only first, then bounded in a DBMS_FLASHB… |
| binds | array | — | Positional bind values (string | number | bool | null) for :1, :2 … |
| cursor | string | — | Opaque pagination cursor from a prior truncated page (incremental fetch). Resuming with it yields the next page byte-identically. |
| deep_decode | boolean | — | Opt into larger capped ARRAY/JSON/VECTOR structured decode limits. Default false keeps safe caps. |
| format | string | — | Inline result format. json (default) returns rows; arrow returns base64 Arrow IPC in arrow_ipc_b64 after the identical masking and audit path. Arrow and export/streaming are mutually exclusive. |
| limit | integer | — | Alias for max_rows for compatibility with older clients. Prefer max_rows. |
| max_blob_bytes | integer | — | Maximum BLOB bytes to inline per cell as base64 (default 1048576). |
| max_col_width | integer | — | Compatibility text cap for ordinary text/raw columns. Truncated values are returned as { value, truncated, char_length }. |
| max_lob_chars | integer | — | Maximum CLOB characters to inline per cell (default 32768). |
| max_query_cost | integer | — | Optional per-call optimizer-cost ceiling for this oracle_query call. It can only lower the active profile's max_query_cost. When an effective ceiling exists, oracle_query first runs an EXPLAIN PLAN d… |
| max_result_bytes | integer | — | Maximum compact JSON bytes across row objects in this page (default 10485760, hard cap 26214400; excludes columns, pagination metadata, and the outer MCP envelope). |
| max_rows | integer | — | Maximum rows in this page / streamed chunk (default 200, hard cap 5000). |
| max_structured_bytes | integer | — | Maximum compact JSON bytes decoded from one structured node. Values above the safe default require deep_decode=true. |
| max_structured_cells | integer | — | Maximum structured value nodes decoded from one structured cell. Values above the safe default require deep_decode=true. |
| max_structured_depth | integer | — | Maximum ARRAY/JSON recursion depth decoded inside one structured cell. Values above the safe default require deep_decode=true. |
| max_structured_rows | integer | — | Maximum direct entries decoded from one structured ARRAY/JSON node. Values above the safe default require deep_decode=true. |
| numbers_as_float | boolean | — | Emit numeric values as JSON numbers where possible. Default false preserves Oracle NUMBER losslessly as strings. |
| read_only_standby | boolean | — | If true, refuse the max_query_cost estimation path because EXPLAIN PLAN writes PLAN_TABLE. Only meaningful when an effective max_query_cost is set. Defaults false. |
| sql | string | yes | A single read-only SELECT. Use :1, :2 … for binds. |
| streaming | boolean | — | Deliver the result incrementally instead of one inline page. Over HTTP/SSE, scalar/self-contained rowsets emit one `event: row` frame per row; LOB, BFILE, and REF CURSOR values fall back to ordered c… |
| timeout_seconds | integer | — | Tightens the profile's total request deadline and each Oracle round-trip cap for this tool call. It cannot widen the profile ceiling. |
| Name | Type | Req | Description |
|---|---|---|---|
| arrow_cell_encoding | string | — | Arrow cell encoding used by arrow_ipc_b64. Decode each UTF-8 value as a JSON literal to recover the same value as JSON mode. |
| arrow_ipc_b64 | string | — | Base64 Apache Arrow IPC stream for the already-masked, audit-bound result page. Each UTF-8 cell is a JSON literal; see arrow_cell_encoding. |
| columns | array | yes | Column names in select-list order. |
| export | object | — | Present when export=true: metadata for the materialized oracle-export://{id} resource, readable only by the originating principal under the exact scope grant. |
| format | string | — | Present as arrow when oracle_query was requested with format=arrow. In that form rows is omitted and the governed page is carried in arrow_ipc_b64. |
| inlined | boolean | — | False when the result was materialized as an export resource (export=true) rather than inlined. |
| mask_certificate | object | — | Present when result masking transformed the page: proof-carrying per-column mask decisions plus the audit entry hash binding those decisions into the audit chain. |
| next_cursor | string|null | — | — |
| next_step | string | — | — |
| resource_link | object | — | Present when export=true: an MCP resource_link to the export, to fetch via resources/read. |
| row_count | integer | yes | — |
| rows | array | — | Serialized rows keyed by column name. NUMBER cells are strings unless numbers_as_float=true. |
| total_bytes | integer | — | — |
| truncated | boolean | — | — |
No examples provided.
oracle_read_clob Oracle Read CLOB ~230
Read one CLOB/NCLOB/text value by key with a character cap.
| Name | Type | Req | Description |
|---|---|---|---|
| clob_col | string | — | Alias for clob_column. Prefer clob_column. |
| clob_column | string | — | CLOB/NCLOB/text column name (case-insensitive). Required unless clob_col is supplied. |
| max_chars | integer | — | Maximum characters to return (default 1000000). |
| owner | string | — | Optional schema owner (case-insensitive). Defaults to current schema when available. |
| pk_col | string | — | Alias for pk_column. Prefer pk_column. |
| pk_column | string | — | Key column name (case-insensitive). Required unless pk_col is supplied. |
| pk_val | string | — | Alias for pk_value. Prefer pk_value. |
| pk_value | string | — | Key value bound as :1. Required unless pk_val is supplied. |
| table | string | — | Table or view name. May be OWNER.TABLE. Required unless table_name is supplied. |
| table_name | string | — | Alias for table for compatibility with older clients. Prefer table. |
No output schema declared.
No examples provided.
oracle_sample_rows Oracle Sample Rows ~129
Read the first rows of a table or view with a hard row cap.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | — | Alias for max_rows for compatibility with older clients. Prefer max_rows. |
| max_rows | integer | — | Maximum rows to return (default 50, hard cap 1000). |
| owner | string | — | Optional schema owner (case-insensitive). Defaults to current schema when available. |
| table | string | — | Table or view name. May be OWNER.TABLE. Required unless table_name is supplied. |
| table_name | string | — | Alias for table for compatibility with older clients. Prefer table. |
No output schema declared.
No examples provided.
oracle_schema_inspect Oracle Schema Inspect ~141
List objects in the current schema, one owner, or all accessible schemas, with optional type/name filters.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | — | Alias for max_rows for compatibility with older clients. Prefer max_rows. |
| max_rows | integer | — | Maximum objects to return (default 500, hard cap 5000). |
| name_like | string | — | Optional SQL LIKE pattern for object_name, e.g. EMP%. |
| object_type | string | — | Optional object type filter, e.g. TABLE, VIEW, PACKAGE. |
| owner | string | — | Optional schema owner (case-insensitive). Omit for current schema; use * for all accessible schemas. |
No output schema declared.
No examples provided.
oracle_search_objects Oracle Search Objects ~362
Unified read-only object search/inspection with a detail_level. names=identifiers only; summary=+column count, comments, and the optimizer ALL_TABLES.NUM_ROWS row-count ESTIMATE (gathered statistics, never COUNT(*) — may be stale, reported via stats_stale/last_analyzed); standard (default)=+columns; full=+indexes. fleet=true searches the names-only index across MCP-visible profiles, applying each source profile's egress policy before merge and returning no profile roster or profile counts. Returns {count, results, truncated}. Owner/type/name filters are bound; quoted/case-sensitive identifiers are matched verbatim.
| Name | Type | Req | Description |
|---|---|---|---|
| detail | string | — | Alias for detail_level. |
| detail_level | string | — | Enrichment level. names=identifiers only; summary=+column count + comments + the optimizer ALL_TABLES.NUM_ROWS estimate (NOT COUNT(*)); standard (default)=+columns; full=+indexes. |
| fleet | boolean | — | Search the egress-safe unified fleet catalog. Fleet mode requires detail_level=names, applies each profile's own result-masking policy before aggregation, and intentionally returns no profile roster… |
| limit | integer | — | Alias for max_rows for compatibility with older clients. Prefer max_rows. |
| max_rows | integer | — | Maximum objects to return (default 100, hard cap 5000). |
| name_like | string | — | Optional SQL LIKE pattern for object_name, e.g. EMP%. |
| object_type | string | — | Optional object type filter, e.g. TABLE, VIEW, PACKAGE. |
| owner | string | — | Optional schema owner (case-insensitive for ordinary identifiers; quoted identifiers match verbatim). Omit or use * for all accessible schemas. |
No output schema declared.
No examples provided.
oracle_search_source Oracle Search Source ~209
Full-text search across ALL_SOURCE for a needle (row- and line-capped).
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | — | Alias for max_rows for compatibility with older clients. Prefer max_rows. |
| max_line_chars | integer | — | Maximum characters retained from each matching source line (default 500). Longer lines end with an explicit truncation marker; use oracle_get_source with from_line/to_line for the exact source range. |
| max_rows | integer | — | Maximum matching source lines to return (default 200, hard cap 5000). |
| name_like | string | — | Optional SQL LIKE pattern for source object names, e.g. EMP%. |
| needle | string | yes | Case-insensitive substring to find in source text. |
| object_type | string | — | Optional source type filter: PACKAGE, PACKAGE_BODY, PROCEDURE, FUNCTION, TRIGGER, TYPE, TYPE_BODY. |
| owner | string | — | Optional schema owner (case-insensitive). Defaults to current schema; use * for all visible source. |
No output schema declared.
No examples provided.
oracle_semantic_search Oracle Semantic Search ~258
Run a bounded, fail-closed 23ai vector search through the same policy, semantic-resolution, masking, and audit path as oracle_query.
| Name | Type | Req | Description |
|---|---|---|---|
| filter | object | — | Optional governed hybrid predicate. Only equality is supported: the server validates column as a simple identifier and binds value; raw SQL, OR/IN fragments, and caller-provided operators are refused. |
| k | integer | — | Top-k result count (default 10, hard cap 1000). |
| metric | string | — | VECTOR_DISTANCE metric (default COSINE). |
| over | object | yes | The local table and VECTOR column to search. Identifiers must be simple unquoted names and are live-resolved before execution. |
| query_text | string | — | Embedded only by exactly one visible local ONNX model after COMPATIBLE >= 23.4 is proven. Otherwise returns typed requires_23ai or no_in_db_model; it never falls back to client embedding. |
| query_vector | array | — | Numeric query vector. Exactly one of query_vector or query_text is required in this tool generation. |
| timeout_seconds | integer | — | Tightens the profile's total request deadline and each Oracle round-trip cap for this tool call. It cannot widen the profile ceiling. |
| Name | Type | Req | Description |
|---|---|---|---|
| arrow_cell_encoding | string | — | Arrow cell encoding used by arrow_ipc_b64. Decode each UTF-8 value as a JSON literal to recover the same value as JSON mode. |
| arrow_ipc_b64 | string | — | Base64 Apache Arrow IPC stream for the already-masked, audit-bound result page. Each UTF-8 cell is a JSON literal; see arrow_cell_encoding. |
| columns | array | yes | Column names in select-list order. |
| export | object | — | Present when export=true: metadata for the materialized oracle-export://{id} resource, readable only by the originating principal under the exact scope grant. |
| format | string | — | Present as arrow when oracle_query was requested with format=arrow. In that form rows is omitted and the governed page is carried in arrow_ipc_b64. |
| inlined | boolean | — | False when the result was materialized as an export resource (export=true) rather than inlined. |
| k | integer | yes | — |
| mask_certificate | object | — | Present when result masking transformed the page: proof-carrying per-column mask decisions plus the audit entry hash binding those decisions into the audit chain. |
| metric | string | yes | — |
| next_cursor | string|null | — | — |
| next_step | string | — | — |
| resource_link | object | — | Present when export=true: an MCP resource_link to the export, to fetch via resources/read. |
| row_count | integer | yes | — |
| rows | array | — | Serialized rows keyed by column name. NUMBER cells are strings unless numbers_as_float=true. |
| total_bytes | integer | — | — |
| truncated | boolean | — | — |
| used_index | boolean|null | yes | Null when this bounded read did not inspect an execution plan; never inferred from a requested index. |
No examples provided.
oracle_set_session_level Oracle Set Session Level ~186
Preview or apply a temporary session operating-level elevation within the active profile ceiling, or drop back to READ_ONLY.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | — | Optional action: preview, apply, drop, or status. Omit for preview/apply based on execute. |
| confirm | string | — | Confirmation token returned by preview. Required when execute=true raises the level. |
| confirmation_token | string | — | Alias for confirm. |
| execute | boolean | — | Default false previews the level change and returns a confirmation token. Set true with confirm to apply elevation. |
| level | string | — | Target level: READ_WRITE, DDL, or ADMIN. READ_ONLY drops any active elevation. |
| target_level | string | — | Alias for level. |
| token | string | — | Alias for confirm. |
| ttl_seconds | integer | — | Temporary elevation window in seconds (default 900, hard cap 3600). |
No output schema declared.
No examples provided.
oracle_switch_profile Oracle Switch Profile ~54
Reconnect this MCP server to another configured profile by name.
| Name | Type | Req | Description |
|---|---|---|---|
| db | string | — | Alias for profile for compatibility with older clients. Prefer profile. |
| profile | string | — | Configured profile name from oracle_list_profiles. |
No output schema declared.
No examples provided.
oracle_top_queries Oracle Top Queries ~220
Read-only top-SQL ranked by elapsed/CPU/buffer-gets/disk-reads over the free live cursor cache (V$SQLSTATS). Opt into historical AWR only when a Diagnostics Pack is licensed, else Statspack, else a structured-unavailable error — never invokes a paid pack unlicensed.
| Name | Type | Req | Description |
|---|---|---|---|
| historical | boolean | — | If true, use historical AWR (requires a licensed Diagnostics Pack) or Statspack instead of the live cursor cache. Defaults false (the free live source). |
| metric | string | — | Ranking metric. Defaults to elapsed. |
| min_pct_of_total | integer | — | Live source only: keep only statements consuming at least this percent of the total selected metric (e.g. 5 for the 5%-of-total view). |
| timeout_seconds | integer | — | Tightens the profile's total request deadline and each Oracle round-trip cap for this tool call. It cannot widen the profile ceiling. |
| top_n | integer | — | How many statements to return (1-100, default 20). |
No output schema declared.
No examples provided.
preview_sql Preview SQL ~31
Compatibility alias for oracle_preview_sql.
| Name | Type | Req | Description |
|---|---|---|---|
| sql | string | yes | SQL statement to classify. It is never executed. |
No output schema declared.
No examples provided.
query Query ~542
Compatibility alias for oracle_query.
| Name | Type | Req | Description |
|---|---|---|---|
| binds | array | — | Positional bind values for :1, :2 ... |
| cursor | string | — | Opaque pagination cursor from a prior truncated page (incremental fetch). |
| deep_decode | boolean | — | Opt into larger capped ARRAY/JSON/VECTOR structured decode limits. Default false keeps safe caps. |
| export | boolean | — | When true, materialize the bounded full result as an oracle-export://{id} resource and return a resource_link instead of inlining rows. The resource is bound to the originating principal and exact sc… |
| export_format | string | — | Export serialization when export=true: csv (default) or json. |
| limit | integer | — | Alias for max_rows for compatibility with older clients. Prefer max_rows. |
| max_blob_bytes | integer | — | Maximum BLOB bytes to inline per cell as base64. |
| max_col_width | integer | — | Compatibility text cap for ordinary text/raw columns. |
| max_lob_chars | integer | — | Maximum CLOB characters to inline per cell. |
| max_result_bytes | integer | — | Maximum compact JSON bytes across row objects in this page; excludes columns, pagination metadata, and the outer MCP envelope. |
| max_rows | integer | — | Maximum rows in this page (default 200, hard cap 5000). |
| max_structured_bytes | integer | — | Maximum compact JSON bytes decoded from one structured node. Values above the safe default require deep_decode=true. |
| max_structured_cells | integer | — | Maximum structured value nodes decoded from one structured cell. Values above the safe default require deep_decode=true. |
| max_structured_depth | integer | — | Maximum ARRAY/JSON recursion depth decoded inside one structured cell. Values above the safe default require deep_decode=true. |
| max_structured_rows | integer | — | Maximum direct entries decoded from one structured ARRAY/JSON node. Values above the safe default require deep_decode=true. |
| numbers_as_float | boolean | — | Emit numeric values as JSON numbers where possible. |
| sql | string | yes | A single read-only SELECT. Use :1, :2 ... for binds. |
| streaming | boolean | — | Deliver the result incrementally instead of one inline page. Over HTTP/SSE, scalar/self-contained rowsets emit one `event: row` frame per row; LOB, BFILE, and REF CURSOR values fall back to ordered c… |
| timeout_seconds | integer | — | Tightens the profile's total request deadline and each Oracle round-trip cap for this tool call. It cannot widen the profile ceiling. |
| Name | Type | Req | Description |
|---|---|---|---|
| arrow_cell_encoding | string | — | Arrow cell encoding used by arrow_ipc_b64. Decode each UTF-8 value as a JSON literal to recover the same value as JSON mode. |
| arrow_ipc_b64 | string | — | Base64 Apache Arrow IPC stream for the already-masked, audit-bound result page. Each UTF-8 cell is a JSON literal; see arrow_cell_encoding. |
| columns | array | yes | Column names in select-list order. |
| export | object | — | Present when export=true: metadata for the materialized oracle-export://{id} resource, readable only by the originating principal under the exact scope grant. |
| format | string | — | Present as arrow when oracle_query was requested with format=arrow. In that form rows is omitted and the governed page is carried in arrow_ipc_b64. |
| inlined | boolean | — | False when the result was materialized as an export resource (export=true) rather than inlined. |
| mask_certificate | object | — | Present when result masking transformed the page: proof-carrying per-column mask decisions plus the audit entry hash binding those decisions into the audit chain. |
| next_cursor | string|null | — | — |
| next_step | string | — | — |
| resource_link | object | — | Present when export=true: an MCP resource_link to the export, to fetch via resources/read. |
| row_count | integer | yes | — |
| rows | array | — | Serialized rows keyed by column name. NUMBER cells are strings unless numbers_as_float=true. |
| total_bytes | integer | — | — |
| truncated | boolean | — | — |
No examples provided.
read_patch_preview Read Patch Preview ~91
Compatibility helper for reading the last in-memory source patch preview returned by oracle_patch_source, patch_package, or patch_view.
| Name | Type | Req | Description |
|---|---|---|---|
| max_chars | integer | — | Maximum DDL preview characters to return for one object (default 100000). |
| name | string | — | Optional object name to inspect. If omitted, lists remembered patch previews for the active profile. |
| object_name | string | — | Alias for name. |
No output schema declared.
No examples provided.
switch_database Switch Database ~55
Compatibility alias for oracle_switch_profile; pass a configured profile name as db or profile.
| Name | Type | Req | Description |
|---|---|---|---|
| db | string | — | Configured profile name. Alias for profile. |
| profile | string | — | Configured profile name from oracle_list_profiles. |
No output schema declared.
No examples provided.