mcpField
M
MCP SQLite Server

MCP SQLite Server

本地服务
github.com/cnosuke数据库081 周前更新

关于 MCP SQLite Server

MCP SQLite Server 是面向 MCP 客户端的 Go 服务,可检查和修改 SQLite 数据库。它通过 JSON-RPC 提供表管理以及读写查询工具。

主要功能

  1. 01创建数据表
  2. 02查看表结构
  3. 03列出数据表
  4. 04执行读取查询
  5. 05执行写入查询

适用场景

  1. 01检查数据表及其结构
  2. 02使用 SELECT 查询读取记录
  3. 03使用 INSERT、UPDATE 或 DELETE 修改数据

MCP 相关

它通过 JSON-RPC 接口向 MCP 客户端提供 SQLite 数据表管理和查询工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"sqlite-cnosuke": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"pull"
]
}
}
}
启动命令docker run -i --rm pull

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocipull

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

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)

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。