Token导航 LogoToken导航TokenDH.com
mcporacle (Dbobylev) logo
数据服务stdio官方级别未说明来源级核验

mcporacle (Dbobylev)

MCP Server

一个本地MCP服务器,用于连接Oracle数据库并通过安全工具返回有限的元数据集。

工具数

1

提示词数

0

GitHub Stars

0

资源数

0
数据库工具Python本地部署

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

dbobylev

提供方

dbobylev

最后核验

2026/5/17 20:23

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python -m venv .venv

详细介绍

单胞菌

本地的ROO代码MCP服务器连接到Oracle DB并通过安全的MCP工具返回有限的元数据集。

已经实施的项目

  • Python项目通过 pip
  • MCP 服务器 stdio 运输
  • 工具 get_table_info(schema_name, table_name)
  • 通过环境变量连接到Oracle
  • 通过匿名PL/SQL块获取表和列的描述
  • 基本输入验证和错误处理
  • 最小单位验证和响应格式测试

堆栈

  • Python 3.11+
  • oracledb
  • mcp

限制和安全

  • 该服务器设计用于在没有Docker的Windows主机上运行。
  • 不支持来自用户的任意SQL查询。
  • 该工具仅在服务器端使用固定逻辑。
  • schema_nametable_name 通过简单的Oracle身份验证。
  • 元数据只能从 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服务器开始 stdio适合与Roo Code集成。

在vscode中配置roo code

Roo Code支持两层MCP服务器配置:

  • 全局文件 mcp_settings.json
  • 设计文件 .roo/mcp.json

对于这个项目,使用项目配置更方便。 .roo/mcp.json将设置绑定到特定存储库。

Roo Code接口:

  • 在Vscode中打开Roo Code面板
  • 打开MCP分区
  • 点击 Edit Project MCP
  • 插入下面的配置

推荐选项:Credentials B .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服务器设置中传递环境变量:

{
  "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 服务器将出现在roo code中的MCP服务器列表中
  • 如果服务器已经以不同的配置运行,请从MCP面板重新启动它

快速检查

将MCP服务器连接到Roo Code后,将出现工具 get_table_info例如,您可以进一步提供roo请求:

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

工具 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"
      }
    ]
  }
}

如何实现查询

该工具调用匿名PL/SQL块,该块:

  • 打开一个参考曲线的表信息
  • 打开列列表的第二个参考曲线
  • 通过绑定参数从DBA Views读取数据

这允许您保持严格限制的功能,而不接受客户端的SQL。

Oracle要求

Oracle用户应该能够阅读:

  • DBA_TABLES
  • DBA_TAB_COMMENTS
  • DBA_TAB_COLUMNS
  • DBA_COL_COMMENTS

如果没有访问权限,工具将返回应用程序级别错误。

测试

建立依赖关系后:

python -m unittest discover -s tests -v

还没有加入MVP

  • 其他工具除 get_table_info
  • 连接池
  • 元数据缓存
  • Fallback 的 ALL_*/USER_* 观点
  • 与Oracle DB集成测试

假设

  • 对于第一个MVP,选择了最简单、最安全的接口:只有一个工具,只有MetaData Lookup。
  • 如果用户没有权限 DBA_* Views,服务器现在返回一个明显的错误,而不是试图自动切换到其他字典。

目录标签

目录标签

数据库工具Python本地部署Oracle元数据查询MCP服务器

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

1

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP