使用说明

项目简介

本项目是一个基于 Model Context Protocol (MCP) 的服务器实现,旨在为大型语言模型 (LLM) 客户端提供 PostgreSQL 数据库的上下文信息和操作能力。通过此服务器,LLM 可以安全地探索数据库结构、获取表信息以及执行预定义的查询,从而实现更强大的数据库交互应用。

主要功能点

  • 数据库结构分析
    • 列出指定 schema 中的所有表。
    • 获取指定表的详细 schema 信息,包括列名、数据类型和约束。
  • 安全查询执行
    • 执行参数化的 SELECT 查询,防止 SQL 注入。
    • 仅允许 SELECT 查询,确保数据库安全。
  • 配置灵活
    • 通过 '.env' 文件配置数据库连接信息,保护敏感数据。
  • 错误处理
    • 完善的错误处理机制,处理数据库连接、无效查询和 schema 访问等问题。

安装步骤

  1. 克隆仓库

    git clone https://github.com/NandaGopal56/mcp-server-demo
    cd mcp-server-demo
  2. 安装依赖 确保已安装 Python 3.x 和 pip,然后运行以下命令安装项目依赖:

    pip install -r requirements.txt
  3. 配置数据库连接 在项目根目录下创建 '.env' 文件,并根据你的 PostgreSQL 数据库配置填写以下环境变量:

    POSTGRES_HOST=你的数据库主机地址
    POSTGRES_PORT=你的数据库端口号,默认为 5432
    POSTGRES_DB=你的数据库名称
    POSTGRES_USER=你的数据库用户名
    POSTGRES_PASSWORD=你的数据库密码

    请替换 '你的数据库主机地址'、'你的数据库端口号'、'你的数据库名称'、'你的数据库用户名'、'你的数据库密码' 为你的实际数据库连接信息。

服务器配置

MCP 客户端需要以下 JSON 格式的配置信息来连接到此 MCP 服务器。请注意,这里的 'command' 和 'args' 是用于启动 'server.py' 脚本的命令,客户端会使用这些信息来启动并连接到服务器。

{
  "serverName": "database_analyzer",
  "command": "python",
  "args": ["server.py"]
}
  • 'serverName': 服务器名称,代码中定义为 'database_analyzer'。
  • 'command': 启动服务器的命令,这里使用 'python'。
  • 'args': 命令参数,指定要运行的服务器脚本为 'server.py'。

基本使用方法

  1. 启动 MCP 服务器 在项目根目录下,运行以下命令启动 MCP 服务器:

    python server.py

    服务器成功启动后,会输出 "Running Database Analyzer MCP Server..." 的信息。

  2. 客户端连接和工具调用 使用 MCP 客户端连接到该服务器。客户端可以使用服务器提供的工具('get_tables', 'get_table_schema', 'execute_query')来与 PostgreSQL 数据库进行交互。具体的工具调用方法请参考 MCP 客户端的文档和该服务器代码中 'DatabaseAnalyzer' 类里 '_register_tools' 方法的定义。例如,客户端可以调用 'get_tables' 工具获取数据库表列表,或调用 'execute_query' 工具执行预定义的 SQL 查询。

信息

分类

数据库与文件