Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

oraclemcp

OCI · GHCR.IO/MUHDUR/ORACLEMCP:0.11.0

Engine-free, governed Oracle Database MCP server with a fail-closed SQL guard (unofficial).

0 this week 64 Trust /100

Last scanned (19 hours ago)

Scores higher than 99% of OCI servers

Category Databases

Trust breakdown (7 categories)

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 → Why this is hard to score →

Supply Chain Security0
  • No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.Unverified
  • Known CVEs could not be checked: this image's dependency list comes from an SBOM its publisher attached, which nothing verifies, so we will not report it as a clean result.Unverified
  • Install-script risk not yet assessed.Unverified
  • Dependency health could not be checked: this image's dependency list comes from an SBOM its publisher attached. It names packages and versions but not whether each is deprecated, still maintained or linked to its source, so there is nothing we can fairly grade.Unverified
Provenance & Transparency87
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to MuhDur/oraclemcp). View diagnostics → Pass
  • License check failed: the license ((Apache-2.0 OR MIT) AND CDLA-Permissive-2.0) isn't a recognized OSI-approved license. See how to fix → Fail
  • Actively maintained (last published 47 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability83
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).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 Management100
  • No destabilizing schema changes in the last 30 days.Pass
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
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 43 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 45 captured unit(s) of tool text and found none that tries to manipulate the model reading it.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.

Changelog

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.

  • 1 Nov 26 0
    • Stability: 0.97 → pass security
  • 31 Oct 26 0
    • Stability: pass → 0.97 functional
  • 25 Oct 26 0
    • Stability: 0.97 → pass security
  • 24 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

  • 23 Oct 26 −1
    • Stability: pass → 0.93 functional
  • 17 Oct 26 0
    • Stability: 0.97 → pass security
  • 16 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

  • 13 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

Diagnostics

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 4 Nov 2026 · Analysed oci/ghcr.io/muhdur/oraclemcp:0.11.0

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem oci
Reason Verified
Discovered via OCI referrers API
Source repo MuhDur/oraclemcp
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/MuhDur/oraclemcp/.github/workflows/release.yml@refs/tags/v0.11.0
Rekor log index 2880168514
Predicate type SLSA build provenance https://slsa.dev/provenance/v1
Subject digest sha256:6e92af129b7682f68a9ea045d0dab417417cd5be98bec66e884e3644eaa5b361

Background: How many MCP packages publish verified provenance →

MCP tools · 43 exposed · ~6,807 tokens

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. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
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 ~59

Compatibility alias for oracle_describe_index.

NameTypeReqDescription
index_namestring–Index name. May be OWNER.INDEX_NAME.
namestring–Alias for index_name.
ownerstring–Optional schema owner; defaults to current schema.

No output schema declared.

No examples provided.

describe_table ~98

Compatibility alias for oracle_describe; returns columns and constraints.

NameTypeReqDescription
limitinteger–Alias for max_rows.
max_rowsinteger–Maximum columns and constraints returned.
namestring–Alias for table_name.
ownerstring–Optional schema owner; defaults to current schema.
tablestring–Alias for table_name.
table_namestring–Table or view name. May be OWNER.TABLE.

No output schema declared.

No examples provided.

describe_trigger ~59

Compatibility alias for oracle_describe_trigger.

NameTypeReqDescription
namestring–Alias for trigger_name.
ownerstring–Optional schema owner; defaults to current schema.
trigger_namestring–Trigger name. May be OWNER.TRIGGER_NAME.

No output schema declared.

No examples provided.

describe_view ~59

Compatibility alias for oracle_describe_view.

NameTypeReqDescription
namestring–Alias for view_name.
ownerstring–Optional schema owner; defaults to current schema.
view_namestring–View name. May be OWNER.VIEW_NAME.

No output schema declared.

No examples provided.

get_clob ~151

Compatibility alias for oracle_read_clob.

NameTypeReqDescription
clob_colstring–CLOB/NCLOB/text column name.
clob_columnstring–Alias for clob_col.
max_charsinteger–Maximum characters to return.
ownerstring–Optional schema owner; defaults to current schema.
pk_colstring–Key column name.
pk_columnstring–Alias for pk_col.
pk_valstring–Key value bound as :1.
pk_valuestring–Alias for pk_val.
tablestring–Table or view name. May be OWNER.TABLE.
table_namestring–Alias for table.

