MCP Server for Oracle Database(极めて実験的)
Oracle Database使用MCP(Model Context Protocol)服务器的实验实现。此服务器包含:AI应用程序Oracle Database对于…;对于SQL用于执行查询并检索其结果。MCP服务器在本地运行。Cursor 屋脊Cline 等的MCP 我们的目标是从客户端调用,提供无缝的数据库体验。
机能
- Oracle Database到SQL查询执行
- 获取表结构
- 安全措施(查询长度限制,危险关键字检查)
- 只实施了最小限度的安全对策。仅在无法从外部访问的本地环境中使用。
- 结果的格式化功能(因为是叫LLM来的,所以可能是多余的)
必要条件
- Python 3.11以上
- Oracle Database访问权限
- 设置所需的环境变量(.env文件)
- uv(快速Python包管理器)
※测试Windows 11 只去。Linux/Mac 的情况下,请适当地重读目录路径的表记等。
安装,安装
- 克隆存储库:
git clone [repository-url]
cd mcp-server-for-oracle-database- 创建并启用虚拟环境:
uv venv .venvsource .venv/bin/activate.venv\Scripts\activate- 安装依赖包:
uv pip install -r requirements.txt- 设置环境变量:
.env创建文件并设置以下信息:
ORACLE_USER=your_username
ORACLE_PASSWORD=your_password
ORACLE_DSN=your_dsn提供的工具
执行跟踪
SQL执行查询(仅限SELECT语句)并格式化并返回结果。
- 参数:
- query: SQL查询(仅限SELECT语句) - params: 绑定变量 - max_length: 応答の最大文字数 - max_rows: 要检索的最大行数
※LLM中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积。如果有很好地向客户端传达参数使用方法的方法,请告诉我。 ※读的是LLM 所以格式可能是多余的。
list_tables
显示数据库的表列表。
- 参数:
- max_rows: 要检索的最大表数(integer型,默认值:50) - name_pattern: 表名模式(例如'%EMP%')(可选) - order_by: 排列顺序('TABLE_NAME'或'CREATED'、默认值:'TABLE_NAME') - include_system_tables: 是否包括系统表(默认值:False) - use_all_tables: ALL_TABLES是否引用(默认值:False) - owner: 表所有者True必须)
describe_table
显示表的结构。sqlplus 的,之describe 的规格化距离的幂函数。
- 参数:
- table_name: 表名称
oracle_query_assistant
execute_oracle(Oracle Database中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积。
- 参数
- query_type: SQL 类型(当前仅限“选择”)
使用方法
MCP客户端注册:
Claude Desktop 屋脊Cursor 的,之MCP 在配置文件中添加以下内容。
{
"mcpServers": {
"ORACLE": {
"command": "仮想環境の Python 実行ファイルへの絶対パス(...\\mcp-server-for-autonomous-database\\.venv\\Scripts\\python.exe)",
"args": [
"MCPサーバーの絶対パス(....\\mcp-server-for-oracle-database\\oracledb_mcp_server.py)"
]
}
}
}※变更构成文件后MCP需要重新启动客户端。Claude Desktop 中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积。
Claude Desktop 屋脊Cursor 等的MCP 请在客户端尝试各种各样的方法。
示例1:显示表结构
xxxx テーブルの構造をしらべてxxxx のスキーマは示例2:获取表中的数据
xxxx テーブルのデータを取得して示例3:SQL 执行
この SQL を試してみて安全性
- SELECT 不接受语句以外的语句(不能执行DDL/DML)
- SELECT INTO 打开UNION ALL 不接受
- 限制查询长度(默认值:1)MB)
- 检查危险关键字
- 输入值清晰度
- 验证只读查询
