Oracle MCP server

Prebuilt SnapLogic agentic-tool pipelines that let an LLM read from and act on Oracle, callable as MCP tools via Pipeline Execute. Published in the SnapLogic pattern catalog.

Overview

This tool pack gives an agent direct SQL access to an Oracle database: run read-only SELECT queries, execute data-changing SQL statements and PL/SQL blocks, and insert or update rows from a structured field map. Use the read tool to explore the schema and the write tools to make changes.

For setup instructions, see SnapLogic MCP Server quickstart.

Example Prompts

  • What tables exist in my Oracle schema?
  • Show me the columns and data types on the EMPLOYEES table
  • List the ten highest-paid employees with their department names
  • How many orders were placed per month last year?
  • Find any customers in the CUSTOMERS table with no email address on file
  • Give everyone in department 50 a five percent raise
  • Delete the test orders created before January this year
  • Call the update_customer_status procedure for customer 42 with status 'premium'
  • Merge the staging rows into the CUSTOMERS table
  • Add a LAST_REVIEWED date column to the EMPLOYEES table

Tools

Tool Name Functions
OracleExecuteRead Run a read-only SQL query against Oracle and return the rows.
OracleExecuteWrite Run a data-changing SQL statement or PL/SQL block against Oracle.
OracleInsertRows Insert a row into an Oracle table from a field map.
OracleInsertRowsChild Oracle Insert Rows Child
OracleUpdateRows Update rows in an Oracle table matching a condition, from a field map.
OracleUpdateRowsChild Oracle Update Rows Child

Set up the MCP Server tools

  1. Download oracle_tools.zip.
  2. In SnapLogic Designer, open the target project space (or create one), then choose Import Project / Import Pipelines and select the downloaded oracle_tools.zip. Designer unpacks each pipeline into the project.
  3. Attach the required account to the connectivity snaps (see Connection Setup).
  4. Expose the project as an MCP server — each pipeline becomes a tool named after its label. New to this? Start with the MCP quickstart, then use the MCP Server Pipeline Builder to generate the server from the imported pipelines.

Configure account

Attach an Oracle Database account to the Oracle snaps in Designer after import.

These pipelines ship without credentials by design — attach a valid account in Designer before the tools will execute.

See the SnapLogic account documentation for this connector: Configuring Oracle Account.

Important: These pipelines ship without credentials by design — attach a valid account in Designer before the tools will execute. Credentials live in the SnapLogic account store, never in the pipeline JSON.

OracleExecuteRead

Runs any read-only SQL statement against the connected Oracle database and returns the result rows. Use it for SELECT queries, joins, aggregations, and schema discovery queries against Oracle's data dictionary.

Parameter Type Default Description
sql_statement* string

The full read-only SQL statement to execute, e.g. SELECT TABLE_NAME, TABLESPACE_NAME FROM USER_TABLES.

* Required parameter.

Try asking:

  • What tables exist in my Oracle schema?
  • Show me the columns and data types on the EMPLOYEES table
  • List the ten highest-paid employees with their department names
  • How many orders were placed per month last year?
  • Find any customers in the CUSTOMERS table with no email address on file

OracleExecuteWrite

Runs a data-changing SQL statement or PL/SQL block against the connected Oracle database, covering INSERT, UPDATE, DELETE, MERGE, DDL, and stored procedure calls. Use it for complex changes that the structured insert and update tools cannot express.

Parameter Type Default Description
sql_statement* string

The full data-changing SQL statement or PL/SQL block to execute, e.g. BEGIN update_customer_status(42, 'premium'); END;

* Required parameter.

Try asking:

  • Give everyone in department 50 a five percent raise
  • Delete the test orders created before January this year
  • Call the update_customer_status procedure for customer 42 with status 'premium'
  • Merge the staging rows into the CUSTOMERS table
  • Add a LAST_REVIEWED date column to the EMPLOYEES table

OracleInsertRows

Inserts a row into an Oracle table from a field map, without requiring the agent to write SQL. Use it for straightforward single-row inserts into a known table.

Parameter Type Default Description
table_name* string

Oracle table to insert into, e.g. EMPLOYEES.

schema_name string

Schema owning the table, e.g. HR. Leave blank to use the account's default schema.

record* object

Field map of the row to insert, keyed by column name, e.g. {FIRST_NAME, LAST_NAME, SALARY}.

* Required parameter.

Try asking:

  • Add a new employee to HR.EMPLOYEES: John Smith, salary 5000
  • Insert a row into the CUSTOMERS table for Acme Ltd in London
  • Create a product record in the SALES schema with SKU AB-1024 and price 19.99
  • Log a new entry in the AUDIT_LOG table with today's date and the action 'export'

OracleInsertRowsChild

Lets the LLM oracle insert rows child, exposed as an MCP tool callable via Pipeline Execute.

Parameter Type Default Description
table_name string EMPLOYEES

schema_name string

OracleUpdateRows

Updates rows in an Oracle table that match a condition, using a field map of the columns and values to change; no SQL required. Use it for targeted edits to known rows, and fall back to OracleExecuteWrite for complex updates spanning multiple tables.

Parameter Type Default Description
table_name* string

Oracle table to update, e.g. EMPLOYEES.

schema_name string

Schema owning the table, e.g. HR. Leave blank to use the account's default schema.

update_condition* string

WHERE-clause condition selecting the rows to update, e.g. EMPLOYEE_ID = 42.

record* object

Field map of columns to set and their new values, e.g. {SALARY: 7500, JOB_ID: 'SA_REP'}.

* Required parameter.

Try asking:

  • Set employee 42's salary to 7500 and move them to job SA_REP
  • Update the CUSTOMERS row for account 1001 with the new billing address
  • Mark every order with status 'PENDING' older than 30 days as 'EXPIRED'
  • Change the department of employee 305 in the HR schema to 60

OracleUpdateRowsChild

Lets the LLM oracle update rows child, exposed as an MCP tool callable via Pipeline Execute.

Parameter Type Default Description
table_name string EMPLOYEES

schema_name string

update_condition string EMPLOYEE_ID = 1