No output schema declared.

No examples provided.

get_ddl ~82

Compatibility alias for oracle_get_ddl; long DDL is explicitly marked partial rather than silently truncated.

NameTypeReqDescription
namestring–Alias for object_name.
object_namestring–Object name. May be OWNER.NAME.
object_typestringyesAllowlisted object type.
ownerstring–Optional schema owner; defaults to current schema.

No output schema declared.

No examples provided.

get_errors ~80

Compatibility alias for oracle_compile_errors.

NameTypeReqDescription
limitinteger–Alias for max_rows.
max_rowsinteger–Maximum compiler diagnostics returned.
namestring–Alias for object_name.
object_namestring–Optional object name. May be OWNER.NAME.
ownerstring–Optional schema owner; defaults to current schema.

No output schema declared.

No examples provided.

get_object_source ~128

Compatibility alias for oracle_get_source. Omit object_type to return every visible source variant for the object name.

NameTypeReqDescription
max_charsinteger–Maximum source characters to return.
namestring–Alias for object_name.
object_namestring–Object name. May be OWNER.NAME.
object_typestring–Optional source type: PACKAGE, PACKAGE_BODY, PROCEDURE, FUNCTION, TRIGGER, TYPE, or TYPE_BODY. When omitted, all visible source types for this name are returned.
ownerstring–Optional schema owner; defaults to current schema.

No output schema declared.

No examples provided.

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.

NameTypeReqDescription
cursorstring–Opaque continuation cursor returned by a truncated get_schema page.
limitinteger–Maximum objects to return (default 100, hard cap 250).
max_rowsinteger–Alias for limit.
name_likestring–Optional SQL LIKE pattern for object_name.
object_typestring–Optional object type filter. Supplying it overrides the compact TABLE/VIEW/PACKAGE default projection.
ownerstring–Optional schema owner; omit for current schema, or use * for all accessible schemas.

No output schema declared.

No examples provided.

list_objects ~88

Compatibility alias for oracle_schema_inspect.

NameTypeReqDescription
limitinteger–Maximum objects to return.
max_rowsinteger–Alias for limit.
name_likestring–Optional SQL LIKE pattern for object_name.
object_typestring–Optional object type filter.
ownerstring–Optional schema owner; omit for current schema, or use * for all accessible schemas.

No output schema declared.

No examples provided.

list_schemas ~55

Compatibility alias for oracle_list_schemas.

NameTypeReqDescription
limitinteger–Alias for max_rows.
max_rowsinteger–Maximum schemas to return.
name_likestring–Optional SQL LIKE pattern for schema names.

No output schema declared.

No examples provided.

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.

NameTypeReqDescription
detail_levelstring–compact (default) omits tool summaries and schemas; full returns the complete descriptor report.

No output schema declared.

No examples provided.

oracle_compile_errors ~133

Retrieve compile errors for the current schema, an owner, or one object (ALL_ERRORS).

NameTypeReqDescription
limitinteger–Alias for max_rows. Prefer max_rows.
max_rowsinteger–Maximum compile errors to return (default 200, hard cap 5000).
namestring–Optional object name. May be OWNER.NAME. Omit to list all compile errors for the owner/current schema.
object_namestring–Alias for name for compatibility with older clients. Prefer name.
ownerstring–Optional schema owner (case-insensitive). Defaults to current schema when available.

No output schema declared.

No examples provided.

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 ~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.

NameTypeReqDescription
health_typestring–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_secondsinteger–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 ~135

Describe a table/view's columns and constraint metadata.

NameTypeReqDescription
limitinteger–Alias for max_rows. Prefer max_rows.
max_rowsinteger–Maximum constraint rows to return (default 200, hard cap 5000).
namestring–Alias for table. Prefer table.
ownerstring–Optional schema owner (case-insensitive). Defaults to current schema when available.
tablestring–Table or view name. May be OWNER.TABLE. Required unless table_name or name is supplied.
table_namestring–Alias for table for compatibility with older clients. Prefer table.

