返回市场
甲骨文-mcp-服务器

甲骨文-mcp-服务器

作者:yyue952713 星标更新:2025-04-16

项目介绍

Oracle MCP Server

这是一个基于 spring-ai-mcp-server-webmvc-spring-boot-starter 的 Oracle 数据库操作 Model Context Protocol (MCP) 服务器实现。该服务提供了一组工具,通过 MCP 与 Oracle 数据库进行交互,并利用 Server-Sent Events (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 驱动
  • 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.propertiesapplication.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         # 数据库配置
├── service/
│   └── OracleService.java        # 核心服务实现
└── OracleApplication.java        # 应用程序入口点

关键组件

  1. OracleConfig

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

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

    • 使用 Oracle 的连接池
    • 实现资源自动关闭
    • 平稳处理连接错误

安全考虑

  • 配置中的密码加密
  • 连接池管理
  • 防止 SQL 注入
  • 错误消息净化

测试

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

mvn test

测试覆盖率包括:

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

错误处理

该服务实现了强大的错误处理:

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

贡献

  1. 分叉仓库
  2. 创建你的功能分支
  3. 提交更改
  4. 推送到分支
  5. 创建拉取请求

许可证

本项目采用 MIT 许可证 - 详情见 LICENSE 文件。

支持

对于支持和问题,请在仓库中创建一个 Issue。