使用说明
项目简介
OracleDB MCP Server 是一个基于 Model Context Protocol (MCP) 构建的后端服务,旨在桥接大型语言模型 (LLM) 与 Oracle 数据库。它允许 LLM 应用以标准化的方式访问 Oracle 数据库中的表和列信息,并执行 SQL 查询,从而增强 LLM 在数据驱动型应用中的能力。
主要功能点
- 提供 Oracle 数据库上下文: 允许 LLM 获取 Oracle 数据库中表和列的描述信息,作为上下文输入,帮助 LLM 更好地理解和操作数据库。
- 执行 SQL 查询: 支持 LLM 应用调用工具执行 SQL 查询,并返回查询结果,实现与 Oracle 数据库的交互。
- 可配置的访问控制: 通过白名单机制控制可访问的表和列,保障数据安全。
- 灵活的连接配置: 支持通过环境变量配置 Oracle 数据库连接信息,方便部署和管理。
安装步骤
-
安装 Python 包: 打开终端,执行以下命令安装 'oracledb_mcp_server' 包:
pip install oracledb_mcp_server -
创建 .env 配置文件: 在您希望运行服务器的目录下创建一个 '.env' 文件,并添加 Oracle 数据库连接信息。您可以参考 示例 .env 文件。 至少需要配置以下环境变量:
- 'DB_CONNECTION_STRING': 用于执行 SQL 查询的 Oracle 数据库连接字符串。
- 'COMMENT_DB_CONNECTION_STRING': 用于获取表和列注释的 Oracle 数据库连接字符串 (可以与 'DB_CONNECTION_STRING' 相同)。
- 'TABLE_WHITE_LIST': 允许访问的表名白名单,多个表名用逗号分隔。
- 'COLUMN_WHITE_LIST': 允许访问的列名白名单,格式为 '表名.列名',多个列名用逗号分隔。
-
启动 MCP 服务器: 在包含 '.env' 文件的目录下,执行以下命令启动 OracleDB MCP Server:
uv run oracledb_mcp_server
服务器配置
对于 MCP 客户端(例如 Claud Desktop),您需要配置 MCP 服务器的连接信息。以下是一个示例配置,请根据您的实际环境修改:
{ "mcpServers": { "oracledb_mcp_server":{ "command": "uv", "args": ["run","oracledb_mcp_server"], "env": { "DEBUG":"True", "COMMENT_DB_CONNECTION_STRING":"oracle+oracledb://USERNAME:PASSWORD@IP:PORT/?service_name=SERVICENAME", // 用于获取表和列注释的 Oracle 数据库连接字符串 "DB_CONNECTION_STRING":"oracle+oracledb://USERNAME:PASSWORD@IP:PORT/?service_name=SERVICENAME", // 用于执行 SQL 查询的 Oracle 数据库连接字符串 "TABLE_WHITE_LIST":"ACCOUNTS,CUS_ACC_RELATIONS,CUSTOMERS", // 允许访问的表名白名单,多个表名用逗号分隔 "COLUMN_WHITE_LIST":"ACCOUNTS.ACC_AAD_ID,CUS_ACC_RELATIONS.CAR_CUS_ID,CUS_ACC_RELATIONS.CAR_AAD_ID,CUSTOMERS.CUS_ID" // 允许访问的列名白名单,格式为 "表名.列名",多个列名用逗号分隔 } } } }
配置参数说明:
- 'server name': 服务器名称,可以自定义,例如 "oracledb_mcp_server"。
- 'command': 启动服务器的命令,这里使用 'uv' 运行 'oracledb_mcp_server' 模块。
- 'args': 传递给 'command' 的参数,这里使用 '["run","oracledb_mcp_server"]' 运行服务器。
- 'env': 环境变量配置,用于配置 Oracle 数据库连接和访问控制:
- 'DEBUG': 是否启用 debug 日志,可选,默认为 False。
- 'COMMENT_DB_CONNECTION_STRING': Oracle 数据库连接字符串,用于连接到包含表和列注释的数据库。
- 'DB_CONNECTION_STRING': Oracle 数据库连接字符串,用于连接到执行 SQL 查询的数据库。
- 'TABLE_WHITE_LIST': 逗号分隔的表名列表,指定允许 LLM 访问的表。
- 'COLUMN_WHITE_LIST': 逗号分隔的列名列表,格式为 '表名.列名',指定允许 LLM 访问的列。
- 'QUERY_LIMIT_SIZE': 查询结果返回的最大记录数,可选,默认为 10。
基本使用方法
-
启动 OracleDB MCP Server 并确保其正常运行。
-
在 MCP 客户端中配置 上述服务器连接信息。
-
在 LLM 应用中,您可以使用 MCP 协议与 OracleDB MCP Server 进行交互,调用以下工具 (Tools) 获取数据库信息或执行 SQL 查询:
- 'get_table_details': 获取 Oracle 数据库中表的名称和描述信息。
- 'get_column_details': 获取 Oracle 数据库中表的列名和描述信息。
- 'execute_sql': 执行 SQL 查询语句,并返回查询结果。
- 'create_comment_db_connection': 动态设置连接到注释数据库的连接字符串(通常在配置中设置即可)。
- 'connect_to_database': 动态设置连接到执行查询数据库的连接字符串(通常在配置中设置即可)。
LLM 可以根据 'get_table_details' 和 'get_column_details' 工具获取的元数据信息,构建合适的 SQL 查询语句,并使用 'execute_sql' 工具执行查询,从而实现与 Oracle 数据库的智能交互。
信息
分类
数据库与文件