No output schema declared.

No examples provided.

oracle_describe_index ~84

Describe one index's metadata, indexed columns, and function-based expressions.

NameTypeReqDescription
index_namestring–Alias for name for compatibility with older clients. Prefer name.
namestring–Index name (case-insensitive). Required unless index_name is supplied.
ownerstring–Optional schema owner (case-insensitive). Defaults to current schema when available.

No output schema declared.

No examples provided.

oracle_describe_trigger ~86

Describe one trigger's timing, event, target table, status, and body.

NameTypeReqDescription
namestring–Trigger name (case-insensitive). Required unless trigger_name is supplied.
ownerstring–Optional schema owner (case-insensitive). Defaults to current schema when available.
trigger_namestring–Alias for name for compatibility with older clients. Prefer name.

No output schema declared.

No examples provided.

oracle_describe_view ~79

Describe one view's definition metadata and columns.

NameTypeReqDescription
namestring–View name (case-insensitive). Required unless view_name is supplied.
ownerstring–Optional schema owner (case-insensitive). Defaults to current schema when available.
view_namestring–Alias for name for compatibility with older clients. Prefer name.

No output schema declared.

No examples provided.

oracle_diff ~531

Diff one proven read-only SELECT across two Oracle SCNs, or across two databases.

NameTypeReqDescription
bindsarray–Positional bind values (string | number | bool | null) for :1, :2 …
db_astring–Alias for profile_a.
db_bstring–Alias for profile_b.
keyarray–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_columnsarray–Alias for key.
keysarray–Alias for key.
max_blob_bytesinteger–Maximum BLOB bytes to inline per cell as base64 (default 1048576).
max_col_widthinteger–Compatibility text cap for ordinary text/raw columns. Truncated values are returned as { value, truncated, char_length }.
max_lob_charsinteger–Maximum CLOB characters to inline per cell (default 32768).
max_result_bytesinteger–Maximum compact JSON bytes per compared side (default 10485760, hard cap 26214400).
max_rowsinteger–Maximum rows compared from each side (default 200, hard cap 5000).
numbers_as_floatboolean–Emit numeric values as JSON numbers where possible. Default false preserves Oracle NUMBER losslessly as strings.
profile_astring–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_bstring–Connection profile for side B. See profile_a.
scn_ainteger–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_binteger–System change number for side B. See scn_a.
sqlstringyesA 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_secondsinteger–Tightens the profile's total request deadline and each Oracle round-trip cap for this tool call. It cannot widen the profile ceiling.
NameTypeReqDescription
addedarrayyesRows present on side B but not on side A.
changedarrayyesKey-aligned row changes; empty for keyless diffs.
columnsarrayyesColumn names in the compared query shape.
key_columnsarrayyesKey columns used for row alignment. Empty means keyless multiset diff.
keyedbooleanyesTrue when rows were aligned by explicit/inferred key columns and changed[] is meaningful.
mask_certificatesobject–Present when result masking transformed either flashback page: before/after mask-decision certificates with audit entry hashes.
removedarrayyesRows present on side A but not on side B.
row_count_aintegeryes–
row_count_bintegeryes–
source_aobject–Where side A was read from.
source_bobject–Where side B was read from.
truncatedbooleanyesTrue when either compared page hit a row/byte cap before all rows were compared.

No examples provided.

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.

NameTypeReqDescription
namestring–Object name. May be OWNER.NAME. Required unless object_name is supplied.
object_namestring–Alias for name for compatibility with older clients. Prefer name.
object_typestringyesAllowlisted type, e.g. TABLE, VIEW, PACKAGE, PACKAGE_BODY, PROCEDURE, FUNCTION, TRIGGER, TYPE, SEQUENCE, INDEX, SYNONYM.
ownerstring–Optional schema owner (case-insensitive). Defaults to current schema when available.

No output schema declared.

No examples provided.

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.

