mcp-oracle
Oracle database MCP server using python-oracledb in thin mode — no Oracle Instant Client required.
Installation
No manual installation needed. Run directly with:
uvx mcp-oracle
Configuration
Add to your claude_desktop_config.json:
{
"mcpServers": {
"oracle": {
"command": "uvx",
"args": ["mcp-oracle"],
"env": {
"ORACLE_DSN": "host:1521/service_name",
"ORACLE_USER": "usuario",
"ORACLE_PASSWORD": "senha"
}
}
}
}
DSN Format
| Format | Example | Use when |
|---|---|---|
host:port/service_name |
db.example.com:1521/ORCL |
Most modern Oracle databases |
host:port:SID |
db.example.com:1521:ORCL |
Legacy SID-based connections |
service_name vs SID: Modern Oracle databases use service names (check with your DBA). Use the / separator for service names and the : separator for SIDs.
Environment Variables
| Variable | Required | Default | Description |
|---|---|---|---|
ORACLE_DSN |
Yes | — | Database connection string |
ORACLE_USER |
Yes | — | Database username |
ORACLE_PASSWORD |
Yes | — | Database password |
ORACLE_QUERY_ROW_LIMIT |
No | 1000 | Maximum rows returned per query |
ORACLE_QUERY_TIMEOUT_SECONDS |
No | 30 | Query timeout in seconds |
ORACLE_POOL_MIN |
No | 1 | Minimum connection pool size |
ORACLE_POOL_MAX |
No | 4 | Maximum connection pool size |
Available Tools
list_tables— List tables and views accessible to the connected user. Passschemato list objects from another schema.describe_table— Return columns, data types, nullability, and primary keys for a table. Passschemafor cross-schema lookups.run_query— Execute aSELECTstatement and return results as JSON. Supports bind parameters via theparamsargument.
Table Name Case Sensitivity
Oracle stores identifiers in uppercase by default. describe_table("employees") and describe_table("EMPLOYEES") are equivalent — the server normalizes to uppercase automatically.
License
MIT — © Leonardo Cardoso
Metadata
Release files for mcp-oracle 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| mcp_oracle-0.1.1.tar.gz | 8.5 kB | Without provenance | Details for mcp_oracle-0.1.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| mcp_oracle-0.1.1-py3-none-any.whl | Python 3 | none | any | Details for mcp_oracle-0.1.1-py3-none-any.whl |
Total release size: 15.9 kB
Release files / mcp_oracle-0.1.1.tar.gz
| Download URL | mcp_oracle-0.1.1.tar.gz |
|---|---|
| Size | 8.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f4109f8463a3c11788a457cc47a308931d4177e46a17588dd62e23a80fb1df11
|
|
BLAKE2b-256 checksum How to use checksums |
832e415f291ce81ae8d2760238d292e9b4f1138c73daccce875b95974f6f1c84
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.15 {"installer":{"name":"uv","version":"0.11.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Pop!_OS","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / mcp_oracle-0.1.1-py3-none-any.whl
| Download URL | mcp_oracle-0.1.1-py3-none-any.whl |
|---|---|
| Size | 7.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4af1a4dcaefc30b49b098892935ed1f5abd19bbd52ba4f93fc8caa5e696472b6
|
|
BLAKE2b-256 checksum How to use checksums |
7e48d1710b52ef909676fc6779f7a2c32c8a2d456c8e68e71118ebe9c7d851ba
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.15 {"installer":{"name":"uv","version":"0.11.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Pop!_OS","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for mcp-oracle 0.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.