Mcporacle — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Mcporacle (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Локальный MCP server для Roo Code, который подключается к Oracle DB и возвращает ограниченный набор метаданных через безопасные MCP tools.
pipstdio transportget_table_info(schema_name, table_name)oracledbmcpschema_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/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 поддерживает два уровня конфигурации MCP servers:
mcp_settings.json.roo/mcp.jsonДля этого проекта удобнее использовать проектную конфигурацию .roo/mcp.json, чтобы настройки были привязаны к конкретному репозиторию.
В интерфейсе Roo Code:
Edit Project MCP.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 внутри виртуального окружения проектаЕсли не хотите использовать .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 должен указывать на корень репозитория, иначе сервер не найдет локальный .envpython.exe лучше указывать абсолютный, чтобы Roo Code не зависел от активированного терминала.roo/mcp.json сервер появится в списке MCP servers в Roo CodeПосле подключения MCP server в Roo Code должен появиться tool get_table_info. Дальше можно дать Roo, например, такой запрос:
Используй tool get_table_info для схемы HR и таблицы EMPLOYEESget_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-блок, который:
Это позволяет сохранить функциональность строго ограниченной и не принимать SQL от клиента.
Пользователь Oracle должен иметь возможность читать:
DBA_TABLESDBA_TAB_COMMENTSDBA_TAB_COLUMNSDBA_COL_COMMENTSЕсли доступов нет, tool вернет ошибку уровня приложения.
После установки зависимостей:
python -m unittest discover -s tests -vget_table_infoALL_*/USER_* viewsDBA_* views, сервер сейчас возвращает понятную ошибку, а не пытается автоматически переключаться на другие словари.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.