使用说明
项目简介
本项目是一个基于 Model Context Protocol (MCP) 的服务器实现,旨在为大型语言模型 (LLM) 客户端提供 PostgreSQL 数据库的上下文信息和操作能力。通过此服务器,LLM 可以安全地探索数据库结构、获取表信息以及执行预定义的查询,从而实现更强大的数据库交互应用。
主要功能点
- 数据库结构分析:
- 列出指定 schema 中的所有表。
- 获取指定表的详细 schema 信息,包括列名、数据类型和约束。
- 安全查询执行:
- 执行参数化的 SELECT 查询,防止 SQL 注入。
- 仅允许 SELECT 查询,确保数据库安全。
- 配置灵活:
- 通过 '.env' 文件配置数据库连接信息,保护敏感数据。
- 错误处理:
- 完善的错误处理机制,处理数据库连接、无效查询和 schema 访问等问题。
安装步骤
-
克隆仓库
git clone https://github.com/NandaGopal56/mcp-server-demo cd mcp-server-demo -
安装依赖 确保已安装 Python 3.x 和 pip,然后运行以下命令安装项目依赖:
pip install -r requirements.txt -
配置数据库连接 在项目根目录下创建 '.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'。
基本使用方法
-
启动 MCP 服务器 在项目根目录下,运行以下命令启动 MCP 服务器:
python server.py服务器成功启动后,会输出 "Running Database Analyzer MCP Server..." 的信息。
-
客户端连接和工具调用 使用 MCP 客户端连接到该服务器。客户端可以使用服务器提供的工具('get_tables', 'get_table_schema', 'execute_query')来与 PostgreSQL 数据库进行交互。具体的工具调用方法请参考 MCP 客户端的文档和该服务器代码中 'DatabaseAnalyzer' 类里 '_register_tools' 方法的定义。例如,客户端可以调用 'get_tables' 工具获取数据库表列表,或调用 'execute_query' 工具执行预定义的 SQL 查询。
信息
分类
数据库与文件