Mcp Db Context

Mcp Db Context

🚀 MCP 服务器

MCP 服务器(Database Context Provider)专为大规模 Oracle 数据库量身打造,提供一系列强大的数据库上下文功能,能有效提升数据库操作的便捷性和效率。

✨ 主要特性

MCP 服务器提供了一系列实用工具,可帮助用户高效地操作和管理 Oracle 数据库,以下是主要工具的介绍:

  • search_columns:用于搜索包含特定术语的表列。
  • get_pl_sql_objects:获取与指定模式匹配的所有 PL/SQL 对象信息。
  • get_object_source:显示特定 PL/SQL 对象的源代码。
  • get_table_constraints:展示表上的所有约束,包括主键、外键、唯一约束和检查约束。
  • get_table_indexes:列出表上定义的所有索引,有助于进行查询优化。
  • get_dependent_objects:查找依赖于指定数据库对象的所有对象。
  • get_user_defined_types:显示数据库中自定义类型的信息。
  • get_related_tables:展示与指定表通过外键关系相关联的所有表。

🔧 技术细节

架构

MCP 服务器采用三层架构,旨在优化大规模 Oracle 数据库的性能:

  1. DatabaseConnector 层
    • 负责管理 Oracle 数据库的连接和查询执行。
    • 实现了连接池和重试逻辑,提高连接的稳定性和可靠性。
    • 直接处理原始 SQL 操作。
  2. SchemaManager 层
    • 实现了智能模式缓存,减少重复查询带来的性能开销。
    • 提供高效的模式查找和搜索功能,加快数据检索速度。
    • 管理持久化在磁盘上的缓存,确保数据的持久性。
  3. DatabaseContext 层
    • 提供高级 MCP 工具和接口,方便用户进行复杂操作。
    • 处理授权和访问控制,保障数据安全。
    • 优化模式信息,以便更好地供 AI 使用。

连接模式

数据库连接器支持两种工作模式:

Thin Mode(默认)

默认情况下,连接器采用 Oracle 的薄模式,这是一种纯 Python 实现,具有以下优点:

  • 更易于部署和设置,降低了使用门槛。
  • 足以处理大多数基本数据库操作。
  • 具有更高的环境可移植性,可在多种环境中使用。

Thick Mode

对于需要高级 Oracle 功能或更好性能的场景,可以启用厚模式:

  • 使用 Docker:在 Docker 环境变量中设置 THICK_MODE=1
  • 本地安装:导出 THICK_MODE=1 环境变量,并确保已安装与系统架构和数据库版本兼容的 Oracle 客户端库。

⚠️ 重要提示

使用 Docker 时,无需担心安装 Oracle 客户端库,因为它们已包含在容器中(Oracle Instant Client v23.7)。容器支持 Oracle 数据库版本从 19c 到 23ai,适用于 Linux/arm64 和 Linux/amd64 架构。

📦 安装指南

系统要求

  • Python:版本 3.12 或更高(建议使用以获得最佳性能)。
  • 内存:至少 4GB 可用 RAM(适用于拥有 10,000 张表以上的大型数据库)。
  • 磁盘空间:最少 500MB 的空闲空间用于模式缓存。
  • Oracle 数据库:兼容 Oracle Database 11g 及更高版本。
  • 网络:与 Oracle 数据库服务器的稳定连接。

📈 性能考量

  • 初始缓存构建时间可能需要 5 - 10 分钟(具体取决于数据库大小)。
  • 后续启动时间大幅缩短,仅需几秒即可完成。
  • 支持高并发访问,性能表现优异。

🤝 贡献指南

欢迎社区贡献!请参考项目文档了解如何参与开发和提交问题。

📄 许可证

如需获取更多信息或技术支持,请联系 project maintainers。项目的许可协议详见 LICENSE 文件。

  • 0 关注
  • 0 收藏,21 浏览
  • system 提出于 2025-09-24 03:42

相似服务问题

相关AI产品