mcpField
S
SQLite MCP Server

SQLite MCP Server

本地服务
github.com/isaacgounton数据库115 周前更新

关于 SQLite MCP Server

SQLite MCP Server 为 MCP 客户端提供 SQLite 数据库操作,支持 stdio 和 Streamable HTTP。它还提供表管理、数据库结构资源和业务洞察记录,并对 SQL 输入进行校验。

主要功能

  1. 01执行读取与写入查询
  2. 02创建、删除和检查表
  3. 03通过资源公开数据库结构
  4. 04记录业务洞察
  5. 05支持 stdio 与 Streamable HTTP
  6. 06校验 SQL 并阻止多语句注入

适用场景

  1. 01通过 MCP 查询或更新 SQLite 数据
  2. 02检查表、列、索引和外键
  3. 03让远程客户端连接数据库服务
  4. 04累积分析中发现的业务洞察

MCP 相关

该服务通过 MCP 提供 SQL 查询、表管理等工具,以及数据库结构和洞察备忘录资源。支持 stdio 与 Streamable HTTP 传输。

配置

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

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

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

安装包
ocibuild

工具

还没有获取到工具列表

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

详细介绍

SQLite MCP Server

CI License: ISC smithery badge

一个用于执行 SQLite 数据库操作的模型上下文协议(MCP)服务。支持 stdio(用于 Claude Desktop、Cursor 等)和 Streamable HTTP(用于远程客户端)传输方式。

功能

  • 内存或基于文件的 SQLite 数据库
  • 双重传输方式:stdio 和 Streamable HTTP
  • SQL 操作,带输入验证和注入防护
  • 表管理(CREATE、DROP、LIST、DESCRIBE)
  • 将数据库架构作为 MCP 资源公开
  • 业务洞察备忘录跟踪
  • 支持 Docker

快速开始

Stdio(Claude Desktop、Cursor 等)
npm install && npm run build
node build/index.js

添加到 Claude Desktop 配置文件(claude_desktop_config.json)中:

{
  "mcpServers": {
    "sqlite": {
      "command": "node",
      "args": ["/path/to/sqlite-mcp-server/build/index.js"]
    }
  }
}

使用基于文件的数据库:

{
  "mcpServers": {
    "sqlite": {
      "command": "node",
      "args": ["/path/to/sqlite-mcp-server/build/index.js", "/path/to/database.db"]
    }
  }
}
Streamable HTTP(远程客户端)
node build/index.js --http

服务在 http://localhost:3000/mcp 上公开单个端点,并遵循 MCP Streamable HTTP 规范。默认情况下,它绑定到 127.0.0.1。若要从其他主机或容器访问,请设置 HOST=0.0.0.0——但请先阅读安全部分:HTTP 传输方式没有身份验证。

Docker
docker build -t sqlite-mcp-server .
docker run -d -p 3000:3000 -e HOST=0.0.0.0 --name sqlite-mcp sqlite-mcp-server

必须设置 HOST=0.0.0.0,服务才能通过已发布的端口访问。通过 localhost:3000 从主机连接即可直接使用;若要通过其他主机名访问,请将该主机添加到 MCP_ALLOWED_HOSTS。

配置

选项描述默认值
--http使用 Streamable HTTP 传输方式代替 stdiostdio
第一个非标志参数SQLite 数据库文件路径:memory:
SQLITE_DB_PATH数据库路径(环境变量替代方式):memory:
PORTHTTP 服务端口(仅限 HTTP 模式)3000
HOSTHTTP 模式下要绑定的接口。使用 0.0.0.0 可在 localhost 之外公开访问127.0.0.1
MCP_ALLOWED_HOSTS以逗号分隔的 Host 标头允许列表,用于防护 DNS 重绑定localhost:$PORT,127.0.0.1:$PORT
MCP_AUTH_TOKEN所有 /mcp 请求都必须提供的 Bearer 令牌(HTTP 模式)。未设置 = 禁用身份验证(无)

示例:

# In-memory database on stdio
node build/index.js

# File-based database on stdio
node build/index.js ./data.db

# HTTP mode with custom port
PORT=8080 node build/index.js --http ./data.db

# Using environment variable
SQLITE_DB_PATH=./data.db node build/index.js --http

可用工具

工具描述
read_query执行 SELECT、WITH(CTE)或 EXPLAIN 查询
write_query执行 INSERT、UPDATE、DELETE 或 REPLACE 查询
create_table使用 CREATE TABLE 语句创建新表
drop_table删除表(不可逆)
list_tables列出所有用户创建的表
describe_table获取表架构:列、索引和外键
append_insight将业务洞察添加到备忘录资源

资源

URI描述
sqlite://{db}/schema所有表的完整架构(CREATE 语句)
memo://insights分析过程中积累的业务洞察

提示词

名称描述
mcp-demo引导式演练:创建表、插入示例数据,并针对给定主题运行查询

远程连接

Streamable HTTP

将任何兼容 MCP 的客户端连接到 http://your-host:3000/mcp。服务支持:

  • POST /mcp — 发送 MCP 消息(初始化时创建会话)
  • GET /mcp — 用于会话恢复的 SSE 流
  • DELETE /mcp — 终止会话
  • GET /health — 健康检查端点

会话通过 Mcp-Session-Id 标头管理。

身份验证

设置 MCP_AUTH_TOKEN,要求每个 /mcp 请求都携带 bearer 令牌(/health 保持开放):

MCP_AUTH_TOKEN=$(openssl rand -hex 32) HOST=0.0.0.0 node build/index.js --http

客户端随后发送 Authorization: Bearer <token>。未设置 MCP_AUTH_TOKEN 时,身份验证处于禁用状态——仅绑定到 localhost 时可以这样做,但请勿在未设置该变量的情况下将服务公开到公网。

安全性

  • 查询验证:每个工具只接受其指定类型的 SQL 语句
  • 阻止多语句注入:拒绝堆叠语句,并在检查前去除字符串字面量和注释
  • 表名需符合 ^[a-zA-Z_][a-zA-Z0-9_]*$
  • 默认启用外键
  • HTTP 传输默认绑定到 127.0.0.1,并启用 DNS 重绑定防护(MCP_ALLOWED_HOSTS)
  • HTTP 传输可选通过 MCP_AUTH_TOKEN 启用 bearer 令牌身份验证(采用时序安全检查)

在将 HTTP 传输暴露到 localhost 之外之前,请先设置 MCP_AUTH_TOKEN。 在生产环境中,还应在服务前端部署一个负责终止 TLS 的反向代理。有关完整的安全模型以及如何报告漏洞,请参阅 SECURITY.md。

开发

npm install
npm run build
npm test           # build + run the validator test suite
npm start          # stdio mode
npm run start:http # HTTP mode

许可证

ISC

评论

支持 Markdown

第一次接触 MCP?

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

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