mcporacle
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcporacleDescribe the HR.EMPLOYEES table"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcporacle
Локальный MCP server для Roo Code, который подключается к Oracle DB и возвращает ограниченный набор метаданных через безопасные MCP tools.
Related MCP server: Universal Database MCP Server
Что уже реализовано
Python-проект с установкой через
pipMCP server со
stdiotransportTool
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 и таблицы EMPLOYEESTool 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, сервер сейчас возвращает понятную ошибку, а не пытается автоматически переключаться на другие словари.
This server cannot be installed
Maintenance
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
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/dbobylev/mcporacle'
If you have feedback or need assistance with the MCP directory API, please join our Discord server