返回 MCP 目录
public公开dns本地运行

oracle-mcp-server

基于Spring Boot的Oracle数据库MCP服务,提供表结构查询、SQL执行等数据库操作功能,支持SSE实时通信。

article

README

🚀 Oracle MCP 服务器

Oracle MCP 服务器是一个基于 spring-ai-mcp-server-webmvc-spring-boot-starter 实现的 Model Context Protocol (MCP) 服务,专门用于操作 Oracle 数据库。该服务提供了一系列实用工具,支持通过 MCP 协议与 Oracle 数据库进行交互,并借助 Server-Sent Events (SSE) 实现实时通信。

🚀 快速开始

先决条件

  • 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

✨ 主要特性

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

📚 详细文档

API 工具

1. 列表表格工具

  • 名称:list_tables
  • 描述:获取 Oracle 数据库中的所有表列表
  • 使用方法:无需参数
  • 返回值:换行分隔的表名列表

2. 描述表工具

  • 名称:describe_table
  • 描述:获取指定表的结构信息
  • 参数:table_name
  • 返回值:表的详细信息,包括列、数据类型和约束等

3. 执行 SQL 语句工具

  • 名称:execute_query
  • 描述:执行任意的 SQL 查询或更新操作
  • 参数:query_string
  • 返回值:查询结果集或操作状态

🔧 技术细节

技术栈

核心依赖

  • 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

实现细节

类结构

项目的核心代码位于 oracle-mcp-server/src/main/java 目录下,主要包括以下几个类:

  • OracleMCPHandler.java:处理 MCP 协议的请求和响应
  • DatabaseManager.java:管理数据库连接和操作
  • TableInfoCollector.java:收集表结构信息
  • QueryExecutor.java:执行 SQL 查询和更新

功能组件

  1. MCP 请求处理

    • 解析 MCP 协议请求
    • 验证请求合法性
    • 调用相应功能模块处理
  2. 数据库连接管理

    • 建立与 Oracle 数据库的连接
    • 管理连接池
    • 处理连接生命周期
  3. 表结构信息收集

    • 获取指定表的元数据
    • 解析列信息
    • 返回结构化结果
  4. SQL 执行引擎

    • 分析和执行 SQL 语句
    • 处理结果集
    • 管理事务和错误处理

安全考虑

  • 数据库连接字符串使用加密存储
  • 用户凭证进行安全哈希处理
  • 访问控制列表(ACL)管理
  • 日志记录所有敏感操作
  • 防御 SQL 注入攻击

测试

项目提供完整的单元测试和集成测试套件,覆盖所有主要功能模块。测试用例包括:

  • 数据库连接成功与失败情况
  • 不同类型的 SQL 查询执行
  • 表结构信息收集的准确性
  • 安全机制的有效性
  • 边界条件处理

错误处理

系统采用分层错误处理架构,包含以下功能:

  • 请求验证和参数检查
  • 异常捕获与封装
  • 错误日志记录
  • 用户友好的错误响应
  • 事务回滚机制

📄 许可证

项目遵循 Apache License 2.0 协议,具体内容可在 LICENSE 文件中查看。

💡 使用建议

欢迎社区贡献代码或提出问题。请参考项目仓库中的 CONTRIBUTING.md 文件获取详细贡献流程。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端