使用说明
MCP SQLite服务器
MCP SQLite Server是一个基于Go的MCP服务器实现,它封装了SQLite数据库,允许MCP客户端(例如Claude Desktop)通过标准化的JSON-RPC协议与SQLite交互。
特性
- MCP合规性: 根据MCP规范,为工具执行提供基于JSON-RPC的接口。
- SQLite操作: 支持创建表、描述表模式、列出表以及执行读写查询等操作。
需求
- Docker(推荐)
对于当地发展:
- 转到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 Binary)
或者,您可以直接构建并运行Go二进制文件:
# Build the server
make bin/mcp-sqlite
# Run the server
./bin/mcp-sqlite server --config=config.yml
与Claude Desktop一起使用(Go Binary)
要使用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"
}
}
}
}
此配置将MCP SQLite服务器注册到Claude Desktop。通过设置 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: 执行a
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”)。
贡献
欢迎投稿!请分叉存储库并提交改进或bug修复的pull请求。对于重大变化,先打开一个问题来讨论你的想法。
许可证
该项目根据MIT许可证获得许可。
作者 cnosuke( x.com/cnosuke )