mcpField
O
Oracle MCP Server

Oracle MCP Server

本地服务
github.com/yyue9527数据库1380 周前更新

关于 Oracle MCP Server

Oracle MCP Server 是面向 Oracle 数据库操作的 MCP 服务,基于 Spring AI MCP Server。它让客户端通过工具列出表、查看结构并执行 SQL,结果以 CSV 或受影响行数返回。

主要功能

  1. 01列出数据库表
  2. 02查看列、类型与约束
  3. 03执行 SELECT、INSERT、UPDATE、DELETE
  4. 04以 CSV 返回查询结果
  5. 05管理数据库连接

适用场景

  1. 01检查 Oracle 数据库中的表
  2. 02查看表字段和主键信息
  3. 03通过 MCP 执行 SQL 查询或修改
  4. 04获取写入操作的受影响行数

MCP 相关

该服务通过 MCP 工具向客户端开放 Oracle 数据库操作,并使用 SSE 进行实时通信。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Oracle MCP 服务

这是一个用于 Oracle 数据库操作的模型上下文协议(MCP)服务实现,基于 spring-ai-mcp-server-webmvc-spring-boot-starter 构建。该服务通过 MCP 提供一组与 Oracle 数据库交互的工具,并使用服务器发送事件(SSE)进行实时通信。

功能

  • 列出 Oracle 数据库中的所有表
  • 描述表结构(列、数据类型、约束)
  • 执行 SQL 语句(SELECT、INSERT、UPDATE、DELETE)
  • 安全的数据库连接管理
  • 通过 SSE 进行实时通信
  • 基于 spring-ai-mcp-server-webmvc-spring-boot-starter 构建

技术栈

核心依赖
  • Spring Boot 3.2.0
  • spring-ai-mcp-server-webmvc-spring-boot-starter
  • Oracle JDBC Driver
  • Model Context Protocol(MCP)框架
  • Lombok
开发工具
  • Java 17
  • Maven 3.6+
  • Spring Boot 测试框架
  • JUnit 5

开始使用

前置条件
  • JDK 17
  • Maven 3.6+
  • Oracle 数据库实例
  • MCP 服务环境
  • Cursor IDE
配置
1. 数据库配置

创建或修改 application.properties 或 application.yml,并设置以下配置:

oracle:
  connectionString: jdbc:oracle:thin:@//your-oracle-host:1521/your-service-name
  username: your-username
  password: your-password
2. Cursor MCP 配置

在 Cursor IDE 中,通过设置配置 MCP 服务:

{
  "mcpServers": {
    "oracle-mcp-server": {
      "url": "http://{server-ip}:{server-port}/sse",
      "enabled": true
    }
  }
}

此配置:

  • 将 MCP 服务名称设为 "oracle-mcp-server"
  • 将服务 URL 配置为 "http://{server-ip}:{server-port}/sse"
    • 将 {server-ip} 替换为服务的 IP 地址
    • 将 {server-port} 替换为服务的端口号
  • 启用 MCP 服务,以便在 Cursor 中使用
构建项目
mvn clean install
运行应用程序
mvn spring-boot:run

API 工具

1. 列出表工具
  • 名称:list_tables
  • 描述:获取 Oracle 数据库中所有表的列表
  • 用法:无需参数
  • 返回:以换行符分隔的表名列表
2. 描述表工具
  • 名称:describe_table
  • 描述:获取指定表的结构信息
  • 参数:tableName - 要描述的表名
  • 返回:表结构的 CSV 格式信息,包括:
    • 列名
    • 数据类型
    • 是否可为空
    • 数据长度
    • 主键信息
3. 执行 SQL 工具
  • 名称:execute_sql
  • 描述:执行 Oracle SQL 语句
  • 参数:sql - 要执行的 SQL 语句
  • 返回:
    • 对于 SELECT:查询结果的 CSV 格式
    • 对于 INSERT/UPDATE/DELETE:受影响的行数

实现详情

架构
com.mcp.oracle/
├── config/
│   └── OracleConfig.java         # Database configuration
├── service/
│   └── OracleService.java        # Core service implementation
└── OracleApplication.java        # Application entry point
关键组件
  1. OracleConfig

    • 处理数据库连接配置
    • 使用 Spring 的 @ConfigurationProperties
    • 安全管理密码
  2. OracleService

    • 实现用于数据库操作的 MCP 工具
    • 管理数据库连接
    • 处理 SQL 执行和结果格式化
    • 实现错误处理和日志记录
  3. 连接管理

    • 使用 Oracle 的连接池
    • 实现资源自动关闭
    • 妥善处理连接错误
安全注意事项
  • 配置中的密码加密
  • 连接池管理
  • 防止 SQL 注入
  • 清理错误消息中的敏感信息

测试

项目包含全面的单元测试:

mvn test

测试覆盖范围包括:

  • 数据库连接
  • 表列表
  • 表结构描述
  • SQL 执行
  • 错误处理

错误处理

该服务实现了完善的错误处理:

  • 连接失败
  • 无效的 SQL 语句
  • 缺少表/列
  • 权限问题

贡献

  1. Fork 仓库
  2. 创建功能分支
  3. 提交更改
  4. 推送到分支
  5. 创建 Pull Request

许可证

本项目采用 MIT License 授权,详情请参阅 LICENSE 文件。

支持

如需支持或有任何问题,请在仓库中创建 issue。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。