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

oraclemcp (Omandotkom)

MCP Server

一个用于Oracle数据库的只读查询服务器,支持LLMs(如Claude)通过MCP协议与Oracle数据库交互,执行查询、查看PL/SQL源代码等操作。

工具数

30

提示词数

0

GitHub Stars

1

资源数

0
数据分析只读访问GoClaudeClaude DesktopClaudeVS Code

安装说明

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

作者 / 组织

omandotkom

提供方

omandotkom

最后核验

2026/5/17 20:22

快速接入

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

详细介绍

Oracle MCP服务器(Go)

这是一个用Go编写的用于Oracle数据库的模型上下文协议(MCP)服务器。它允许LLM(如Claude)与Oracle数据库交互,以检查模式、查看PL/SQL源代码和执行 只读 查询。

它使用标准 工作室 传输,这意味着它被设计为由MCP客户端(如Claude Desktop或启用MCP的IDE扩展)直接运行。

🔒 安全说明

此服务器严格为只读。 它的设计将数据安全作为首要任务。

✅ 此服务器可以做什么:

  • 执行 SELECT 查询您的数据
  • 阅读Oracle的数据字典视图(ALL_*, DBA_*, V$*)
  • 查看PL/SQL源代码 ALL_SOURCE
  • 使用以下命令检索DDL脚本 DBMS_METADATA.GET_DDL
  • 生成执行计划(将临时数据存储在 PLAN_TABLE,然后清理)

❌ 此服务器不能执行的操作:

  • 无插入、更新、删除 --无法修改任何表数据
  • 没有CREATE、ALTER、DROP --无法更改数据库架构
  • 不执行 --无法运行存储过程或函数
  • 不同意,雷沃基 --无法更改权限
  • 没有真相,梅尔奇 --无法执行任何数据操作

🛡️ 我们如何确保只读安全:

  1. 查询验证:The sql-select 该工具明确验证查询是否以开头 SELECTWITH 执行前
  2. 仅字典视图:所有其他工具都查询Oracle的只读数据字典视图
  3. 无DDL执行:DDL仅 *检索到的* 作为文本,从未执行
  4. 临时数据清理:任何临时数据(如执行计划)在使用后立即删除
备注:为了提高安全性,您可以与仅具有以下条件的数据库用户连接 SELECT 所需词典视图的权限。这在数据库级别提供了深度防御。

特性

📊 表和模式工具

工具说明
sql-select执行任意 SELECTWITH 查询(限制为1000行)
list-tables列出所有可访问的表(不包括系统架构)
get-table-schema获取特定表的列定义
list-constraints列出表的所有约束(PK、FK、唯一、检查)
get-constraint-columns获取构成约束的列

🔧 PL/SQL对象工具

工具说明
list-objects按类型列出Oracle对象(过程、函数、包、类型等)
get-object-source获取过程、函数、包、类型、触发器的PL/SQL源代码
describe-object获取有关任何Oracle对象的全面信息(如SQL\*Plus DESCRIBE)

📅 计划程序作业工具

工具说明
list-jobs列出所有Oracle计划程序作业
get-job-details获取特定工作的详细信息

🔗 依赖关系工具

工具说明
list-dependencies列出给定对象所依赖或使用的对象

👁️ 查看工具

工具说明
list-views列出当前用户可访问的所有视图
get-view-definition获取视图的SQL定义

📇 索引工具

工具说明
list-indexes列出所有索引,可选择按表筛选
get-index-columns获取构成索引的列

🔢 序列工具

工具说明
list-sequences列出当前用户可访问的所有序列

⚡ 触发工具

工具说明
list-triggers列出所有触发器,可选择按表筛选

🏷️ 类型工具

工具说明
list-types列出所有用户定义的类型(对象类型、集合类型)
get-type-attributes获取用户定义类型的属性(字段)

🔄 同义词工具

工具说明
list-synonyms列出当前用户可访问的所有同义词

🔍 搜索和分析工具

工具说明
search-source在PL/SQL源代码中搜索文本,以查找表、列或变量的使用位置
search-columns在所有表中搜索列名(查找具有特定列的所有表)
get-ddl使用DBMS_METADATA获取任何对象的完整SQL CREATE脚本(DDL)
explain-plan获取SQL查询的执行计划以分析性能
get-table-stats获取表的优化器统计信息(行数、上次分析时间、大小)
list-invalid-objects列出所有状态为INVALID、需要重新编译的数据库对象

📝 文档工具

