oracledb_mcp_server

MCP.Pizza Chef: rahgadda

The oracledb_mcp_server is an MCP server that exposes Oracle Database tables and columns as structured context to large language models (LLMs). It enables LLMs to generate SQL queries and retrieve results dynamically through natural language prompts, facilitating seamless database interaction and data retrieval within AI workflows.

Use This MCP server To

Enable LLMs to generate SQL queries for Oracle Database Provide real-time Oracle DB schema context to language models Retrieve query results from Oracle DB via natural language prompts Integrate Oracle Database access into AI-powered applications Automate data extraction and reporting from Oracle DB using LLMs Test and validate SQL queries generated by LLMs against Oracle DB

README

OracleDB MCP Server

smithery badge MseeP.ai Security Assessment Badge

Overview

  • This project will install MCP - Model Context Protocol Server, that provides configured Oracle Database Table/Columns as context to LLM's.
  • Using this we can enable LLMs to interact with Oracle Database, Generate SQL Statements and Return Results using LLM prompts.

Installation

  • Install package
    pip install oracledb_mcp_server
  • Create .env in a folder with minimum value of Oracle DB Connection String. Sample file available here
  • Test oracledb_mcp_server server using uv run oracledb_mcp_server from the above folder.

Claud Desktop

  • Configuration details for Claud Desktop
    {
      "mcpServers": {
        "oracledb_mcp_server":{
          "command": "uv",
          "args": ["run","oracledb_mcp_server"],
          "env": {
              "DEBUG":"True",
              "COMMENT_DB_CONNECTION_STRING":"oracle+oracledb://USERNAME:PASSWORD@IP:PORT/?service_name=SERVICENAME",
              "DB_CONNECTION_STRING":"oracle+oracledb://USERNAME:PASSWORD@IP:PORT/?service_name=SERVICENAME",
              "TABLE_WHITE_LIST":"ACCOUNTS,CUS_ACC_RELATIONS,CUSTOMERS",
              "COLUMN_WHITE_LIST":"ACCOUNTS.ACC_AAD_ID,CUS_ACC_RELATIONS.CAR_CUS_ID,CUS_ACC_RELATIONS.CAR_AAD_ID,CUSTOMERS.CUS_ID"
          }
        }
      }
    }

Configuration

  • List of available environment variables
    • DEBUG: Enable debug logging (optional default is False)
    • COMMENT_DB_CONNECTION_STRING: Oracle DB connection String for comments. (required)
    • DB_CONNECTION_STRING: Oracle DB connection String for execution of queries. (required)
    • TABLE_WHITE_LIST: White Listed table names in list format ["table1", "table2"] (required)
    • COLUMN_WHITE_LIST: White Listed table-column names in list format ["table.column1", "table.column2"] (required)
    • QUERY_LIMIT_SIZE: Default value is 10 records if not provided(optional default is 10)

Interceptor

npx @modelcontextprotocol/inspector uv --directory "D:\\MyDev\\mcp\\oracledb_mcp_server" run -m oracledb_mcp_server

Contributing

Contributions are welcome.
Please feel free to submit a Pull Request.

License

This project is licensed under the terms of the MIT license.

Demo

Github Stars

Star History Chart

oracledb_mcp_server FAQ

How do I install the oracledb_mcp_server?
Install it via pip using 'pip install oracledb_mcp_server' and configure your Oracle DB connection string in a .env file.
How do I start the oracledb_mcp_server?
Run the server using the command 'uv run oracledb_mcp_server' from the folder containing your .env file.
What environment configuration is required?
A minimum requirement is the Oracle DB connection string set in a .env file for secure access.
Can this server generate SQL queries automatically?
Yes, it enables LLMs to generate SQL statements based on natural language prompts.
Is the oracledb_mcp_server secure?
Yes, it has undergone security assessments, including the MseeP.ai security audit.
Which LLMs can work with this MCP server?
It is compatible with various LLMs such as OpenAI, Anthropic Claude, and Google Gemini.
Can I use this server for read and write operations?
Primarily designed for querying and retrieving data, but can be extended for write operations with proper configuration.
Does it support complex Oracle DB schemas?
Yes, it provides detailed table and column context to LLMs for complex schema interactions.