Labsco
MCP SERVER

Oracle Database MCP Server

by gcorroto

Query an Oracle database, read its table structures, and run multi-statement changes that roll back together when one fails.

Relational SQL DatabasesVerified
Summary
Read, write and transaction each get their own tool, so the blast radius is chosen at call time rather than parsed out of the SQL.

oracle_query is the SELECT path and oracle_execute is where INSERT, UPDATE, DELETE and CREATE live, which means a client can be handed the read path without the write path; oracle_transaction sits above them with rollbackOnError for changes that must land together or not at all. Everything is driven by SQL the caller supplies — oracle_list_tables and oracle_describe_table exist so that SQL can be written against the real schema. The configuration is the tell for what this targets: a client library directory and an old-cryptography switch are settings you need for an existing installation, not a new one.

What it is

An Oracle Database server exposing 7 tools: a SELECT path, a write path, a transaction path, table listing and description, a connection health check and a configuration readout.

What you get
  • Reads with the output shaped at call time: oracle_query runs a SELECT with maxRows capping the result, formatAsTable rendering it and showMetadata adding column information.
  • Writes kept on a separate tool: oracle_execute runs INSERT, UPDATE, DELETE, CREATE and comparable statements, with autoCommit deciding whether the change lands immediately and showDetails reporting what it touched.
  • Grouped changes: oracle_transaction takes a list of commands and runs them as a single transaction, with rollbackOnError deciding whether a failure undoes the whole set.
  • Schema discovery before writing SQL: oracle_list_tables lists tables for an owner, and oracle_describe_table returns a table's structure and columns.
  • The state of the connection itself: oracle_health_check reports whether the database connection is healthy, and oracle_info returns the database's configuration.
Requirements

A reachable Oracle instance and an account on it — ORACLE_HOST, ORACLE_PORT, ORACLE_SERVICE_NAME, ORACLE_USERNAME and ORACLE_PASSWORD — plus ORACLE_CLIENT_LIB_DIR for the Oracle client library location and ORACLE_OLD_CRYPTO for a server that needs the older cryptography.

Setup effort

One command plus a key — npx @grec0/mcp-oracle-db, then supply credentials