返回市场
纳拉数据库MCP

纳拉数据库MCP

作者:daviziks2 星标更新:2025-11-15

项目介绍

nala-db-mcp

一个用于查询数据库的模型上下文协议(MCP)服务器。支持只读访问的SQLite、PostgreSQL、MySQL和Microsoft SQL Server。

功能

  • 多数据库支持:SQLite、PostgreSQL、MySQL 和 MS SQL Server
  • 只读操作:通过阻止DML操作来安全执行查询
  • MCP集成:通过模型上下文协议暴露数据库查询
  • CSV输出:查询结果以CSV格式返回
  • 基于环境的配置:通过DATABASE_URL环境变量连接

使用方法

您可以使用任何MCP客户端(如Cursor或Claude Desktop)与这个MCP服务器一起工作。

在Cursor中的配置

在您的MCP设置文件中添加以下配置(通常位于您的Cursor设置或.cursorrules中):

{
  "mcpServers": {
    "nala-db-mcp": {
      "command": "bunx nala-db-mcp",
      "env": {
        "DATABASE_URL": "mssql://sa:test@localhost:1433/test"
      }
    }
  }
}

用您的数据库连接字符串替换DATABASE_URL值:

  • SQLitesqlite://path/to/database.db
  • PostgreSQLpostgres://user:password@localhost:5432/dbname
  • MySQLmysql://user:password@localhost:3306/dbname
  • MS SQL Servermssql://user:password@localhost:1433/dbname

配置完成后,MCP服务器将在您的Cursor环境中可用,并且您可以使用run-query工具执行只读SQL查询。

使用方法(本地)

对于本地开发或自定义集成,您可以直接安装并运行服务器。

安装

bun install

配置

DATABASE_URL环境变量中设置您的数据库连接字符串:

# SQLite
export DATABASE_URL="sqlite://path/to/database.db"

# PostgreSQL
export DATABASE_URL="postgres://user:password@localhost:5432/dbname"

# MySQL
export DATABASE_URL="mysql://user:password@localhost:3306/dbname"

# MS SQL Server
export DATABASE_URL="mssql://user:password@localhost:1433/dbname"

运行服务器

bun run start

MCP服务器将启动并监听stdio上的MCP客户端连接。

可用工具

run-query

对已配置的数据库执行只读SQL查询。

输入:

  • query(字符串):要执行的SQL查询。必须是SELECT查询(不允许INSERT、UPDATE、DELETE等)。

输出:

  • CSV格式的查询结果

示例:

SELECT * FROM users WHERE active = 1

开发

运行测试

# 运行所有测试
bun test

# 运行特定测试文件
bun test test/db.test.ts

检查和格式化

bun run check

这将启用自动修复功能运行Biome进行代码格式化和检查。

项目结构

  • index.ts - MCP服务器设置和工具注册
  • src/db.ts - 数据库连接逻辑和实用工具
  • test/db.test.ts - 测试套件

安全性

  • 任何东西都不是坚不可摧的,因此建议创建具有只读权限的新用户
  • 所有数据库连接都是只读的
  • 通过正则表达式验证阻止DML操作(INSERT、UPDATE、DELETE等)
  • 连接字符串支持加密连接(MS SQL Server使用Encrypt=true

许可证

MIT


使用Bun模型上下文协议SDK构建