MCP libSQL 是一个用于 libSQL 数据库操作的模型上下文协议(MCP)服务器,它支持通过 Claude Desktop、Claude Code、Cursor 等兼容 MCP 的客户端安全地访问数据库。该项目基于 Node.js 运行,使用 TypeScript 编写。
pnpm install -g @xexr/mcp-libsql
mcp-libsql --url file:///tmp/test.db --log-mode console
在 Claude Desktop 中配置 Node.js 路径和数据库 URL(配置示例见下文)。
✅ 完整的数据库管理能力 - 已实现并测试全部 6 个核心工具。
✅ 全面的安全验证 - 进行了 67 项安全测试,覆盖所有注入向量。
✅ 广泛的测试覆盖 - 共 244 项测试(177 项单元测试 + 67 项安全测试),通过率达 100%。
✅ 生产部署验证 - 已成功与 MCP 客户端配合使用。
✅ 强大的错误处理 - 支持连接重试、优雅降级和审计日志记录。
🔐 安全详情:有关全面的安全特性和测试,请参阅 docs/SECURITY.md。
# 使用你选择的包管理器,如 npm、pnpm、bun 等
# 全局安装
pnpm install -g @xexr/mcp-libsql
mcp-libsql -v # 检查版本
# ...或从仓库构建
git clone https://github.com/Xexr/mcp-libsql.git
cd mcp-libsql
pnpm install # 安装依赖
pnpm build # 构建项目
node dist/index.js -v # 检查版本
以下假设为全局安装,若使用本地构建,请将 "mcp-libsql" 替换为 "node dist/index.js"。
# 使用文件数据库进行测试(默认:仅记录到文件)
mcp-libsql --url file:///tmp/test.db
# 使用 HTTP 数据库进行测试
mcp-libsql --url http://127.0.0.1:8080
# 使用 Turso 数据库进行测试(环境变量,也可导出环境变量)
LIBSQL_AUTH_TOKEN="your-token" mcp-libsql --url "libsql://your-db.turso.io"
# 使用 Turso 数据库进行测试(CLI 参数)
mcp-libsql --url "libsql://your-db.turso.io" --auth-token "your-token"
# 开发模式,使用控制台日志记录
mcp-libsql --dev --log-mode console --url file:///tmp/test.db
# 使用不同的日志记录模式进行测试
mcp-libsql --url --log-mode both file:///tmp/test.db
根据操作系统在 Claude Desktop 中配置 MCP 服务器。
~/Library/Application Support/Claude/claude_desktop_config.json 创建配置文件。全局安装
{
"mcpServers": {
"mcp-libsql": {
"command": "mcp-libsql",
"args": [
"--url",
"file:///Users/username/database.db"
]
}
}
}
本地构建安装的替代配置
{
"mcpServers": {
"mcp-libsql": {
"command": "node",
"args": [
"/Users/username/projects/mcp-libsql/dist/index.js",
"--url",
"file:///Users/username/database.db"
],
}
}
}
使用 nvm lts 进行全局安装的替代配置
{
"mcpServers": {
"mcp-libsql": {
"command": "zsh",
"args": [
"-c",
"source ~/.nvm/nvm.sh && nvm use --lts > /dev/null && mcp-libsql --url file:///Users/username/database.db",
],
}
}
}
重要提示:建议使用全局安装方法,因为它会自动处理 PATH。
~/.config/Claude/claude_desktop_config.json 创建配置文件。全局安装
{
"mcpServers": {
"mcp-libsql": {
"command": "mcp-libsql",
"args": [
"--url",
"file:///home/username/database.db"
]
}
}
}
本地构建安装的替代配置
{
"mcpServers": {
"mcp-libsql": {
"command": "node",
"args": [
"/home/username/projects/mcp-libsql/dist/index.js",
"--url",
"file:///home/username/database.db"
],
}
}
}
%APPDATA%\Claude\claude_desktop_config.json 创建配置文件。全局安装
{
"mcpServers": {
"mcp-libsql": {
"command": "wsl.exe",
"args": [
"-e",
"bash",
"-c",
"mcp-libsql --url file:///home/username/database.db",
]
}
}
}
本地构建安装的替代配置
{
"mcpServers": {
"mcp-libsql": {
"command": "wsl.exe",
"args": [
"-e",
"bash",
"-c",
"/home/username/projects/mcp-libsql/dist/index.js --url file:///home/username/database.db",
]
}
}
}
使用 nvm 进行全局安装的替代配置
{
"mcpServers": {
"mcp-libsql": {
"command": "wsl.exe",
"args": [
"-e",
"bash",
"-c",
"source ~/.nvm/nvm.sh && mcp-libsql --url file:///home/username/database.db",
]
}
}
}
重要提示:使用 wsl.exe -e(而不仅仅是 wsl.exe)以确保正确处理命令,并避免 Windows 上服务器命令接收问题。
对于 Turso(和其他需要凭证的)数据库,你需要一个认证令牌。有两种安全的提供方式:
以下展示的是全局安装示例,请根据你的设置进行相应调整。
使用环境变量配置 Claude Desktop(macOS/Linux 示例)
export LIBSQL_AUTH_TOKEN="your-turso-auth-token-here"
{
"mcpServers": {
"mcp-libsql": {
"command": "mcp-libsql",
"args": [
"--url",
"libsql://your-database.turso.io"
]
}
}
}
{
"mcpServers": {
"mcp-libsql": {
"command": "mcp-libsql",
"args": [
"--url",
"libsql://your-database.turso.io",
"--auth-token",
"your-turso-auth-token-here"
]
}
}
}
curl -sSfL https://get.tur.so/install.sh | bash
turso auth login
turso auth token create --name "mcp-libsql"
turso db show your-database-name --url
# 创建数据库
turso db create my-app-db
# 获取数据库 URL
turso db show my-app-db --url
# 输出: libsql://my-app-db-username.turso.io
# 创建认证令牌
turso auth token create --name "mcp-libsql-token"
# 输出: your-long-auth-token-string
export LIBSQL_AUTH_TOKEN="your-turso-auth-token-here"
{
"mcpServers": {
"mcp-libsql": {
"command": "mcp-libsql",
"args": [
"--url",
"libsql://my-app-db-username.turso.io"
]
}
}
}
# 先进行本地测试
mcp-libsql --url "libsql://my-app-db-username.turso.io" --log-mode console
file:///absolute/path/to/database.dbhttp://hostname:portlibsql://your-database.turso.iowhich node 查找 Node.js 安装路径。cwd 以确保相对路径正常工作。file 模式可防止 MCP 协议中的 JSON 解析错误。--log-mode console 进行开发调试。--log-mode both 进行全面日志记录。--log-mode none 禁用所有日志记录。更新配置后,完全重启 Claude Desktop。
通过要求 Claude 运行 SQL 查询来测试集成
Can you run this SQL query: SELECT 1 as test
📖 详细 API 文档:有关完整的输入/输出示例和参数,请参阅 docs/API.md。
# 运行所有测试
pnpm test
# 以监视模式运行测试
pnpm test:watch
# 运行带覆盖率的测试
pnpm test:coverage
# 运行特定测试文件
pnpm test security-verification
# 代码检查
pnpm lint
# 修复代码检查问题
pnpm lint:fix
# 类型检查
pnpm typecheck
测试覆盖率:403 项测试覆盖所有功能,包括边缘情况、错误场景、CLI 参数、认证和全面的安全验证。
# 清理并重新构建
rm -rf dist node_modules
pnpm install && pnpm build
SyntaxError: Unexpected token '??='
问题:Claude Desktop 可能默认使用系统中较旧的 Node.js 版本,该版本不支持所需的功能集。
解决方案:使用上述全局安装和 nvm 节点选择方法。
pnpm install -g @xexr/mcp-libsqlpnpm build 且 dist/index.js 存在。mcp-libsql --url file:///tmp/test.dbfile:///tmp/test.db。Expected ',' or ']' after array element in JSON
已解决:此问题由 stdout 控制台日志记录引起。--log-mode 选项现在默认使用 file 模式,可防止此问题。如果看到这些错误,请确保使用默认的 --log-mode file 或根本不指定 --log-mode。注意,此错误无害,如果需要控制台日志记录,工具仍然可以正常工作。
# 测试数据库连接性
sqlite3 /tmp/test.db "SELECT 1"
# 修复权限
chmod 644 /path/to/database.db
🔧 完整的故障排除指南:有关所有问题的详细解决方案,请参阅 docs/TROUBLESHOOTING.md。
该项目使用 TypeScript 和现代 Node.js 模式构建:
开发:pnpm dev • 构建:pnpm build • 测试:pnpm test
✅ 完整的数据库管理能力 - 所有 6 个核心工具都已实现并通过测试。
✅ 全面的安全验证 - 进行了 67 项安全测试,涵盖了所有可能的注入向量。
✅ 广泛的测试覆盖 - 总计 244 项测试(177 项单元测试 + 67 项安全测试),通过率达到 100%。
✅ 生产部署验证 - 已经在实际环境中与 MCP 客户端成功配合使用。
✅ 强大的错误处理 - 支持连接重试、优雅降级和审计日志记录,确保系统的稳定性和可靠性。
本项目采用 MIT 许可证,详情请参阅 LICENSE 文件。