mcp-oracle mcp
v1.1.0 · MCP Tool · database · registry.pascalai.org
Oracle Database 11g+ and Oracle Cloud via FireDAC native driver. Operations: query (SELECT → rows JSON), execute (DML/DDL), execute_tx (transaction), list_tables, describe (columns), list_databases (schemas). Connection: host + port + database (service name or TNS alias).
oracleoracledbdatabasesqlplsqlfiredacoracle-cloud
Input Parameters
| Parameter | Type | Description |
| operationrequired |
string |
Operation to perform. One of: query, execute, execute_tx, list_tables, describe, list_databases. |
| hostrequired |
string |
Oracle host or IP address (e.g. 'oraserver', '192.168.1.20'). Not needed for TNS alias. |
| portoptional |
integer |
Oracle listener port. Default: 1521. Default: 1521. |
| databaserequired |
string |
Oracle service name (e.g. 'ORCL', 'XEPDB1'), SID, or TNS alias. For Oracle Cloud use the service name from tnsnames.ora. |
| usernameoptional |
string |
Oracle username. Also used as schema owner for list_tables if schema not specified. |
| passwordoptional |
string |
Oracle password. |
| sQLoptional |
string |
SQL or PL/SQL statement. Required for query and execute operations. |
| sQLListoptional |
string |
JSON array string of SQL statements for execute_tx. All executed in a single transaction. |
| tableoptional |
string |
Table name. Required for describe operation. |
| schemaoptional |
string |
Schema/owner filter for list_tables and describe (e.g. 'HR', 'SCOTT'). Defaults to current user. |
| maxRowsoptional |
integer |
Maximum rows to return for query. Default: 100. Default: 100. |
| timeoutoptional |
integer |
Query timeout in seconds. Default: 30. Default: 30. |
Output Fields
| Field | Type | Description |
| ok |
boolean |
|
| rows |
array[object] |
|
| affected |
integer |
|
| tables |
array[object] |
|
| columns |
array[object] |
|
| databases |
array[string] |
|
| error |
string |
|
Examples
Query employees from HR schema
// Input
{
"operation": "query",
"host": "oraserver",
"database": "ORCL",
"username": "hr",
"password": "hr",
"sQL": "SELECT employee_id, last_name, department_id FROM employees WHERE rownum <= 10"
}
// Output
{
"ok": true,
"rows": [
{
"EMPLOYEE_ID": 100,
"LAST_NAME": "King"
}
]
}
Execute PL/SQL block
// Input
{
"operation": "execute",
"host": "oraserver",
"database": "ORCL",
"username": "hr",
"password": "hr",
"sQL": "BEGIN UPDATE employees SET salary = salary * 1.1 WHERE department_id = 10; COMMIT; END;"
}
// Output
{
"ok": true,
"affected": 3
}
List tables in HR schema
// Input
{
"operation": "list_tables",
"host": "oraserver",
"database": "ORCL",
"username": "hr",
"password": "hr",
"schema": "HR"
}
// Output
{
"ok": true,
"tables": [
{
"TABLE_NAME": "EMPLOYEES"
},
{
"TABLE_NAME": "DEPARTMENTS"
}
]
}
Describe EMPLOYEES table
// Input
{
"operation": "describe",
"host": "oraserver",
"database": "ORCL",
"username": "hr",
"password": "hr",
"table": "EMPLOYEES",
"schema": "HR"
}
// Output
{
"ok": true,
"columns": [
{
"COLUMN_NAME": "EMPLOYEE_ID",
"DATA_TYPE": "NUMBER"
}
]
}
Install & Discovery
Install
ppm install mcp-oracle
Get JSON Schema
GET /v1/packages/mcp-oracle/1.1.0/schema
Discover by keyword
GET /v1/mcp/discover?q=oracle
Discovery hint: Install with ppm install mcp-oracle or invoke remotely via POST /v1/invoke/mcp-oracle on the MCP Service.