NameTypeReqDescription
from_lineinteger–Optional first ALL_SOURCE line to return, inclusive. Pair with oracle_search_source's LINE result.
max_charsinteger–Maximum source characters to return (default 1000000).
namestring–Object name. May be OWNER.NAME. Required unless object_name is supplied.
object_namestring–Alias for name for compatibility with older clients. Prefer name.
object_typestring–Optional supported source type: PACKAGE, PACKAGE_BODY, PROCEDURE, FUNCTION, TRIGGER, TYPE, TYPE_BODY. When omitted, all visible source types for this name are returned.
ownerstring–Optional schema owner (case-insensitive). Defaults to current schema when available.
to_lineinteger–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 ~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 ~91

List schemas that own objects visible to this session, optionally filtered by name.

NameTypeReqDescription
limitinteger–Alias for max_rows for compatibility with older clients. Prefer max_rows.
max_rowsinteger–Maximum schemas to return (default 200, hard cap 5000).
name_likestring–Optional SQL LIKE pattern for schema names (case-insensitive), e.g. APP%.

No output schema declared.

No examples provided.

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.

NameTypeReqDescription
cursorstring–Opaque continuation cursor returned by a truncated orient response. It is bound to this owner, include selection, fleet flag, and profile.
fleetboolean–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…
includearray–Optional sections to return. Defaults to every section; ddl selects the recent_ddl field.
limitinteger–Alias for max_rows.
max_rowsinteger–Maximum rows for each selected orientation list (default 100). The response sets truncated=true and returns next_cursor when another bounded page may exist.
ownerstring–Optional schema owner (case-insensitive). Omit or use * for all visible schemas.

No output schema declared.

No examples provided.

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_*.

NameTypeReqDescription
max_pointsinteger–Maximum AWR snapshot observations to return (default 100, capped at 1000).
sql_idstringyesThe 13-character Oracle SQL ID to inspect.
timeout_secondsinteger–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 ~136

Inspect PL/Scope identifier and SQL statement metadata for one PL/SQL object when ALL_IDENTIFIERS/ALL_STATEMENTS are populated.

NameTypeReqDescription
limitinteger–Alias for max_rows. Prefer max_rows.
max_rowsinteger–Maximum identifiers and SQL statements per array (default 200, hard cap 5000).
namestring–Object name. May be OWNER.NAME. Required unless object_name is supplied.
object_namestring–Alias for name for compatibility. Prefer name.
ownerstring–Optional schema owner (case-insensitive). Defaults to current schema when available.

No output schema declared.

No examples provided.

oracle_preview_sql ~45

Classify a SQL statement and report whether it would pass the active profile/session gate without executing it.

NameTypeReqDescription
sqlstringyesSQL statement to classify. It is never executed.

No output schema declared.

No examples provided.

oracle_query ~854

Run a read-only SELECT with positional binds; paginated and row/byte capped.

NameTypeReqDescription
allow_plan_table_writeboolean–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_ofobject–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…
bindsarray–Positional bind values (string | number | bool | null) for :1, :2 …
cursorstring–Opaque pagination cursor from a prior truncated page (incremental fetch). Resuming with it yields the next page byte-identically.
deep_decodeboolean–Opt into larger capped ARRAY/JSON/VECTOR structured decode limits. Default false keeps safe caps.
formatstring–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.
limitinteger–Alias for max_rows for compatibility with older clients. Prefer max_rows.
max_blob_bytesinteger–Maximum BLOB bytes to inline per cell as base64 (default 1048576).
max_col_widthinteger–Compatibility text cap for ordinary text/raw columns. Truncated values are returned as { value, truncated, char_length }.
max_lob_charsinteger–Maximum CLOB characters to inline per cell (default 32768).
max_query_costinteger–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_bytesinteger–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_rowsinteger–Maximum rows in this page / streamed chunk (default 200, hard cap 5000).
max_structured_bytesinteger–Maximum compact JSON bytes decoded from one structured node. Values above the safe default require deep_decode=true.
max_structured_cellsinteger–Maximum structured value nodes decoded from one structured cell. Values above the safe default require deep_decode=true.
max_structured_depthinteger–Maximum ARRAY/JSON recursion depth decoded inside one structured cell. Values above the safe default require deep_decode=true.
max_structured_rowsinteger–Maximum direct entries decoded from one structured ARRAY/JSON node. Values above the safe default require deep_decode=true.
numbers_as_floatboolean–Emit numeric values as JSON numbers where possible. Default false preserves Oracle NUMBER losslessly as strings.
read_only_standbyboolean–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.
sqlstringyesA single read-only SELECT. Use :1, :2 … for binds.
streamingboolean–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_secondsinteger–Tightens the profile's total request deadline and each Oracle round-trip cap for this tool call. It cannot widen the profile ceiling.
NameTypeReqDescription
arrow_cell_encodingstring–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_b64string–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.
columnsarrayyesColumn names in select-list order.
exportobject–Present when export=true: metadata for the materialized oracle-export://{id} resource, readable only by the originating principal under the exact scope grant.
formatstring–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.
inlinedboolean–False when the result was materialized as an export resource (export=true) rather than inlined.
mask_certificateobject–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_cursorstring|null––
next_stepstring––
resource_linkobject–Present when export=true: an MCP resource_link to the export, to fetch via resources/read.
row_countintegeryes–
rowsarray–Serialized rows keyed by column name. NUMBER cells are strings unless numbers_as_float=true.
total_bytesinteger––
truncatedboolean––

