使用说明
项目简介
Legion MCP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为AI助手提供数据库访问能力。它利用 Legion Query Runner 连接和查询数据库,并将数据库操作以 MCP 资源、工具和 Prompt 的形式暴露出来,从而使 LLM 能够安全、可控地与数据库进行交互。
主要功能点
- 数据库Schema查询: 提供资源接口,允许LLM获取数据库结构信息。
- SQL查询执行: 提供工具接口,允许LLM执行SQL查询并获取结果,支持 Markdown 表格和 JSON 两种格式。
- Prompt模板: 提供 Prompt 模板,辅助 LLM 生成 SQL 查询、解释查询和优化查询。
- 查询历史记录: 记录查询历史,方便LLM进行上下文理解和后续操作。
- 灵活配置: 支持通过环境变量、命令行参数或 MCP 配置文件进行数据库连接配置。
- 多种部署方式: 可作为独立的 MCP 服务器运行,易于部署和集成。
安装步骤
- 安装 uv 包管理器: 如果尚未安装,请先安装 uv:
pip install uv - 创建并激活虚拟环境: 使用 uv 创建并激活虚拟环境:
uv venv source .venv/bin/activate # Linux/macOS .venv\Scripts\activate # Windows - 安装项目依赖: 使用 uv 安装项目及其依赖:
uv pip install -e .
服务器配置
为了让 MCP 客户端 (例如 Claude 等 AI 助手) 连接到 Legion MCP Server,您需要在客户端的 MCP 设置中添加或配置一个 Server。以下是一个典型的 MCP Server 配置 JSON 示例,您需要根据您的实际环境进行修改:
{ "legion_db_access": { // 服务器名称,您可以自定义,用于在客户端中标识和引用 "command": "uv", // 运行服务器的命令,这里使用 uv 包管理器 "args": [ // 命令参数列表 "--directory", // 指定工作目录参数 "/path/to/legion-mcp", // 请替换为您的 legion-mcp 仓库在您机器上的**绝对路径** "run", // uv 的 run 子命令,用于运行 Python 脚本 "mcp_server.py" // 要运行的 MCP 服务器脚本文件名 ], "env": { // 环境变量配置,用于传递数据库连接信息 "DB_TYPE": "pg", // 数据库类型,例如 "pg" (PostgreSQL), "mysql", "sqlite" 等,请根据您使用的数据库类型修改 "DB_CONFIG": "{\"host\":\"localhost\",\"port\":5432,\"user\":\"username\",\"password\":\"password\",\"dbname\":\"database_name\"}" // 数据库连接配置,JSON 字符串格式,包含数据库连接所需的 host, port, user, password, dbname 等信息,请根据您的数据库连接信息修改 }, "disabled": false, // 是否禁用此服务器配置,false 表示启用,true 表示禁用 "autoApprove": [] // 自动批准的操作列表,例如可以配置工具或 Prompt 的名称,允许在无需用户确认的情况下自动执行某些操作 } }
请将上述 JSON 配置添加到您的 MCP 客户端的设置文件中。具体的配置文件位置和格式请参考您的 MCP 客户端的文档。
基本使用方法
- 确保已按照安装步骤配置并成功启动 Legion MCP Server。
- 在您的 MCP 客户端中启用并连接到配置好的 "legion_db_access" 服务器(或您自定义的服务器名称)。
- 在 AI 助手中,您可以:
- 使用 'schema://all' 资源浏览数据库结构。
- 使用 'execute_query' 工具执行 SQL 查询,例如提问 "执行 SQL 查询 'SELECT * FROM users LIMIT 10;'"。
- 使用 'sql_query' Prompt 模板让 AI 助手帮您生成 SQL 查询,例如提问 "使用 sql_query Prompt,我想查询最近一周注册的用户数量"。
- 利用其他提供的工具和 Prompt 模板进行数据库相关的操作。
请参考仓库的 README.md 文件和 'mcp_server.py' 脚本了解更多高级用法和配置选项。
信息
分类
数据库与文件