返回市场
数据库2-MCP服务器

数据库2-MCP服务器

作者:huangjien2 星标更新:2025-07-02

项目介绍

db2-mcp-server

PyPI 版本 许可证: MIT 覆盖率

概述

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

功能

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

要求

  • Python 3.12
  • FastMCP(最新稳定版)
  • IBM DB2 Python 驱动程序 (ibm_db)
  • Pydantic

安装指南

  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_m_ cp_server/core.py

配置格式

参见 examples/prompts_config.json 获取完整示例,并查看 docs/DYNAMIC_PROMPTS.md 获取详细文档。

测试

  • 使用 pytest(版本 ≥ 7.0.0)运行测试。
  • 当前测试覆盖率:92.98%(超过 80% 的要求)。
  • 综合测试套件包括:
    • 核心功能测试(test_core.py
    • 数据库工具测试(test_list_tables.pytest_metadata_retrieval.py
    • 缓存机制测试(test_cache.py
    • 日志配置测试(test_logger.py
    • 动态提示加载测试(test_dynamic_loader.pytest_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 格式记录,不包含敏感数据。

贡献

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