PatOrg案例管理MCP-Oracle自然语言到SQL
模型上下文协议(MCP)服务器,将自然语言查询转换为 软件开发工程师 PatOrg病例管理系统。此存储库仅适用于Oracle,并使用真实的模式文档。
概述
此MCP服务器使Claude(或其他AI助手)能够:
- 阅读详细的Oracle模式文档
- 查看查询模式和业务术语表
- 从自然语言生成安全的Oracle SQL
- 执行前验证查询
- 安全执行只读SELECT查询
项目结构
patorg-case-mcp-oracle/
├── src/
│ ├── server.py # MCP server definition (resources & tools)
│ ├── db.py # Oracle connection and query execution
│ └── validators.py # Query validation and safety checks
├── docs/
│ ├── schema.md # Oracle schema documentation
│ ├── patterns.md # Natural language → SQL examples
│ ├── glossary.md # Business term definitions
│ ├── end-to-end-testing.md # Testing guide
│ └── fastmcp-tools-explained.md # MCP tools explanation
├── tests/
│ └── test_queries.py # Validation & execution tests (pytest)
├── start_mcp_server.py # MCP server wrapper (loads .env credentials)
├── toggle_mcp.ps1 # PowerShell script to enable/disable MCP
├── toggle_mcp.bat # Windows batch wrapper for toggle script
├── .env.example # Template for Oracle credentials
├── QUICKSTART.md # Quick start guide
├── CLAUDE_DESKTOP_INTEGRATION.md # Claude Desktop setup guide
├── COMPLETION_SUMMARY.md # Project completion summary
├── claude_desktop_config.template.json
├── pyproject.toml
└── README.mdMCP资源和工具
资源(阅读):
case_schema→docs/schema.mdquery_patterns→docs/patterns.mdbusiness_glossary→docs/glossary.mddb_summary→ 实时Oracle摘要
工具(执行):
validate_queryexecute_query
安全特性
- 仅选择强制执行
- Oracle架构的白名单表(AKTE、CPIDE/CPID/CPIDF、P7LIST\*、HIST\*、LOHI、ADRS\*、DOVE\*、DOKU)
- 大型表上的WHERE子句要求
- 被阻止的关键字(删除/插入/更新等)
- SQL注释阻止
- 自动行限制
FETCH FIRST n ROWS ONLY
快速开始
- 安装依赖项:
pip install -e .- 配置Oracle凭据:
cp .env.example .env
# Edit .env with your Oracle credentials- 运行测试:
pytest tests/test_queries.py -v- 与Claude Desktop集成:
看 CLAUDE_DESKTOP_INTEGRATION.md 有关完整的设置说明。
有关详细设置,请参阅 QUICKSTART.md.
Claude的查询示例
一旦与Claude Desktop集成,您就可以用自然语言提问:
简单查询:
- “显示AKTE表中的所有案例文件”
- “用户RUH创建了哪些案例文件?”
- “显示AKTE表的结构”
- “CPIDE表中有多少行?”
最近的活动:
- “显示过去30天内修改的文件”
- “本周创建了哪些文件?”
- “显示LOHI表中的最近登录活动”
状态和优先级:
- “显示STATUSAKT不为空的文件”
- “查找HAKTE=1的主文件”
- “显示高优先级文件(PRIOANZ>0)”
历史与变化:
- “显示文件MK 118的历史记录”
- “HISTST01的最新变化是什么?”
- “显示DOVE表中的文档历史记录”
关系和工作:
- “显示CPIDE中包含其参与方信息的文件”
- “从ADR中查找病例及其地址”
- “获取包含文档引用的文件”
分析:
- “按创建文件的用户统计文件”
- “在AKTE中显示状态分布”
- “哪些用户最活跃?”
克劳德将:
- 阅读架构文档(docs/schema.md)
- 查看查询模式(docs/patterns.md)
- 生成适当的Oracle SQL
- 使用验证工具进行验证
- 安全执行并返回结果
故障排除
- 需要Oracle连接参数 → Check
.env文件具有正确的凭据。 - 查询验证失败 → 审查
docs/patterns.md为了确保查询模式的安全性。 - 克劳德没有看到MCP → 重新启动Claude Desktop并验证配置路径。
- 导入错误 → 确保软件包已安装:
pip install -e . - MCP服务器无法启动 → 测试:
python start_mcp_server.py
有关更多帮助,请参阅:
- docs/end-to-end testing.md -完整的测试指南
- CLAUDE_DESKTOP_INTEGRATION.md -集成故障排除
实用脚本
start_mcp_server.py-使用.env凭据启动MCP服务器(与Claude Desktop一起使用)toggle_mcp.ps1-在Claude Desktop配置中启用/禁用MCP服务器toggle_mcp.bat-切换脚本的Windows包装器(双击切换)
运行测试
# Run all tests
pytest tests/test_queries.py -v
# Run specific test
pytest tests/test_queries.py::TestQueryValidator::test_valid_select_queries -v
# Expected: 12 tests passed参考文献
______________________________________________________________________
版本: 1.0.0\ 最后更新时间: 2026年2月\ 状态: 仅支持Oracle的生产就绪MCP服务器
主要特点:
- ✅ 仅限Oracle(删除所有SQLite/mock引用)
- ✅ 正确的Python打包(pip install-e.)
- ✅ 完整的pytest测试覆盖率(12次测试)
- ✅ 安全凭据管理(.env文件)
- ✅ Claude桌面集成就绪
- ✅ 切换脚本以方便启用/禁用
