产品定位
Oracle MCP Server 旨在解决处理大型Oracle数据库时的关键挑战,即为AI模型提供准确、相关的数据库模式信息,而不会因数万张表和关系而使其不堪重负。
核心功能
- 智能模式缓存:构建和维护数据库模式的本地缓存,以最小化数据库查询
- 目标模式查找:检索特定表的模式,而无需加载整个数据库结构
- 表搜索:通过名称模式匹配查找表
- 关系映射:理解表之间的外键关系
- Oracle数据库支持:专为Oracle数据库构建
- MCP集成:与VSCode中的GitHub Copilot、Claude、ChatGPT等支持MCP的AI助手无缝协作
适用场景
- AI助手需要理解大型Oracle数据库结构的场景
- 开发者在VSCode中使用GitHub Copilot进行数据库相关开发
- 需要快速查找和理解数据库模式、关系和约束的数据库管理员
工具列表
- get_table_schema:获取特定表的详细模式信息
- get_tables_schema:一次获取多个表的模式信息
- search_tables_schema:按名称模式搜索表并检索其模式
- rebuild_schema_cache:强制重建模式缓存
- get_database_vendor_info:获取连接的Oracle数据库版本和模式信息
- search_columns:搜索包含特定术语列的表
- get_pl_sql_objects:获取PL/SQL对象信息
- get_object_source:检索PL/SQL对象的源代码
- get_table_constraints:获取表的所有约束
- get_table_indexes:获取表的所有索引
- get_dependent_objects:查找依赖于指定数据库对象的所有对象
- get_user_defined_types:获取数据库中用户定义类型的信息
- get_related_tables:获取通过外键与指定表相关的所有表
常见问题解答
- 性能考虑:初始缓存构建可能需要5-10分钟,后续启动通常少于30秒
- 系统要求:Python 3.12或更高版本,4GB+可用RAM,500MB+磁盘空间
- 连接模式:支持Thin模式(默认)和Thick模式(需要Oracle Client库)
使用教程
使用依赖
- Python 3.12或更高版本
- Oracle数据库访问权限
- Oracle instant client(用于
oracledb
Python包)
安装教程
选项1:使用Docker(推荐)
```bash
在VSCode Insiders的settings.json中添加以下配置
"mcp": {
"inputs": [
{
"id": "db-password",
"type": "promptString",
"description": "Oracle DB Password",
"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":"
"TARGET_SCHEMA":"",
"CACHE_DIR":".cache",
"THICK_MODE":""
}
}
}
}
```
选项2:使用UV(本地安装)
- 安装UV
```bash
macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
Windows
irm https://astral.sh/uv/install.ps1 | iex
```
-
项目设置
bash
git clone https://github.com/yourusername/oracle-mcp-server.git
cd oracle-mcp-server
uv venv
source .venv/bin/activate # Unix/macOS
.venv\Scripts\activate # Windows
uv pip install -e . -
配置VSCode设置
json
"mcp": {
"inputs": [
{
"id": "db-password",
"type": "promptString",
"description": "Oracle DB Password",
"password": true,
}
],
"servers": {
"oracle": {
"command": "/path/to/your/.local/bin/uv",
"args": [
"--directory",
"/path/to/your/oracle-mcp-server",
"run",
"main.py"
],
"env": {
"ORACLE_CONNECTION_STRING":"<db-username>/${input:db-password}@<host>:1521/<service-name>",
"TARGET_SCHEMA":"",
"CACHE_DIR":".cache",
"THICK_MODE":""
}
}
}
}
调试方式
```bash
直接运行MCP服务器
uv run main.py
安装MCP Inspector进行测试
uv pip install mcp-cli
mcp dev main.py
或在Claude Desktop中安装
mcp install main.py
```