nala db mcp
用于查询数据库的模型上下文协议(MCP)服务器。支持SQLite、PostgreSQL、MySQL和具有只读访问权限的Microsoft SQL Server。
特性
- 多数据库支持:SQLite、PostgreSQL、MySQL和MS SQL Server
- 只读操作:通过DML操作阻塞安全执行查询
- MCP集成:通过模型上下文协议公开数据库查询
- csv输出:查询结果以CSV格式返回
- 基于环境的配置:通过连接
DATABASE_URL环境变量
用法
您可以将此MCP服务器与任何MCP客户端一起使用,如Cursor或Claude Desktop。
光标中的配置
将以下配置添加到MCP设置文件中(通常在光标设置或 .cursorrules):
{
"mcpServers": {
"nala-db-mcp": {
"command": "bunx nala-db-mcp",
"env": {
"DATABASE_URL": "mssql://sa:test@localhost:1433/test"
}
}
}
}替换 DATABASE_URL 使用数据库连接字符串的值:
- SQLite:
sqlite://path/to/database.db - PostgreSQL:
postgres://user:password@localhost:5432/dbname - MySQL:
mysql://user:password@localhost:3306/dbname - MS SQL Server:
mssql://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 startMCP服务器将启动并在stdio上监听MCP客户端连接。
可用工具
run-query
对配置的数据库执行只读SQL查询。
输入:
query(string):要执行的SQL查询。必须是SELECT查询(无INSERT、UPDATE、DELETE等)
输出:
- CSV格式的查询结果
例子:
SELECT * FROM users WHERE active = 1发展
运行测试
# Run all tests
bun test
# Run specific test file
bun test test/db.test.ts装订和格式化
bun run check这将运行Biome,并启用代码格式化和linting的自动修复。
项目结构
index.ts-MCP服务器设置和工具注册src/db.ts-数据库连接逻辑和实用程序test/db.test.ts-测试套件
安全
- 任何东西都不是防弹的,因此建议创建一个具有只读权限的新用户
- 所有数据库连接都是只读的
- DML操作(INSERT、UPDATE、DELETE等)通过正则表达式验证被阻止
- 连接字符串支持加密连接(MS SQL Server使用
Encrypt=true)
许可证
麻省理工学院
______________________________________________________________________
