使用说明
项目简介
'Oracle数据库上下文MCP服务器' 是一个基于 Model Context Protocol (MCP) 构建的后端服务,专门为大型 Oracle 数据库设计。它旨在解决 AI 模型在处理包含成千上万张表的大型数据库时,难以快速获取和理解数据库结构信息的难题。通过智能缓存和按需提供数据库 schema 信息,该服务器使得 AI 助手(如 GitHub Copilot、Claude、ChatGPT 等)能够更有效地理解和操作 Oracle 数据库。
主要功能点
- 智能 Schema 缓存: 构建并维护数据库 schema 的本地缓存,减少数据库查询次数,提高性能。
- 定向 Schema 查询: 按需检索特定表的 schema 信息,无需加载整个数据库结构。
- 表搜索: 支持通过名称模式匹配搜索表。
- 关系映射: 理解表之间的外键关系。
- Oracle 数据库支持: 专为 Oracle 数据库设计。
- MCP 集成: 与支持 MCP 协议的 AI 助手无缝集成。
- 丰富的数据库工具集: 提供多种工具用于查询数据库信息,包括表结构、索引、约束、PL/SQL对象等。
安装步骤
本仓库提供了两种安装方式:Docker 和 本地安装 (UV)。推荐使用 Docker 方式,因为它更简单,并且包含了所有依赖。
方式一:使用 Docker (推荐)
- 安装 VSCode Insiders 和 GitHub Copilot Extension (如果尚未安装)。
- 配置 VSCode Settings (settings.json):在 VSCode Insiders 的 'settings.json' 文件中添加 MCP 服务器配置。
方式二:使用 UV (本地安装)
- 安装 Python 3.12+ 和 Oracle Instant Client (如果尚未安装)。
- 安装 UV: 按照仓库 README.md 中的 UV 安装指南进行安装。
- 克隆仓库并安装依赖: 按照仓库 README.md 中的本地安装步骤,克隆代码库,创建虚拟环境,并使用 UV 安装项目依赖。
- 配置 VSCode Settings (settings.json):在 VSCode Insiders 的 'settings.json' 文件中添加 MCP 服务器配置,并根据实际路径修改配置。
服务器配置 (MCP 客户端配置)
以下 JSON 配置信息用于配置 MCP 客户端 (如 VSCode Insiders) 如何连接到 'Oracle数据库上下文MCP服务器'。您需要将此配置添加到 MCP 客户端的设置中,例如 VSCode Insiders 的 'settings.json' 文件。
Docker 方式配置 (推荐):
"mcp": { "inputs": [ { "id": "db-password", "type": "promptString", "description": "Oracle 数据库密码", "password": true } ], "servers": { "oracle": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "ORACLE_CONNECTION_STRING", "-e", "TARGET_SCHEMA", "-e", "CACHE_DIR", "-e", "THICK_MODE", "dmeppiel/oracle-mcp-server" ], "env": { "ORACLE_CONNECTION_STRING": "<数据库用户名>/${input:db-password}@<主机>:1521/<服务名>", // 请替换为您的 Oracle 数据库连接字符串,${input:db-password} 会在客户端提示输入密码 "TARGET_SCHEMA": "", // 可选,指定目标 Schema,默认为连接用户的 Schema "CACHE_DIR": ".cache", // 可选,指定缓存目录,默认为 .cache "THICK_MODE": "" // 可选,设置为 "1" 以启用 Thick 模式,默认为 Thin 模式 } } } }
本地 UV 方式配置:
"mcp": { "inputs": [ { "id": "db-password", "type": "promptString", "description": "Oracle 数据库密码", "password": true } ], "servers": { "oracle": { "command": "/path/to/your/.local/bin/uv", // 请替换为您的 uv 可执行文件路径 "args": [ "--directory", "/path/to/your/oracle-mcp-server", // 请替换为您的 oracle-mcp-server 代码库路径 "run", "main.py" ], "env": { "ORACLE_CONNECTION_STRING": "<数据库用户名>/${input:db-password}@<主机>:1521/<服务名>", // 请替换为您的 Oracle 数据库连接字符串,${input:db-password} 会在客户端提示输入密码 "TARGET_SCHEMA": "", // 可选,指定目标 Schema,默认为连接用户的 Schema "CACHE_DIR": ".cache", // 可选,指定缓存目录,默认为 .cache "THICK_MODE": "" // 可选,设置为 "1" 以启用 Thick 模式,默认为 Thin 模式 } } } }
配置参数说明:
- '"servers": { "oracle": { ... } }': 定义名为 "oracle" 的服务器配置。
- '"command"': 指定启动 MCP 服务器的命令。Docker 方式为 "docker",本地 UV 方式为 UV 可执行文件路径。
- '"args"': 命令的参数列表。Docker 方式包含 'docker run' 的参数,本地 UV 方式包含 'uv run main.py' 的参数。
- '"env"': 环境变量配置。
- '"ORACLE_CONNECTION_STRING"': 必填,Oracle 数据库连接字符串,需要替换为您的数据库连接信息。'${input:db-password}' 表示使用客户端提供的密码输入。
- '"TARGET_SCHEMA"': 可选,指定要访问的数据库 Schema,如果为空则默认为连接用户的 Schema。
- '"CACHE_DIR"': 可选,指定 schema 缓存文件存储目录,默认为 '.cache'。
- '"THICK_MODE"': 可选,设置为 '"1"' 启用 Oracle Thick 模式连接,默认为 Thin 模式。
基本使用方法
-
启动 MCP 服务器: 如果您使用 Docker 方式,配置完成后,MCP 服务器会在 VSCode Insiders 尝试连接时自动通过 Docker 启动。如果您使用本地 UV 方式,您需要手动运行 'uv run main.py' 命令启动服务器。
-
在 MCP 客户端中使用工具: 在支持 MCP 协议的客户端 (如 VSCode Insiders 的 Copilot Chat 启用 Agent 模式后),您可以通过自然语言指令调用服务器提供的工具。例如:
- 查询表结构: 'Can you show me the schema for the EMPLOYEES table?'
- 搜索表: 'Find all tables that might be related to customers and show their schemas.'
- 获取数据库版本信息: 'What Oracle database version are we running?'
更多可用工具及其使用示例,请参考仓库 README.md 文档的 "Available Tools" 章节。
信息
分类
数据库与文件