Mcporacle
БесплатноНе проверенLocal MCP server for Roo Code that connects to Oracle DB and returns limited set of metadata through secure MCP tools.
Описание
Local MCP server for Roo Code that connects to Oracle DB and returns limited set of metadata through secure MCP tools.
README
mcporacle
Локальный MCP server для Roo Code, который подключается к Oracle DB и возвращает ограниченный набор метаданных через безопасные MCP tools.
Что уже реализовано
- Python-проект с установкой через
pip - MCP server со
stdiotransport - Tool
get_table_info(schema_name, table_name) - Подключение к Oracle через переменные окружения
- Получение описания таблицы и колонок через анонимный PL/SQL-блок
- Базовая валидация входных параметров и обработка ошибок
- Минимальные unit-тесты на валидацию и формат ответа
Стек
- Python 3.11+
oracledbmcp
Ограничения и безопасность
- Сервер рассчитан на запуск на 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_USERMCPORACLE_ORACLE_PASSWORDMCPORACLE_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_TABLESDBA_TAB_COMMENTSDBA_TAB_COLUMNSDBA_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, сервер сейчас возвращает понятную ошибку, а не пытается автоматически переключаться на другие словари.
Установка Mcporacle
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/dbobylev/mcporacleFAQ
Mcporacle MCP бесплатный?
Да, Mcporacle MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Mcporacle?
Нет, Mcporacle работает без API-ключей и переменных окружения.
Mcporacle — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Mcporacle в Claude Desktop, Claude Code или Cursor?
Открой Mcporacle на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare Mcporacle with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
