使用说明
Oracle MCP服务器
用于查询Oracle学校管理数据库的模型上下文协议(MCP)服务器。
特性
- 连接到Oracle数据库
- 查询所有表:教师、科目、班级、学生、注册人数、课程
- 执行自定义SQL查询
- 查看数据库架构信息
安装
先决条件
- Python 3.8或更高版本
- Oracle即时客户端 -从下载并安装 Oracle网站
- 提取到目录(例如。,
/opt/oracle/instantclient_21_1) - 集
LD_LIBRARY_PATH环境变量:export LD_LIBRARY_PATH=/opt/oracle/instantclient_21_1:$LD_LIBRARY_PATH - 或使用
oracledb.init_oracle_client()在代码中(请参阅Oracle文档)
- 提取到目录(例如。,
再进行
重要提示: 这个项目使用Python虚拟环境来避免与系统包的冲突。
-
创建虚拟环境:
python3 -m venv venv -
激活虚拟环境:
# On Linux/macOS: source venv/bin/activate # On Windows: venv\Scripts\activate -
安装依赖项:
pip install -r requirements.txt备选方案: 使用执行上述所有操作的安装脚本:
./setup.sh
配置数据库连接
-
复制示例配置文件:
cp config.example.env .env -
编辑
.env使用您的数据库凭据:ORACLE_USER=your_username ORACLE_PASSWORD=your_password ORACLE_HOST=localhost ORACLE_PORT=1521 ORACLE_SERVICE_NAME=XE -
测试连接(确保虚拟环境已激活):
source venv/bin/activate # if not already activated python test_connection.py
配置
创建一个 .env 项目根目录中的文件:
ORACLE_USER=your_username
ORACLE_PASSWORD=your_password
ORACLE_HOST=localhost
ORACLE_PORT=1521
ORACLE_SERVICE_NAME=your_service_name
# OR use ORACLE_CONNECTION_STRING instead:
# ORACLE_CONNECTION_STRING=your_username/your_password@host:port/service_name
用法
运行服务器
重要提示: 始终先激活虚拟环境:
source venv/bin/activate # On Linux/macOS
# or
venv\Scripts\activate # On Windows
MCP服务器通过stdio进行通信,因此它通常由MCP客户端启动:
python src/server.py
对于测试,您可以直接运行它,但它需要stdin上的MCP协议消息。
测试连接
在使用MCP服务器之前,请测试您的数据库连接(虚拟环境已激活):
source venv/bin/activate # if not already activated
python test_connection.py
这将验证:
- 数据库连接
- 基本表访问
- 样本数据检索
MCP工具
服务器提供以下工具:
query_database-执行自定义SQL查询get_teachers-获取所有教师或按条件搜索get_students-获取所有学生或按条件搜索get_classes-获取所有课程或按学年/学期筛选get_subjects-获取所有科目get_enrollments-获取学生或班级的注册信息get_lessons-获取课程或日期范围get_student_schedule-获取学生的完整时间表
Docker部署
该项目包括Docker支持,便于部署。看 医生.md 详细说明。
Docker快速入门:
# Build without Oracle Instant Client (uses thin mode)
./docker-build.sh oracle-mcp-server
# Or use docker-compose
docker-compose up --build
连接到Cursor IDE
要将此MCP服务器连接到Cursor IDE,请参阅 CURSOR_SETUP.md 详细说明。
快速设置:
- 确保Docker容器正在运行:
docker-compose up -d - 将MCP服务器配置添加到Cursor的设置中(请参阅
cursor-config.json供参考) - 重新启动Cursor以加载MCP服务器
数据库模式
服务器连接到具有以下表的学校管理数据库:
teachers-教师信息subjects-科目/课程信息classes-课堂实例(教师+学科+学期)students-学生信息enrollments-学生班级注册lessons-课程/时间表条目