Official Oracle MCP server via SQLcl
## Oracle Database MCP Server: Enterprise Relational Database The **Oracle Database MCP Server** integrates Oracle Database into Google Antigravity, enabling enterprise database operations with PL/SQL, advanced analytics, and high availability directly from your development environment. ### Why Oracle MCP? - **Enterprise Leader**: Industry-leading enterprise database - **PL/SQL**: Powerful procedural language - **Advanced Features**: Partitioning, compression, in-memory - **High Availability**: RAC and Data Guard - **Security**: Advanced security features ### Key Features #### 1. SQL Queries ```python # Execute query result = await mcp.query(""" SELECT e.employee_id, e.first_name, e.last_name, d.department_name, e.salary FROM employees e JOIN departments d ON e.department_id = d.department_id WHERE e.hire_date > :hire_date ORDER BY e.salary DESC FETCH FIRST 20 ROWS ONLY """, params={"hire_date": "2020-01-01"}) for row in result: print(f"Employee: {row['first_name']} {row['last_name']}") ``` #### 2. PL/SQL Operations ```python # Execute PL/SQL block await mcp.execute(""" DECLARE v_bonus NUMBER; BEGIN SELECT salary * 0.10 INTO v_bonus FROM employees WHERE employee_id = :emp_id; UPDATE employees SET salary = salary + v_bonus WHERE employee_id = :emp_id; COMMIT; END; """, params={"emp_id": 100}) # Call stored procedure result = await mcp.call_procedure( name="calculate_commission", params={"p_employee_id": 100, "p_sales_amount": 50000} ) ``` #### 3. Transaction Management ```python # Begin transaction tx = await mcp.begin_transaction() try: await tx.execute("UPDATE accounts SET balance = balance - :amt WHERE id = :id", params={"amt": 100, "id": 1}) await tx.execute("UPDATE accounts SET balance = balance + :amt WHERE id = :id", params={"amt": 100, "id": 2}) await tx.commit() except Exception as e: await tx.rollback() raise ``` #### 4. Schema Operations ```python # Get tables tables = await mcp.query(""" SELECT table_name FROM user_tables ORDER BY table_name """) # Describe table columns = await mcp.query(""" SELECT column_name, data_type, nullable FROM user_tab_columns WHERE table_name = :table ORDER BY column_id """, params={"table": "EMPLOYEES"}) ``` ### Configuration ```json { "mcpServers": { "oracle": { "command": "npx", "args": ["-y", "@anthropic/mcp-oracle"], "env": { "ORACLE_CONNECTION_STRING": "host:1521/service", "ORACLE_USER": "your-user", "ORACLE_PASSWORD": "your-password" } } } } ``` ### Use Cases **Enterprise Apps**: Large-scale enterprise applications. **Financial Systems**: Banking and trading systems. **ERP Systems**: SAP and Oracle EBS backends. **Data Warehousing**: Analytical workloads. The Oracle MCP enables enterprise database operations within your development environment.
{
"mcpServers": {
"oracle": {
"mcpServers": {
"oracle": {
"args": [
"-mcp"
],
"command": "sql"
}
}
}
}
}