工具说明
get-table-comments获取表及其列的注释/文档
get-table-relationships获取表的所有外键关系(传入和传出)

📊 监视工具

工具说明
list-sessions列出活动数据库会话(需要V$SESSION权限)
get-job-run-history获取调度程序作业的执行历史记录(状态、持续时间、错误)

先决条件

  • 前进(1.18+): 构建应用程序。
  • Oracle数据库: 访问Oracle实例。
  • 无需即时客户端: 用途 go-ora,一个纯粹的围棋手。

配置

应用程序需要以下环境变量:

  • ORACLE_USER:数据库用户名。
  • ORACLE_PASSWORD:数据库密码。
  • ORACLE_CONNECT_STRING: host:port/service_name.

建筑

快速生成

go build -o mcp_oracle.exe .

构建并发布到GitHub

要创建一个新版本,并将可执行文件上传到GitHub:

# Interactive mode - prompts for version
.\release.ps1

# Specify version directly
.\release.ps1 -Version "v1.2.0"

# Create as draft release
.\release.ps1 -Version "v1.2.0" -Draft

发布的先决条件:

  • (gh)已安装并验证
  • gh auth login 如果尚未通过身份验证

使用Claude Desktop

要将其与Claude Desktop应用程序一起使用,请将以下内容添加到配置文件中(通常 %APPDATA%\Claude\claude_desktop_config.json 在Windows上):

{
  "mcpServers": {
    "oracle-db": {
      "command": "c:/path/to/your/mcp_oracle.exe",
      "args": [],
      "env": {
        "ORACLE_USER": "your_user",
        "ORACLE_PASSWORD": "your_password",
        "ORACLE_CONNECT_STRING": "localhost:1521/XEPDB1"
      },
      "disabled": false,
      "autoApprove": [
        "sql-select",
        "list-tables",
        "get-table-schema",
        "list-constraints",
        "get-constraint-columns",
        "list-objects",
        "get-object-source",
        "describe-object",
        "list-jobs",
        "get-job-details",
        "list-dependencies",
        "list-views",
        "get-view-definition",
        "list-indexes",
        "get-index-columns",
        "list-sequences",
        "list-triggers",
        "list-types",
        "get-type-attributes",
        "list-synonyms",
        "search-source",
        "search-columns",
        "get-ddl",
        "explain-plan",
        "get-table-stats",
        "list-invalid-objects",
        "get-table-comments",
        "get-table-relationships",
        "list-sessions",
        "get-job-run-history"
      ]
    }
  }
}

确保用实际值替换路径和凭据。

使用VS代码(扩展名)

如果您正在开发一个充当MCP客户端的VS Code扩展:

  1. 产卵 mcp_oracle.exe 过程。
  2. 在流程选项中设置环境变量。
  3. 通过以下方式进行沟通 stdinstdout 使用MCP JSON-RPC协议。

工具示例

查询数据

Tool: sql-select
Arguments: {"query": "SELECT * FROM employees WHERE department_id = 10"}

列出所有程序

Tool: list-objects
Arguments: {"object_type": "PROCEDURE", "owner": "HR"}

获取源代码

Tool: get-object-source
Arguments: {"object_name": "CALCULATE_SALARY", "object_type": "PROCEDURE", "owner": "HR"}

列出工作

Tool: list-jobs
Arguments: {"owner": "MYSCHEMA"}

查找依赖关系

Tool: list-dependencies
Arguments: {"object_name": "MY_PACKAGE", "direction": "used_by"}

获取表约束

Tool: list-constraints
Arguments: {"table_name": "EMPLOYEES", "owner": "HR"}

手动测试(CLI)

您可以通过运行服务器来验证服务器是否启动,但它将挂起等待stdin上的JSON-RPC输入。

$env:ORACLE_USER="user"
$env:ORACLE_PASSWORD="password"
$env:ORACLE_CONNECT_STRING="localhost:1521/xe"
.\mcp_oracle.exe

MCP协议

此服务器实现了模型上下文协议(MCP)规范:

  • 运输:Stdio(标准输入/标准输出)
  • 协议:JSON-RPC 2.0
  • 发现:支持 tools/list 用于自动工具发现
  • 执行:支持 tools/call 用于工具执行

当AI代理连接时,它将通过 tools/list 方法。

目录标签

目录标签

数据分析只读访问GoClaude数据库查询本地部署PL/SQL工具Oracle工具AI集成

支持客户端

Claude DesktopClaudeVS Code

接入字段

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

未说明

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

session

工具数量(toolCount,工具数)

30

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明session部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP