这是一个用于 libSQL 数据库操作的 Model Context Protocol (MCP) 服务器,通过 Claude Desktop、Claude Code、Cursor 和其他兼容 MCP 的客户端提供安全的数据库访问。
运行在 Node 上,使用 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"
]
}
}
}
安装 Turso CLI:
curl -sSfL https://get.tur.so/install.sh | bash
登录到 Turso:
turso auth login
创建一个认证令牌:
turso auth token create --name "mcp-libsql"
获取你的数据库 URL:
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
配置 Claude Desktop:
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 查询来测试集成:
你能运行这个 SQL 查询吗: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.jsmcp-libsql --url file:///tmp/test.dbfile:///tmp/test.db预期 ',' 或 ']' 在 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
MIT 许可证 - 详情请参阅 LICENSE 文件。