使用说明
项目简介
本项目 'mcp-server-oracle' 是一个 MCP (Model Context Protocol) 服务器的实现,它允许大型语言模型 (LLM) 通过 MCP 协议访问 Oracle 数据库。该服务器提供了一组工具,使 LLM 能够列出数据库中的表,查看表结构,以及执行 SELECT 查询来检索数据。
主要功能点
- 列出数据库表 (list_tables): 允许 LLM 获取 Oracle 数据库中所有用户表的列表。
- 描述表结构 (describe_table): 允许 LLM 获取指定表的详细结构信息,包括列名、数据类型、是否允许为空、数据长度、主键和外键信息。
- 执行SELECT查询 (reqd_query): 允许 LLM 执行 SELECT 查询语句,从 Oracle 数据库中检索数据。注意:目前仅支持 SELECT 查询,不支持其他类型的SQL语句。
安装步骤
- 安装 UV 包管理器 (Prerequisites): 请确保你的系统已安装 UV 包管理器。UV 是一个快速的 Python 包安装和管理工具,你可以参考 UV 官方文档 进行安装。
- 安装 Python 3.12+ (Prerequisites): 本项目需要 Python 3.12 或更高版本。请确保你的 Python 版本符合要求。
- 安装 Claude Desktop (Prerequisites): 虽然理论上任何支持 MCP 协议的客户端都可以使用,但 Quickstart 示例是针对 Claude Desktop 应用的。
- 配置 Claude Desktop: 你需要将服务器配置添加到 Claude Desktop 的配置文件中,以便 Claude Desktop 能够连接到 'mcp-server-oracle' 服务器。
服务器配置
要让 MCP 客户端(例如 Claude Desktop)连接到 'mcp-server-oracle' 服务器,你需要在客户端的配置文件中添加服务器的启动信息。以下是针对 Claude Desktop 的配置示例,你需要将其添加到 Claude Desktop 的配置文件 'claude_desktop_config.json' 中。
配置文件路径:
- MacOS: '~/Library/Application\ Support/Claude/claude_desktop_config.json'
- Windows: '%APPDATA%/Claude/claude_desktop_config.json'
配置内容 (JSON 格式):
{ "mcpServers": { "mcp-server-oracle": { // 服务器名称,可以自定义 "command": "uvx", // 启动服务器的命令,这里使用 uvx 来运行 Python 脚本 "args": [ // 命令参数 "mcp-server-oracle" // 假设使用 uvx 运行 mcp-server-oracle 脚本 ], "env": { // 环境变量 "ORACLE_CONNECTION_STRING": "username/password@hostname:port/service_name" // Oracle 数据库连接字符串,**请替换为你的实际连接信息** } } } }
参数说明:
- '"mcpServers"': Claude Desktop 配置文件中用于定义 MCP 服务器的部分。
- '"mcp-server-oracle"': 服务器的名称,可以自定义,在 Claude Desktop 中用于标识和选择该服务器。
- '"command": "uvx"': 启动服务器的命令。 'uvx' 是 'uv run' 的别名,用于使用 uv 包管理器运行 Python 脚本。
- '"args": ["mcp-server-oracle"]': 传递给 'uvx' 命令的参数。 这里 '"mcp-server-oracle"' 可能是指一个可执行脚本或者模块名,具体取决于 'uvx' 的配置和项目的打包方式。 根据仓库的 'init.py' 文件,推测 'uvx mcp-server-oracle' 可以正确运行 'src/mcp_server_oracle/init.py' 文件中的 'main()' 函数。
- '"env": { "ORACLE_CONNECTION_STRING": "..." }"': 设置环境变量。 'ORACLE_CONNECTION_STRING' 是连接 Oracle 数据库所必需的连接字符串,请务必将其替换为你实际的 Oracle 数据库连接信息,包括用户名、密码、主机名、端口和服务名。
重要提示:
- 替换连接字符串: 请将 '"ORACLE_CONNECTION_STRING"' 的值替换为你的实际 Oracle 数据库连接字符串。确保连接字符串格式正确,并且提供的用户名和密码具有访问 Oracle 数据库的权限。
- 安装 oracledb 驱动: 本项目依赖 'oracledb' Python 库来连接 Oracle 数据库。你需要确保该库已安装。可以使用 'uv pip install oracledb' 命令进行安装。
- 运行服务器: 配置完成后,当 Claude Desktop 尝试使用 'mcp-server-oracle' 服务器时,它将使用你配置的 'command' 和 'args' 启动服务器进程。服务器默认使用 'stdio' 作为传输协议。
基本使用方法
- 启动 Claude Desktop: 启动配置了 'mcp-server-oracle' 服务器的 Claude Desktop 应用。
- 选择 MCP 服务器: 在 Claude Desktop 中,选择你配置的 MCP 服务器 (例如 "mcp-server-oracle")。
- 使用工具: 在与 LLM 的对话中,你可以指示 LLM 使用 'mcp-server-oracle' 服务器提供的工具,例如:
- "列出数据库中的所有表" (对应 'list_tables' 工具)
- "描述名为 'CONTACT' 的表的结构" (对应 'describe_table' 工具,参数为 'CONTACT')
- "查询 'CONTACT' 表中所有用户的姓名和邮箱" (对应 'reqd_query' 工具,参数为 'SELECT name, email FROM CONTACT')
LLM 将会调用相应的工具,'mcp-server-oracle' 服务器会连接到 Oracle 数据库执行操作,并将结果返回给 LLM。
请注意,由于仓库中 'init.py' 的 'reqd_query' 工具名称为 'reqd_query' 而不是 'read_query',使用时工具名称请以 'reqd_query' 为准。 仓库代码可能存在笔误。
信息
分类
数据库与文件