mcporacle
Click on "Deploy 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: oracle-db-mcp
Что уже реализовано
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 deployed
Maintenance
Related MCP Connectors
Read-only MCP server exposing a user ORANO library to their own AI agent.
MCP server for medicaid-intelligence
MCP server for Product Management
Token-free MCP server for structured RevoGrid Core, Pro, and Enterprise knowledge retrieval.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceStandalone read-only MCP server for browsing Oracle HDL business object metadata. Provides tools to search and retrieve catalog entries, components, and attributes from a local repository.-
- AlicenseBqualityCmaintenanceMCP server for accessing Oracle databases, enabling schema exploration, query execution, and performance analysis.12MIT
- FlicenseNot gradedqualityCmaintenanceRead-only MCP server that lets coding AI agents inspect Oracle Database schema through live metadata.-
- FlicenseNot gradedqualityCmaintenanceA read-only MCP server for exploring and querying Oracle schemas safely. Provides tools for table listing, schema description, column search, and validated SELECT execution.2-