Skip to main content
Glama
zhengyun1008

MCP Server for Oracle

by zhengyun1008

MCP Server for Oracle

A Model Context Protocol server that provides access to Oracle databases with fine-grained access control. Supports multiple databases, access modes, and table-level permissions.

Features

  • Multi-database support: Connect to multiple Oracle databases simultaneously

  • Access control: readonly, readwrite, full modes per database

  • Table-level permissions: Whitelist/blacklist with wildcards and regex

  • Read-only transaction protection: Database-level safety for readonly mode

  • Backward compatible: Works with single database environment variables

Components

Tools

Tool

Description

oracle_query

Read-only SELECT queries (always available)

oracle_execute

Write operations (only visible when writable databases exist)

Resources

  • oracle://connections: List of database connections with access modes

  • oracle://{db}/tables/{table}/schema: Table schema

Prompts

  • oracle_usage_guide: Dynamic guide based on configured databases

Configuration

Config File

Create ~/.mcp_oracle/databases.json:

{
  "databases": [
    {
      "name": "prod",
      "user": "...",
      "password": "...",
      "connectString": "...",
      "accessMode": "readonly"
    },
    {
      "name": "dev",
      "user": "...",
      "password": "...",
      "connectString": "...",
      "accessMode": "readwrite",
      "allowedTables": ["LOG_*", "TMP_*", "/^TEST_.*/"]
    }
  ]
}

Access Modes

Mode

SELECT

INSERT/UPDATE/DELETE

DDL

readonly (default)

readwrite

full

Table Patterns

Format

Example

Matches

Exact

LOG_TABLE

Only LOG_TABLE

Wildcard

LOG_*

LOG_ prefix

Regex

/^TEST_\d+$/

TEST_ + digits

Environment Variables

Variable

Description

ORACLE_CONFIG_PATH

Custom config file path

ORACLE_USER

Legacy single-database user

ORACLE_PASS

Legacy single-database password

ORACLE_CONNECTION_STRING

Legacy connection string

ORACLE_HOME

Oracle client library path

TNS_ADMIN

TNS admin directory

Usage Example

User: "查询 prod 库中的用户表"
→ oracle_query(database="prod", sql="SELECT * FROM users")

User: "在 dev 库的 LOG_TEST 表插入一条记录"
→ oracle_execute(database="dev", sql="INSERT INTO LOG_TEST ...", confirm=true)

Security

  • readonly mode: Uses SET TRANSACTION READ ONLY for database-level protection

  • SQL validation: Validates statement type before execution

  • Table validation: Checks whitelist/blacklist before write operations

  • Confirmation required: Write operations require confirm=true

License

MIT License

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/zhengyun1008/mcp-server-oracle'

If you have feedback or need assistance with the MCP directory API, please join our Discord server