Featured

Deploy OpenClaw in 60 seconds — 20% off logoDeploy OpenClaw in 60 seconds — 20% off

Launch OpenClaw on Hostinger in about 60 seconds and keep your agent live 24/7. Our referral link gives you 20% off, no coupon code needed.

Launch on Hostinger
Run your Hermes agent on Hostinger, fully managed logoRun your Hermes agent on Hostinger, fully managed

Launch Hermes on Hostinger in one click, fully managed, no VPS knowledge needed. Use code ZACAARON10 for 10% off.

Launch on Hostinger
Crawl and scrape any site into clean data, 10% off logoCrawl and scrape any site into clean data, 10% off

Firecrawl crawls and scrapes any site into clean markdown for your agent. Get 1,000 free credits, and new users get 10% off their first purchase.

Try Firecrawl free
6,000+ web scrapers for your AI agent, start free logo6,000+ web scrapers for your AI agent, start free

Apify gives your agent live web data: 6,000+ prebuilt scrapers and actors, MCP-ready. Sign up free with $5 in usage credits.

Try Apify free
One API to scrape, enrich, and extract the internet. logoOne API to scrape, enrich, and extract the internet.

Context.dev gives your agents a single API to scrape, enrich, and extract live web data — no proxies, no parsers, no maintenance.

Start building free
SetupClaw: done-for-you OpenClaw for founders & exec teams logoSetupClaw: done-for-you OpenClaw for founders & exec teams

White-glove OpenClaw for founders and exec teams (4–50+ employees): we install, harden, integrate your tools, and maintain it — secured from day one.

Get it set up for you
SEO data APIs for your agent, $1 free credit logoSEO data APIs for your agent, $1 free credit

DataForSEO gives your agent live access to SERP results, keyword data, backlinks, and on-page SEO data through one API. New accounts get a $1 credit, good for up to 20,000 keyword or backlink lookups.

Try DataForSEO free
Reach 48,000+ AI builders

A flat monthly placement in front of developers actively installing AI tools. No lock-in, cancel anytime.

Advertise here

Works with

Claude CodeClaude DesktopCursorVS CodeClineCodex CLIOpenClaw+ any MCP client

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

Local MCP server for Roo Code that connects to Oracle DB and returns limited set of metadata through secure MCP tools.

README.md

mcporacle

Локальный MCP server для Roo Code, который подключается к Oracle DB и возвращает ограниченный набор метаданных через безопасные MCP tools.

Что уже реализовано

  • Python-проект с установкой через pip
  • MCP server со stdio transport
  • Tool get_table_info(schema_name, table_name)
  • Подключение к Oracle через переменные окружения
  • Получение описания таблицы и колонок через анонимный PL/SQL-блок
  • Базовая валидация входных параметров и обработка ошибок
  • Минимальные unit-тесты на валидацию и формат ответа

Стек

  • Python 3.11+
  • oracledb
  • mcp

Ограничения и безопасность

  • Сервер рассчитан на запуск на Windows-хосте без Docker.
  • Произвольные SQL-запросы от пользователя не поддерживаются.
  • Tool работает только с фиксированной логикой на стороне сервера.
  • schema_name и table_name проходят строгую валидацию как простые Oracle identifiers.
  • Метаданные читаются только из DBA_TABLES, DBA_TAB_COMMENTS, DBA_TAB_COLUMNS, DBA_COL_COMMENTS.

Структура проекта

.
├── .env.example
├── pyproject.toml
├── readme.md
├── src/
│   └── mcporacle/
│       ├── config.py
│       ├── errors.py
│       ├── models.py
│       ├── server.py
│       ├── validation.py
│       ├── oracle/
│       │   └── client.py
│       └── services/
│           └── table_info.py
└── tests/

Установка

PowerShell

python -m venv .venv
.venv\Scripts\Activate.ps1
pip install -e .
Copy-Item .env.example .env

Настройка .env

Создайте .env на основе .env.example:

MCPORACLE_ORACLE_USER=system
MCPORACLE_ORACLE_PASSWORD=oracle
MCPORACLE_ORACLE_DSN=localhost:1521/FREEPDB1
MCPORACLE_LOG_LEVEL=INFO

Обязательные переменные:

  • MCPORACLE_ORACLE_USER
  • MCPORACLE_ORACLE_PASSWORD
  • MCPORACLE_ORACLE_DSN

Запуск сервера

После установки:

mcporacle

Альтернатива:

python -m mcporacle.server

Сервер стартует как локальный MCP server поверх stdio, что подходит для интеграции с Roo Code.

Настройка Roo Code в VSCode

Roo Code поддерживает два уровня конфигурации MCP servers:

  • глобальный файл mcp_settings.json
  • проектный файл .roo/mcp.json

Для этого проекта удобнее использовать проектную конфигурацию .roo/mcp.json, чтобы настройки были привязаны к конкретному репозиторию.

В интерфейсе Roo Code:

  • откройте панель Roo Code в VSCode
  • откройте раздел MCP
  • нажмите Edit Project MCP
  • вставьте конфигурацию ниже

Рекомендуемый вариант: credentials в .env

Если в корне проекта уже лежит .env, сервер сам его прочитает. В этом случае в конфиге Roo Code достаточно указать команду запуска и cwd.

{
  "mcpServers": {
    "mcporacle": {
      "command": "C:\\path\\to\\mcporacle\\.venv\\Scripts\\python.exe",
      "args": ["-m", "mcporacle.server"],
      "cwd": "C:\\path\\to\\mcporacle",
      "disabled": false
    }
  }
}

Что нужно заменить:

  • C:\\path\\to\\mcporacle на абсолютный путь к репозиторию
  • C:\\path\\to\\mcporacle\\.venv\\Scripts\\python.exe на абсолютный путь к Python внутри виртуального окружения проекта

Альтернатива: credentials прямо в конфиге Roo Code

Если не хотите использовать .env, можно передать переменные окружения прямо в настройке MCP server:

{
  "mcpServers": {
    "mcporacle": {
      "command": "C:\\path\\to\\mcporacle\\.venv\\Scripts\\python.exe",
      "args": ["-m", "mcporacle.server"],
      "cwd": "C:\\path\\to\\mcporacle",
      "env": {
        "MCPORACLE_ORACLE_USER": "system",
        "MCPORACLE_ORACLE_PASSWORD": "oracle",
        "MCPORACLE_ORACLE_DSN": "localhost:1521/FREEPDB1",
        "MCPORACLE_LOG_LEVEL": "INFO"
      },
      "disabled": false
    }
  }
}

Что важно для запуска

  • cwd должен указывать на корень репозитория, иначе сервер не найдет локальный .env
  • путь к python.exe лучше указывать абсолютный, чтобы Roo Code не зависел от активированного терминала
  • после сохранения .roo/mcp.json сервер появится в списке MCP servers в Roo Code
  • если сервер был уже запущен с другой конфигурацией, перезапустите его из панели MCP

Быстрая проверка

После подключения MCP server в Roo Code должен появиться tool get_table_info. Дальше можно дать Roo, например, такой запрос:

Используй tool get_table_info для схемы HR и таблицы EMPLOYEES

Tool get_table_info

Вход

{
  "schema_name": "HR",
  "table_name": "EMPLOYEES"
}

Выход

{
  "ok": true,
  "table": {
    "owner": "HR",
    "table_name": "EMPLOYEES",
    "comment": "Employee master data",
    "columns": [
      {
        "name": "EMPLOYEE_ID",
        "data_type": "NUMBER",
        "nullable": false,
        "data_length": 22,
        "data_precision": 10,
        "data_scale": 0,
        "column_id": 1,
        "comment": "Primary key"
      }
    ]
  }
}

Как реализован запрос

Tool вызывает анонимный PL/SQL-блок, который:

  • открывает один REF CURSOR для информации о таблице
  • открывает второй REF CURSOR для списка колонок
  • читает данные из DBA views через bind-параметры

Это позволяет сохранить функциональность строго ограниченной и не принимать SQL от клиента.

Требования к Oracle

Пользователь Oracle должен иметь возможность читать:

  • DBA_TABLES
  • DBA_TAB_COMMENTS
  • DBA_TAB_COLUMNS
  • DBA_COL_COMMENTS

Если доступов нет, tool вернет ошибку уровня приложения.

Тесты

После установки зависимостей:

python -m unittest discover -s tests -v

Что пока не входит в MVP

  • дополнительные tools кроме get_table_info
  • пул соединений
  • кеширование метаданных
  • fallback на ALL_/USER_ views
  • интеграционные тесты с живой Oracle DB

Допущения

  • Для первого MVP выбран самый простой и безопасный интерфейс: только один tool и только metadata lookup.
  • Если у пользователя нет прав на DBA_* views, сервер сейчас возвращает понятную ошибку, а не пытается автоматически переключаться на другие словари.

See related servers & alternatives →

Related MCP servers

Browse all →

Related guides

Hand-picked reading to help you choose and use Developer Tools servers.