使用说明
项目简介
本项目 'oracle-mcp-server' 是一个基于 Spring AI MCP (Model Context Protocol) 框架实现的 MCP 服务器,专注于 Oracle 数据库操作。它提供了一系列工具,允许 LLM (大型语言模型) 客户端通过标准化的 MCP 协议与 Oracle 数据库进行交互,实现数据查询和操作。该服务器使用 Server-Sent Events (SSE) 协议进行实时通信。
主要功能点
- 列出数据库表: 获取 Oracle 数据库中所有表的名称列表。
- 描述表结构: 查询指定表的详细结构信息,包括列名、数据类型、是否允许为空、数据长度以及是否为主键。
- 执行 SQL 查询: 执行 SELECT SQL 语句,并以 CSV 格式返回查询结果。
- 执行 SQL 更新: 执行 INSERT、UPDATE、DELETE 等 SQL 语句,返回受影响的行数。
- 安全连接管理: 安全地管理 Oracle 数据库连接,包括连接池和密码配置。
- 实时通信: 通过 SSE 协议与 MCP 客户端进行实时数据传输。
安装步骤
- 环境准备: 确保已安装 JDK 17+ 和 Maven 3.6+,并已运行 Oracle 数据库实例。
- 下载代码: 从 GitHub 仓库 'https://github.com/yyue9527/oracle-mcp-server' 克隆代码到本地。
- 配置数据库连接: 修改 'src/main/resources/application.properties' 或 'application.yml' 文件,配置 Oracle 数据库连接信息,例如:
请替换 'your-oracle-host', '1521', 'your-service-name', 'your-username', 'your-password' 为您的实际数据库配置。oracle: connectionString: jdbc:oracle:thin:@//your-oracle-host:1521/your-service-name username: your-username password: your-password - 构建项目: 在项目根目录下运行 Maven 命令进行构建:
mvn clean install - 运行服务器: 构建成功后,运行 Spring Boot 应用:
服务器默认会在 8080 端口启动 (可在 'application.properties' 或 'application.yml' 中修改 'server.port' 属性)。mvn spring-boot:run
服务器配置 (MCP 客户端)
要让 MCP 客户端 (例如 Cursor IDE) 连接到此 Oracle MCP 服务器,您需要在客户端中配置 MCP 服务器信息。以下是一个 JSON 格式的配置示例,您需要将其添加到 MCP 客户端的服务器配置中。
{ "mcpServers": { "oracle-db-server": { // 服务器名称,可以自定义,用于在客户端中标识该服务器 "transport": "sse", // 通信协议,本项目使用 SSE "url": "http://{server-ip}:{server-port}/sse", // MCP 服务器的 SSE 端点 URL "enabled": true // 是否启用该 MCP 服务器 } } }
配置参数说明:
- 'oracle-db-server': 服务器名称,您可以自定义一个易于识别的名称。
- 'transport': 传输协议,本项目使用 SSE (Server-Sent Events),因此设置为 '"sse"'。
- 'url': MCP 服务器的 URL 地址。
- 'http://{server-ip}:{server-port}/sse' 是 SSE 协议的端点。
- 请将 '{server-ip}' 替换为运行 'oracle-mcp-server' 的服务器 IP 地址或域名。
- 请将 '{server-port}' 替换为 'oracle-mcp-server' 运行的端口号 (默认为 8080,如果修改过请使用修改后的端口)。
- 'enabled': 设置为 'true' 表示启用该 MCP 服务器,客户端会连接并使用该服务器提供的工具。
例如,如果您的 'oracle-mcp-server' 运行在 IP 地址为 '192.168.1.100',端口为 '8080' 的服务器上,则 URL 应配置为 'http://192.168.1.100:8080/sse'。
基本使用方法
成功配置并启动 MCP 服务器后,在 MCP 客户端中,您可以使用以下工具与 Oracle 数据库进行交互:
- 'list_tables': 调用此工具可以获取数据库中所有表的列表。通常在客户端中,您可以输入类似 '#list_tables' 的指令来触发该工具。
- 'describe_table': 调用此工具并提供 'tableName' 参数,可以获取指定表的结构信息。例如,使用 '#describe_table tableName=EMPLOYEES' 可以查询 'EMPLOYEES' 表的结构。
- 'execute_sql': 调用此工具并提供 'sql' 参数,可以执行 SQL 查询或更新语句。例如,使用 '#execute_sql sql=SELECT * FROM EMPLOYEES WHERE ROWNUM <= 5' 可以执行 SQL 查询。
具体工具的调用方式和参数传递方法取决于您使用的 MCP 客户端的实现。请参考您的 MCP 客户端文档以获取更详细的使用指导。
信息
分类
数据库与文件