MCP数据库服务器
项目简介
MCP数据库服务器是一个实现了模型上下文协议(MCP)的服务端应用,旨在为大型语言模型(LLM)客户端提供标准化的数据库访问能力。它支持连接到多种数据库系统,并允许LLM客户端通过预定义的工具和资源与数据库进行交互,例如执行查询、检索表结构等。
主要功能点
- 支持多种数据库: 目前支持 SQLite, PostgreSQL, Microsoft SQL Server 三种主流数据库。
- 资源管理: 提供数据库模式 (database-schema)、表模式 (table-schema)、表列表 (tables-list) 等资源,方便LLM获取数据库结构信息。
- 工具注册与执行: 内置 'connect-database', 'disconnect-database', 'execute-query', 'execute-update' 等工具,允许LLM客户端连接数据库、执行SQL查询和更新操作。
- 多种传输协议: 支持 SSE (Server-Sent Events) 和 STDIO (标准输入输出) 两种传输协议,适应不同的应用场景。
- 环境配置: 支持通过环境变量配置数据库连接信息,方便集成和部署。
- Claude Desktop 集成: 提供详细的 Claude Desktop 客户端集成配置指南。
安装步骤
- 安装 Node.js 和 npm: 确保你的系统已安装 Node.js 和 npm (Node 包管理器)。
- 全局安装 MCP 数据库服务器: 打开终端或命令提示符,运行以下命令进行全局安装:
安装成功后,你可以在命令行中直接使用 'mcp-dbs' 命令。npm install -g mcp-dbs
服务器配置
MCP 服务器主要通过命令行参数 '--stdio' 或 '--port' 以及环境变量进行配置。以下是在 MCP 客户端(例如 Claude Desktop)中配置 MCP 数据库服务器的示例,以 JSON 格式提供:
Claude Desktop 配置示例 (JSON):
{ "mcpServers": { "mcp-dbs": { "command": "node", "args": [ "/path/to/your/mcp-dbs/dist/cli.js", // 请替换为 mcp-dbs 安装目录中 cli.js 文件的绝对路径 "--stdio" // 使用 STDIO 模式,如果使用 SSE 模式,则移除此参数并配置端口 ], "env": { // 环境变量配置,用于数据库连接,根据需要配置 "MCP_MSSQL_SERVER": "your-server-address", // SQL Server 服务器地址 "MCP_MSSQL_PORT": "1433", // SQL Server 端口 "MCP_MSSQL_DATABASE": "your-database-name", // SQL Server 数据库名 "MCP_MSSQL_USER": "your-username", // SQL Server 用户名 "MCP_MSSQL_PASSWORD": "your-password", // SQL Server 密码 "MCP_MSSQL_ENCRYPT": "true", // SQL Server 加密连接 "MCP_MSSQL_TRUST_SERVER_CERTIFICATE": "true" // SQL Server 信任服务器证书 } } } }
配置说明:
- '"server name": "mcp-dbs"': 为你的 MCP 服务器指定一个名称,例如 "mcp-dbs",用于在客户端中标识和引用。
- '"command": "node"': 指定启动 MCP 服务器的命令,通常为 'node',表示使用 Node.js 运行时环境。
- '"args": [...]': 传递给启动命令的参数数组。
- '"/path/to/your/mcp-dbs/dist/cli.js"': 重要: 需要替换为 'mcp-dbs' 安装目录中 'dist/cli.js' 文件的绝对路径。你可以在安装 'mcp-dbs' 后,通过 'npm list -g mcp-dbs' 命令找到全局安装路径,然后拼接出 'dist/cli.js' 的完整路径。
- '"--stdio"' 或 '"--port <端口号>"': 指定 MCP 服务器的运行模式。
- '"--stdio"': 使用 STDIO 模式,适用于通过标准输入输出与客户端通信的场景。
- '"--port <端口号>"': 使用 SSE 模式,并通过指定的端口号启动 HTTP 服务器。例如 '"--port 8080"' 将在 8080 端口启动 SSE 服务器。如果省略 '--port' 参数,默认使用 3001 端口。
- '"env": {...}': 配置环境变量,用于传递数据库连接信息。根据你使用的数据库类型(SQLite, PostgreSQL, SQL Server),配置相应的环境变量。示例中展示的是 SQL Server 的环境变量配置,你需要根据你的数据库类型和实际连接信息进行修改。
- SQLite: 主要配置 'MCP_SQLITE_FILENAME' (数据库文件路径) 和 'MCP_SQLITE_CREATE_IF_NOT_EXISTS' (是否在文件不存在时创建)。
- PostgreSQL: 配置 'MCP_POSTGRES_HOST', 'MCP_POSTGRES_PORT', 'MCP_POSTGRES_DATABASE', 'MCP_POSTGRES_USER', 'MCP_POSTGRES_PASSWORD', 'MCP_POSTGRES_SSL' 等连接信息。
- SQL Server: 配置 'MCP_MSSQL_SERVER', 'MCP_MSSQL_PORT', 'MCP_MSSQL_DATABASE', 'MCP_MSSQL_USER', 'MCP_MSSQL_PASSWORD', 'MCP_MSSQL_ENCRYPT', 'MCP_MSSQL_TRUST_SERVER_CERTIFICATE' 等连接信息。
注意: 请务必根据你的实际环境和数据库配置,修改上述 JSON 配置文件中的路径、参数和环境变量。
基本使用方法
- 启动 MCP 数据库服务器: 根据你选择的模式 (STDIO 或 SSE) 和配置,在终端或命令提示符中运行 'mcp-dbs' 命令,并带上相应的参数,例如 'mcp-dbs --stdio' 或 'mcp-dbs --port 8080'。
- 配置 MCP 客户端: 在你的 MCP 客户端 (例如 Claude Desktop) 中,根据上述 “服务器配置” 部分的说明,配置 MCP 数据库服务器的连接信息。
- 在客户端中使用工具和资源: 配置完成后,你可以在 MCP 客户端中使用 'connect-database' 工具连接到数据库,然后使用 'execute-query' 等工具执行 SQL 查询,或访问 'database-schema' 等资源获取数据库结构信息。具体工具和资源的使用方法请参考仓库的 README 文档。
例如,在 Claude 中,你可以这样提问:
- "Connect to database 'my-sqlite-db' of type sqlite with filename './mydb.db'" (调用 'connect-database' 工具)
- "Get the schema of database 'my-sqlite-db'" (访问 'database://my-sqlite-db/schema' 资源)
- "Execute query 'SELECT * FROM users' on database 'my-sqlite-db'" (调用 'execute-query' 工具)
总结
MCP 数据库服务器提供了一种便捷的方式,将数据库能力集成到支持 MCP 协议的 LLM 应用中。通过简单的安装和配置,即可让 LLM 具备数据库访问和分析能力,扩展 LLM 的应用场景。
信息
分类
数据库与文件