关于 MCP SQLite Server
MCP SQLite Server 是面向 MCP 客户端的 Go 服务,可检查和修改 SQLite 数据库。它通过 JSON-RPC 提供表管理以及读写查询工具。
主要功能
- 01创建数据表
- 02查看表结构
- 03列出数据表
- 04执行读取查询
- 05执行写入查询
适用场景
- 01检查数据表及其结构
- 02使用 SELECT 查询读取记录
- 03使用 INSERT、UPDATE 或 DELETE 修改数据
MCP 相关
它通过 JSON-RPC 接口向 MCP 客户端提供 SQLite 数据表管理和查询工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MCP SQLite Server
MCP SQLite Server 是一个基于 Go 的 MCP 服务实现,用于封装 SQLite 数据库,让 MCP 客户端(例如 Claude Desktop)能够通过标准化的 JSON‑RPC 协议与 SQLite 交互。
功能
- 符合 MCP 规范: 根据 MCP 规范提供基于 JSON‑RPC 的工具执行接口。
- SQLite 操作: 支持创建表、描述表结构、列出表,以及执行读写查询等操作。
要求
- Docker(推荐)
本地开发所需:
- Go 1.24 或更高版本
- SQLite(如果数据库文件不存在,将自动创建)
- GCC 和开发工具(用于 CGO 编译)
使用 Docker(推荐)
docker pull cnosuke/mcp-sqlite:latest
# Run with default SQLite database
docker run -i --rm cnosuke/mcp-sqlite:latest
# Run with a mounted SQLite database
docker run -i --rm -v /path/to/your/db:/app/sqlite.db cnosuke/mcp-sqlite:latest
与 Claude Desktop 配合使用(Docker)
要通过 Docker 与 Claude Desktop 集成,请在 claude_desktop_config.json 文件中添加一项:
{
"mcpServers": {
"sqlite": {
"command": "docker",
"args": ["run", "-i", "--rm", "cnosuke/mcp-sqlite:latest"]
}
}
}
要通过卷挂载实现持久化存储:
{
"mcpServers": {
"sqlite": {
"command": "docker",
"args": ["run", "-i", "--rm", "-v", "/path/to/your/db:/app/sqlite.db", "cnosuke/mcp-sqlite:latest"]
}
}
}
构建和运行(Go 二进制文件)
或者,你也可以直接构建并运行 Go 二进制文件:
# Build the server
make bin/mcp-sqlite
# Run the server
./bin/mcp-sqlite server --config=config.yml
与 Claude Desktop 配合使用(Go 二进制文件)
要通过 Go 二进制文件与 Claude Desktop 集成,请在 claude_desktop_config.json 文件中添加一项:
{
"mcpServers": {
"sqlite": {
"command": "./bin/mcp-sqlite",
"args": ["server", "--config", "config.yml"],
"env": {
"LOG_PATH": "",
"SQLITE_PATH": "/path/to/your/sqlite.db"
}
}
}
}
此配置会在 Claude Desktop 中注册 MCP SQLite Server。将 LOG_PATH 设为空字符串后,服务只会输出致命错误,从而确保非关键日志不会干扰通过 stdio 传输的 MCP 协议消息。
配置
服务通过 YAML 文件进行配置(默认值:config.yml)。例如:
log: 'mcp-sqlite.log'
debug: false
sqlite:
path: './sqlite.db'
也可以通过环境变量指定配置选项:
LOG_PATH:日志文件路径(空字符串会禁用文件日志)DEBUG:启用调试日志(true/false)SQLITE_PATH:SQLite 数据库文件路径
日志记录
日志会写入 log 配置选项或 LOG_PATH 环境变量指定的文件。当此值为空时,只会将致命错误输出到 stderr,其他所有日志都会被抑制。
重要提示: 使用 stdio 传输方式运行 MCP 服务时,不得将日志输出到标准输出,否则会干扰 MCP 协议通信。对于 Claude Desktop,建议将 LOG_PATH 设为空字符串。
Docker 提示: Docker 镜像默认禁用文件日志,因为容器日志通常从 stdout/stderr 收集。
MCP 服务用法
MCP 客户端通过向服务发送 JSON‑RPC 请求来执行各种工具。支持以下 MCP 工具:
- create_table: 执行
CREATE TABLE语句。 - describe_table: 获取指定表的结构详情。
- list_tables: 返回 SQLite 数据库中的所有表。
- read_query: 执行
SELECT查询,并以 JSON 格式返回结果。 - write_query: 执行写入查询(例如
INSERT、UPDATE或DELETE)。
命令行参数
启动服务时,可以指定各种设置:
./bin/mcp-sqlite server [options]
选项:
--config、-c:配置文件路径(默认值为 "config.yml")。
贡献
欢迎贡献!请 fork 此仓库,并提交拉取请求,以改进项目或修复错误。对于重大更改,请先创建 issue,讨论你的想法。
许可证
本项目采用 MIT License 许可。
作者: cnosuke(x.com/cnosuke)
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。