Oracle Mcp Server

Oracle Mcp Server

🚀 Oracle MCP Server

Oracle MCP Server 是一个模型上下文协议(MCP)服务器,它为像 Claude 这样的 AI 助手提供了灵活访问 Oracle 数据库的能力。支持跨多个模式进行查询以及全面的数据库自省。

🚀 快速开始

在使用 Oracle MCP Server 前,请确保你已满足以下要求:

  • Node.js 18+
  • Oracle 数据库(任意版本)
  • 具备访问 Oracle 数据库的网络权限

✨ 主要特性

  • 支持带参数绑定的 SQL 查询执行。
  • 可列出多个模式下的表,也能按特定模式进行筛选。
  • 支持多模式的表结构描述。
  • 可查看跨模式的索引和约束。
  • 提供多种 Oracle 认证方法。
  • 自动进行参数转换(从 PostgreSQL 风格转换为 Oracle 风格)。
  • 通过绑定变量防止 SQL 注入。
  • 提供审计日志,用于安全监控。

📦 安装指南

在项目根目录下,执行以下命令进行安装:

npm install

📚 详细文档

配置环境变量

创建一个 .env 文件,并填写你的 Oracle 连接信息。你可以选择以下其中一种方式:

方法 1:简易连接字符串

ORACLE_CONNECTION_STRING=hostname:1521/service_name
ORACLE_USER=your_username
ORACLE_PASSWORD=your_password

方法 2:TNS 名称

ORACLE_TNS_NAME=ORCL
ORACLE_USER=your_username
ORACLE_PASSWORD=your_password

方法 3:单独组件

ORACLE_HOST=localhost
ORACLE_PORT=1521
ORACLE_SERVICE_NAME=ORCL  # 或者 ORACLE_SID=ORCL
ORACLE_USER=your_username
ORACLE_PASSWORD=your_password

可选设置:

ORACLE_DEFAULT_SCHEMA=HR  # 如果默认模式与用户不同

在 Claude Desktop 中使用

将以下配置添加到你的 Claude Desktop 配置文件中:

  • macOS~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"oracle": {
"command": "node",
"args": ["/path/to/oracle-mcp/src/index.js"],
"env": {
"ORACLE_CONNECTION_STRING": "hostname:1521/service_name",
"ORACLE_USER": "your_username",
"ORACLE_PASSWORD": "your_password"
}
}
}
}

或者,如果你发布了该包,也可以使用 npx:

{
"mcpServers": {
"oracle": {
"command": "npx",
"args": ["-y", "oracle-mcp-server"],
"env": {
"ORACLE_CONNECTION_STRING": "hostname:1521/service_name",
"ORACLE_USER": "your_username",
"ORACLE_PASSWORD": "your_password"
}
}
}
}

在 Claude Code 中使用

~/.claude.json 文件中添加以下配置:

{
"mcpServers": {
"oracle": {
"type": "stdio",
"command": "node",
"args": ["/path/to/oracle-mcp/src/index.js"],
"env": {
"ORACLE_CONNECTION_STRING": "hostname:1521/service_name",
"ORACLE_USER": "your_username",
"ORACLE_PASSWORD": "your_password"
}
}
}
}

配置更新完成后,请重启 Claude Desktop 或 Claude Code。

可用工具

  1. execute_query - 执行任意 SQL 查询

    • 支持参数绑定。
    • 自动将 PostgreSQL 风格的参数($1)转换为 Oracle 风格(:1)。
    • 返回行数据、行数和元数据。
  2. list_tables - 列出数据库表

    • 可按特定模式进行筛选,或显示所有可访问的模式。
    • 支持按模式(使用 % 通配符)进行筛选。
    • 显示模式名称、表名、行数和最后分析日期。
  3. describe_table - 获取表结构

    • 列名、类型、大小。
    • 可空约束。
    • 默认值。
    • 可在所有可访问的模式中使用,也可按特定模式进行筛选。
  4. get_table_indexes - 查看表索引

    • 索引类型和唯一性。
    • 索引列。
    • 状态信息。
    • 显示每个索引的模式名称。
  5. get_table_constraints - 查看表约束

    • 主键、外键。
    • 唯一约束和检查约束。
    • 引用表。
    • 显示每个约束的模式名称。
  6. list_schemas - 列出所有可访问的模式

🔧 技术细节

安全性

  • 所有查询均使用绑定变量,以防止 SQL 注入。
  • 每个查询都会创建新的连接(无持久连接池)。
  • 提供全面的审计日志,包含时间戳和执行时长。
  • 使用环境变量来安全存储凭证。
  • 支持只读和读写操作。

📄 许可证

本项目采用 MIT 许可证。

  • 0 关注
  • 0 收藏,25 浏览
  • system 提出于 2025-09-24 10:45

相似服务问题

相关AI产品