DB2数据库交互服务器

一个基于Python的服务器,利用MCP框架与IBM DB2数据库交互,提供表列表和表元数据检索功能。

  • by huangjien
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 huangjien/db2-mcp-server

使用说明

db2mcp服务器

概述

这 db2-mcp-server 是一个基于Python的服务器,利用MCP框架与IBM DB2数据库进行交互。它提供了列出表和检索表元数据的工具。

特性

  • 列表表格:从连接的DB2数据库中检索表列表。
  • 获取表元数据:获取特定表的元数据,包括列详细信息和数据类型。
  • 动态提示加载:从JSON配置文件加载自定义提示,以获得灵活的查询帮助。
  • 内置提示:DB2查询帮助和模式分析的预配置提示。

需求

  • Python 3.12
  • FastMCP(最新稳定版本)
  • IBM DB2 Python驱动程序(ibm_db)
  • 派丹蒂克

安装说明

  1. 克隆存储库

    git clone <repository-url>
    cd db2-mcp-server
    
  2. 设置虚拟环境

    uv v0.6.x
    source uv/bin/activate
    
  3. 再进行

    pip install -r requirements.txt
    
  4. 运行服务器

    python src/db2_mcp_server/core.py
    

动态提示

服务器支持从JSON配置文件动态提示加载。设置 PROMPTS_FILE 环境变量,用于指定自定义提示配置文件。

示例用法

export PROMPTS_FILE=/path/to/your/prompts_config.json
python src/db2_mcp_server/core.py

配置格式

看 examples/prompts_config.json 对于一个完整的示例和 docs/DYNAMIC_PROMPTS.md 详细文档。

测试

  • 使用 pytest (版本≥7.0.0)用于运行测试。
  • 当前测试覆盖率: 92.98% (超过80%的要求)。
  • 全面的测试套件包括:
    • 核心功能测试(test_core.py)
    • 数据库工具测试(test_list_tables.py, test_metadata_retrieval.py)
    • 缓存机制测试(test_cache.py)
    • 记录配置测试(test_logger.py)
    • 动态瞬时加载试验(test_dynamic_loader.py, test_integration_dynamic_prompts.py)
  • 使用以下工具运行测试:
    pytest --cov=src/db2_mcp_server --cov-report=html tests/
    
  • 对于详细输出:
    pytest --cov=src/db2_mcp_server --cov-report=term-missing -v
    

安全和API限制

  • 服务器是只读的,禁止SQL INSERT、UPDATE或DELETE操作。
  • 使用仅具有SELECT权限的数据库用户。

日志记录

  • 错误以JSON格式的结构化日志记录,不包括敏感数据。

贡献

  • 欢迎捐款。请遵循项目的编码标准和测试指南。