Oracle Mcp Server

Oracle Mcp Server

🚀 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 文件获取详细贡献流程。

  • 0 关注
  • 0 收藏,8 浏览
  • system 提出于 2025-09-23 16:39

相似服务问题