No examples provided.

oracle_read_clob ~230

Read one CLOB/NCLOB/text value by key with a character cap.

NameTypeReqDescription
clob_colstring–Alias for clob_column. Prefer clob_column.
clob_columnstring–CLOB/NCLOB/text column name (case-insensitive). Required unless clob_col is supplied.
max_charsinteger–Maximum characters to return (default 1000000).
ownerstring–Optional schema owner (case-insensitive). Defaults to current schema when available.
pk_colstring–Alias for pk_column. Prefer pk_column.
pk_columnstring–Key column name (case-insensitive). Required unless pk_col is supplied.
pk_valstring–Alias for pk_value. Prefer pk_value.
pk_valuestring–Key value bound as :1. Required unless pk_val is supplied.
tablestring–Table or view name. May be OWNER.TABLE. Required unless table_name is supplied.
table_namestring–Alias for table for compatibility with older clients. Prefer table.

No output schema declared.

No examples provided.

oracle_sample_rows ~129

Read the first rows of a table or view with a hard row cap.

NameTypeReqDescription
limitinteger–Alias for max_rows for compatibility with older clients. Prefer max_rows.
max_rowsinteger–Maximum rows to return (default 50, hard cap 1000).
ownerstring–Optional schema owner (case-insensitive). Defaults to current schema when available.
tablestring–Table or view name. May be OWNER.TABLE. Required unless table_name is supplied.
table_namestring–Alias for table for compatibility with older clients. Prefer table.

No output schema declared.

No examples provided.

oracle_schema_inspect ~141

List objects in the current schema, one owner, or all accessible schemas, with optional type/name filters.

NameTypeReqDescription
limitinteger–Alias for max_rows for compatibility with older clients. Prefer max_rows.
max_rowsinteger–Maximum objects to return (default 500, hard cap 5000).
name_likestring–Optional SQL LIKE pattern for object_name, e.g. EMP%.
object_typestring–Optional object type filter, e.g. TABLE, VIEW, PACKAGE.
ownerstring–Optional schema owner (case-insensitive). Omit for current schema; use * for all accessible schemas.

No output schema declared.

No examples provided.

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.

NameTypeReqDescription
detailstring–Alias for detail_level.
detail_levelstring–Enrichment level. names=identifiers only; summary=+column count + comments + the optimizer ALL_TABLES.NUM_ROWS estimate (NOT COUNT(*)); standard (default)=+columns; full=+indexes.
fleetboolean–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…
limitinteger–Alias for max_rows for compatibility with older clients. Prefer max_rows.
max_rowsinteger–Maximum objects to return (default 100, hard cap 5000).
name_likestring–Optional SQL LIKE pattern for object_name, e.g. EMP%.
object_typestring–Optional object type filter, e.g. TABLE, VIEW, PACKAGE.
ownerstring–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 ~209

Full-text search across ALL_SOURCE for a needle (row- and line-capped).

