# Oracle MCP Server Helper

Wire the oracle-database-mcp-server into a Python project so an LLM agent can call...

- Repository: https://github.com/oracle-devrel/oracle-ai-developer-hub (4464 stars)
- Category: Data and ML
- License: see repository
- Last updated: 2026-10-30
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add oracle-devrel/oracle-ai-developer-hub --skill oracle-mcp-server-helper -g -a claude-code -y`
Codex: `npx skills add oracle-devrel/oracle-ai-developer-hub --skill oracle-mcp-server-helper -g -a codex -y`
Cursor: `npx skills add oracle-devrel/oracle-ai-developer-hub --skill oracle-mcp-server-helper -g -a cursor -y`
Gemini CLI: `npx skills add oracle-devrel/oracle-ai-developer-hub --skill oracle-mcp-server-helper -g -a gemini-cli -y`

## Description

Wire the oracle-database-mcp-server into a Python project so an LLM agent can call list_tables / describe_table / run_sql / vector_search at inference time. Handles install, stdio launch, and LangChain tool conversion via langchain-mcp-adapters. Use whenever a project needs a Grok 4 / GPT-class agent that talks to a live Oracle schema.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

You wire MCP. You do not write the agent loop, the chain, or the UI, those are tier-skill responsibilities.

## Step 0, References

- `shared/references/sources.md`, links to oracle-database-mcp-server.
- `shared/references/oracledb-python.md`, `oracledb.connect()` shape.
- `shared/references/langchain-oracledb.md`, vector_search semantics if exposed.

## Step 1, Validate inputs

- `target_dir/.env` has `DB_DSN`, `DB_USER`, `DB_PASSWORD`.
- A working `store.py` exists at `target_dir/src/<package_slug>/store.py` (langchain-oracledb-helper output). If not, stop, order matters.
- `sql_mode == "read_write"` requires the user to confirm explicitly during interview. Refuse to proceed silently, destructive SQL via an LLM agent is a footgun.

> Several directives below are adapted from Oracle's official SQLcl MCP skill (`oracle/skills` · `db/sqlcl/sqlcl-mcp-server.md`). Kept as guidance, not code-path swaps.

### If SQLcl 25.2+ is on PATH

`sql -mcp` (Oracle's first-party MCP server) ships in SQLcl 25.2 and later. Detect with `sql -V`. When present, the workshop attendee has the *option* of swapping our local-tool layer for the SQLcl transport, surface this as a note in the project README, do not auto-switch. Tool surface aligns 1:1 on `list_tables`, `describe_table`, `run_sql`; SQLcl exposes `run-sqlcl` (DDL/LOAD/Liquibase) which is out of scope for this scaffold; SQLcl does NOT expose `vector_search`, so our local `VectorSearchTool` stays project-local in either transport. Restrict levels (`-R 0..4`) and the `-savepwd` connection store are SQLcl-only and not replicated here.

### Recommended DB user shape

Workshop attendees default to running as the schema owner. Recommend (don't enforce) a least-privilege user instead, same posture as SQLcl's `mcp_reader` example:

The rest: https://github.com/oracle-devrel/oracle-ai-developer-hub/blob/HEAD/build-paths/skills/oracle-mcp-server-helper/SKILL.md
