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

Related MCP server: Database Bridge MCP Server

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

Available Tools

1 tool
oracle_queryA

Run a read-only SELECT query on an Oracle database

ParametersJSON Schema
NameRequiredDescriptionDefault
databaseNoDatabase connection name. Available:
sqlYesSELECT query to execute (read-only)

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that the tool is 'read-only' and for 'SELECT' queries, which covers basic safety and operation type. However, it lacks details on permissions, rate limits, error handling, or result formatting, leaving behavioral gaps for a database query tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero waste, front-loading the key information ('Run a read-only SELECT query on an Oracle database'). It is appropriately sized for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and 2 parameters with full schema coverage, the description is minimally adequate. It covers the basic operation but lacks details on return values, error cases, or advanced usage, which would be helpful for a database query tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters fully. The description adds no additional meaning beyond what the schema provides (e.g., it doesn't explain parameter interactions or constraints), meeting the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Run'), resource ('Oracle database'), and operation type ('read-only SELECT query'), making the purpose specific and unambiguous. With no sibling tools, differentiation is not needed, but the description fully specifies what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for read-only SELECT queries on Oracle databases, but does not provide explicit guidance on when to use this tool versus alternatives (e.g., other database tools or write operations). With no sibling tools, the context is clear but lacks exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 1 tool updatev1.0.0
    • First observedoracle_query

TDQS

A3.6/5.0
Disambiguation5/5

With only one tool, there is no possibility of ambiguity or overlap between tools. The tool's purpose is clearly defined as running read-only SELECT queries on an Oracle database, making it distinct by default.

Naming Consistency5/5

The single tool name 'oracle_query' follows a clear and consistent verb_noun pattern (query as the action, oracle as the domain). With only one tool, there is no inconsistency to evaluate, so it scores perfectly.

Tool Count2/5

One tool is too few for a database server's apparent scope, which typically requires operations like insert, update, delete, schema inspection, or transaction management. This minimal set severely limits functionality and will likely cause agent failures in complex tasks.

Completeness1/5

The tool surface is severely incomplete for an Oracle database server. It only supports read-only SELECT queries, missing essential CRUD operations (create, update, delete), schema exploration, connection management, and other database interactions, making it inadequate for typical database workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Provides flexible access to Oracle databases for AI assistants like Claude, supporting SQL queries across multiple schemas with comprehensive database introspection capabilities.
    6
    103
    10
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables secure database interactions with MySQL, PostgreSQL, and SQLite through granular permissions, multi-database support, and cloud-ready SSL/TLS connections. Supports read-only modes, schema-specific permissions, and transaction management for safe database operations.
    24
    2
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI tools to interact with Oracle databases through query execution, schema browsing, stored procedure calls, and transaction management. Supports multiple database connections with safety features like read-only mode and dangerous query detection.
    16
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Enables interaction with Oracle databases through MCP by executing SELECT queries, describing table structures, and listing available tables with secure, read-only access.
    3
    19
    2
    MIT

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