关于 Oracle MCP Server
Oracle MCP Server 是面向 Oracle 数据库操作的 MCP 服务,基于 Spring AI MCP Server。它让客户端通过工具列出表、查看结构并执行 SQL,结果以 CSV 或受影响行数返回。
主要功能
- 01列出数据库表
- 02查看列、类型与约束
- 03执行 SELECT、INSERT、UPDATE、DELETE
- 04以 CSV 返回查询结果
- 05管理数据库连接
适用场景
- 01检查 Oracle 数据库中的表
- 02查看表字段和主键信息
- 03通过 MCP 执行 SQL 查询或修改
- 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
关键组件
-
OracleConfig
- 处理数据库连接配置
- 使用 Spring 的 @ConfigurationProperties
- 安全管理密码
-
OracleService
- 实现用于数据库操作的 MCP 工具
- 管理数据库连接
- 处理 SQL 执行和结果格式化
- 实现错误处理和日志记录
-
连接管理
- 使用 Oracle 的连接池
- 实现资源自动关闭
- 妥善处理连接错误
安全注意事项
- 配置中的密码加密
- 连接池管理
- 防止 SQL 注入
- 清理错误消息中的敏感信息
测试
项目包含全面的单元测试:
mvn test
测试覆盖范围包括:
- 数据库连接
- 表列表
- 表结构描述
- SQL 执行
- 错误处理
错误处理
该服务实现了完善的错误处理:
- 连接失败
- 无效的 SQL 语句
- 缺少表/列
- 权限问题
贡献
- Fork 仓库
- 创建功能分支
- 提交更改
- 推送到分支
- 创建 Pull Request
许可证
本项目采用 MIT License 授权,详情请参阅 LICENSE 文件。
支持
如需支持或有任何问题,请在仓库中创建 issue。
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。