Oracle数据库操作服务

一个基于Model Context Protocol (MCP)的Oracle数据库操作服务,提供实时通信和数据库管理功能。

  • by yyue9527
  • Java
  • 混合部署
  • 13 星标
  • 更新于
在 GitHub 查看 yyue9527/oracle-mcp-server

使用说明

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服务器webmvc spring启动程序

技术栈

核心依赖关系

  • 弹簧靴3.2.0
  • spring-ai-mcp服务器webmvc春季启动启动程序
  • Oracle JDBC驱动程序
  • 模型上下文协议(MCP)框架
  • 龙目

开发工具

  • Java 17
  • Maven 3.6+
  • Spring Boot测试框架
  • JUnit5

入门指南

先决条件

  • JDK 17
  • Maven 3.6+
  • Oracle数据库实例
  • MCP服务器环境
  • 光标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.光标MCP配置

在Cursor IDE中,在以下设置中配置MCP服务器:

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

此配置:

  • 将MCP服务器名称设置为“oracle MCP服务器”
  • 将服务器URL配置为“http://{server ip}:{server port}/sse”
    • 将{server ip}替换为服务器的ip地址
    • 将{服务器端口}替换为服务器的端口号
  • 启用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. 分叉存储库
  2. 创建功能分支
  3. 提交您的更改
  4. 推到分支
  5. 创建拉取请求

许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。

支持

有关支持和问题,请在存储库中创建问题。