NameTypeReqDescription
limitinteger–Alias for max_rows for compatibility with older clients. Prefer max_rows.
max_line_charsinteger–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_rowsinteger–Maximum matching source lines to return (default 200, hard cap 5000).
name_likestring–Optional SQL LIKE pattern for source object names, e.g. EMP%.
needlestringyesCase-insensitive substring to find in source text.
object_typestring–Optional source type filter: PACKAGE, PACKAGE_BODY, PROCEDURE, FUNCTION, TRIGGER, TYPE, TYPE_BODY.
ownerstring–Optional schema owner (case-insensitive). Defaults to current schema; use * for all visible source.

No output schema declared.

No examples provided.

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.

NameTypeReqDescription
filterobject–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.
kinteger–Top-k result count (default 10, hard cap 1000).
metricstring–VECTOR_DISTANCE metric (default COSINE).
overobjectyesThe local table and VECTOR column to search. Identifiers must be simple unquoted names and are live-resolved before execution.
query_textstring–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_vectorarray–Numeric query vector. Exactly one of query_vector or query_text is required in this tool generation.
timeout_secondsinteger–Tightens the profile's total request deadline and each Oracle round-trip cap for this tool call. It cannot widen the profile ceiling.
NameTypeReqDescription
arrow_cell_encodingstring–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_b64string–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.
columnsarrayyesColumn names in select-list order.
exportobject–Present when export=true: metadata for the materialized oracle-export://{id} resource, readable only by the originating principal under the exact scope grant.
formatstring–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.
inlinedboolean–False when the result was materialized as an export resource (export=true) rather than inlined.
kintegeryes–
mask_certificateobject–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.
metricstringyes–
next_cursorstring|null––
next_stepstring––
resource_linkobject–Present when export=true: an MCP resource_link to the export, to fetch via resources/read.
row_countintegeryes–
rowsarray–Serialized rows keyed by column name. NUMBER cells are strings unless numbers_as_float=true.
total_bytesinteger––
truncatedboolean––
used_indexboolean|nullyesNull when this bounded read did not inspect an execution plan; never inferred from a requested index.

No examples provided.

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.

NameTypeReqDescription
actionstring–Optional action: preview, apply, drop, or status. Omit for preview/apply based on execute.
confirmstring–Confirmation token returned by preview. Required when execute=true raises the level.
confirmation_tokenstring–Alias for confirm.
executeboolean–Default false previews the level change and returns a confirmation token. Set true with confirm to apply elevation.
levelstring–Target level: READ_WRITE, DDL, or ADMIN. READ_ONLY drops any active elevation.
target_levelstring–Alias for level.
tokenstring–Alias for confirm.
ttl_secondsinteger–Temporary elevation window in seconds (default 900, hard cap 3600).

No output schema declared.

No examples provided.

oracle_switch_profile ~54

Reconnect this MCP server to another configured profile by name.

NameTypeReqDescription
dbstring–Alias for profile for compatibility with older clients. Prefer profile.
profilestring–Configured profile name from oracle_list_profiles.

No output schema declared.

No examples provided.

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.

NameTypeReqDescription
historicalboolean–If true, use historical AWR (requires a licensed Diagnostics Pack) or Statspack instead of the live cursor cache. Defaults false (the free live source).
metricstring–Ranking metric. Defaults to elapsed.
min_pct_of_totalinteger–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_secondsinteger–Tightens the profile's total request deadline and each Oracle round-trip cap for this tool call. It cannot widen the profile ceiling.
top_ninteger–How many statements to return (1-100, default 20).

No output schema declared.

No examples provided.

preview_sql ~31

Compatibility alias for oracle_preview_sql.

NameTypeReqDescription
sqlstringyesSQL statement to classify. It is never executed.

No output schema declared.

No examples provided.

query ~542

Compatibility alias for oracle_query.

NameTypeReqDescription
bindsarray–Positional bind values for :1, :2 ...
cursorstring–Opaque pagination cursor from a prior truncated page (incremental fetch).
deep_decodeboolean–Opt into larger capped ARRAY/JSON/VECTOR structured decode limits. Default false keeps safe caps.
exportboolean–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_formatstring–Export serialization when export=true: csv (default) or json.
limitinteger–Alias for max_rows for compatibility with older clients. Prefer max_rows.
max_blob_bytesinteger–Maximum BLOB bytes to inline per cell as base64.
max_col_widthinteger–Compatibility text cap for ordinary text/raw columns.
max_lob_charsinteger–Maximum CLOB characters to inline per cell.
max_result_bytesinteger–Maximum compact JSON bytes across row objects in this page; excludes columns, pagination metadata, and the outer MCP envelope.
max_rowsinteger–Maximum rows in this page (default 200, hard cap 5000).
max_structured_bytesinteger–Maximum compact JSON bytes decoded from one structured node. Values above the safe default require deep_decode=true.
max_structured_cellsinteger–Maximum structured value nodes decoded from one structured cell. Values above the safe default require deep_decode=true.
max_structured_depthinteger–Maximum ARRAY/JSON recursion depth decoded inside one structured cell. Values above the safe default require deep_decode=true.
max_structured_rowsinteger–Maximum direct entries decoded from one structured ARRAY/JSON node. Values above the safe default require deep_decode=true.
numbers_as_floatboolean–Emit numeric values as JSON numbers where possible.
sqlstringyesA single read-only SELECT. Use :1, :2 ... for binds.
streamingboolean–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_secondsinteger–Tightens the profile's total request deadline and each Oracle round-trip cap for this tool call. It cannot widen the profile ceiling.
NameTypeReqDescription
arrow_cell_encodingstring–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_b64string–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.
columnsarrayyesColumn names in select-list order.
exportobject–Present when export=true: metadata for the materialized oracle-export://{id} resource, readable only by the originating principal under the exact scope grant.
formatstring–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.
inlinedboolean–False when the result was materialized as an export resource (export=true) rather than inlined.
mask_certificateobject–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_cursorstring|null––
next_stepstring––
resource_linkobject–Present when export=true: an MCP resource_link to the export, to fetch via resources/read.
row_countintegeryes–
rowsarray–Serialized rows keyed by column name. NUMBER cells are strings unless numbers_as_float=true.
total_bytesinteger––
truncatedboolean––

No examples provided.

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.

NameTypeReqDescription
max_charsinteger–Maximum DDL preview characters to return for one object (default 100000).
namestring–Optional object name to inspect. If omitted, lists remembered patch previews for the active profile.
object_namestring–Alias for name.

No output schema declared.

No examples provided.

switch_database ~55

Compatibility alias for oracle_switch_profile; pass a configured profile name as db or profile.

NameTypeReqDescription
dbstring–Configured profile name. Alias for profile.
profilestring–Configured profile name from oracle_list_profiles.

No output schema declared.

No examples provided.

Install

How do I install the oraclemcp MCP server?

oraclemcp runs locally as a container image, launched with docker run --rm -i ghcr.io/muhdur/oraclemcp:0.11.0. Ready-made configuration for Claude, Cursor, VS Code, Codex and 3 more is on this page, copied from each client's own documentation.

oci · ghcr.io/muhdur/oraclemcp:0.11.0

# add to Claude Code
claude mcp add muhdur-oraclemcp -- docker run --rm -i ghcr.io/muhdur/oraclemcp:0.11.0
Common questions

What is the oraclemcp MCP server?

oraclemcp is an MCP server listed in the public MCP registry as io.github.MuhDur/oraclemcp. Engine-free, governed Oracle Database MCP server with a fail-closed SQL guard (unofficial). This page covers its container image (ghcr.io/muhdur/oraclemcp:0.11.0).

Is the oraclemcp MCP server safe to use?

oraclemcp scores 64 out of 100 on VerifyMCP. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the oraclemcp MCP server expose?

oraclemcp exposes 43 tools: oracle_capabilities, oracle_list_profiles, oracle_connection_info, oracle_switch_profile, oracle_set_session_level, and 38 more. Their descriptions and schemas cost roughly 6,807 tokens of context every time the server is loaded.

Is the oraclemcp MCP server still maintained?

oraclemcp is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.