mcpField
S
sqlite-reader-mcp

sqlite-reader-mcp

本地服务
github.com/abhinavnatarajan数据库173 周前更新

关于 sqlite-reader-mcp

sqlite-reader-mcp 是用于检查 SQLite 数据库的只读 MCP 服务,适合需要查询数据和查看表结构的客户端。它将访问限制在获准路径内,并仅允许读取查询。

主要功能

  1. 01执行 SELECT 和 WITH 查询
  2. 02列出数据库表
  3. 03查看表结构
  4. 04限制访问获准路径
  5. 05限制查询结果行数

适用场景

  1. 01检查获准 SQLite 数据库中的记录
  2. 02查询前查看表名
  3. 03检查列类型和约束
  4. 04在不修改数据库的情况下查询数据

MCP 相关

该 MCP 服务提供工具,用于查询获准 SQLite 数据库、列出表并查看表结构。它会拒绝 SELECT 或 WITH 以外的语句。

配置

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

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

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

详细介绍

sqlite-reader-mcp

用于读取 SQLite 数据库的 MCP 服务。

概述

sqlite-reader-mcp 是一个轻量级 MCP 服务,提供对 SQLite 数据库的只读访问。用户可以执行 SELECT 查询、列出表并查看表结构。

功能

  • 只读访问:仅允许读取操作(SELECT 查询),确保数据完整性。
  • 安全路径处理:将数据库访问限制在预先批准的绝对文件路径和目录内。
  • SQL 验证:解析并验证 SQL 查询,仅允许 SELECT 和 WITH 语句,防止意外操作。
  • 异步操作:使用 aiosqlite 实现非阻塞数据库交互。
  • 行数限制:自动限制查询返回的行数,防止获取过多数据。
  • MCP 工具:
    • read_query:在指定的 SQLite 数据库上执行 SELECT SQL 查询。
    • list_tables:列出指定 SQLite 数据库中的所有表。
    • describe_table:获取指定表的结构信息(列名、类型等)。

要求

  • Python 3.13+
  • aiosqlite >= 0.21.0
  • fastmcp >= 2.6.1
  • sqlparse >= 0.5.3

安装

推荐使用 uv 安装:

uv tool install git+https://github.com/abhinavnatarajan/sqlite-reader-mcp

使用方法

sqlite-reader-mcp --paths /path/to/your/database.db /path/to/another/allowed_directory

参数:

  • --paths(或 -p):服务器允许访问的 SQLite 数据库文件或其所在目录的绝对路径列表。

服务器启动后,你可以使用 FastMCP 客户端与其交互,并使用以下工具:

read_query

在指定的 SQLite 数据库文件上执行 SELECT 查询。

  • 参数:
    • file_path (str):SQLite 数据库文件的绝对路径。
    • query (str):要执行的 SELECT SQL 查询。
    • params (Optional[List[Any]]):查询的可选参数列表。
    • fetch_all (bool):如果为 True(默认值),则获取所有结果;如果为 False,则获取一行。
    • row_limit (int):返回的最大行数(默认值为 1000)。
  • 返回值:字典列表,每个字典代表查询结果中的一行。
list_tables

列出指定 SQLite 数据库文件中的所有表。

  • 参数:
    • file_path (str):SQLite 数据库文件的绝对路径。
  • 返回值:表名(字符串)列表。
describe_table

提供 SQLite 数据库中指定表的详细结构信息。

  • 参数:
    • file_path (str):SQLite 数据库文件的绝对路径。
    • table_name (str):要描述的表名。
  • 返回值:字典列表,每个字典描述一列的信息(例如名称、类型、notnull、默认值和主键状态)。

安全性

  • 只读:该服务严格为只读。禁止使用 INSERT、UPDATE、DELETE 或其他数据修改 SQL 命令。
  • 路径白名单:访问范围仅限通过命令行参数 --paths 显式提供的路径中的 SQLite 文件。路径必须是绝对路径且存在。
  • 查询验证:所有 SQL 查询都会经过解析。仅允许 SELECT 语句(包括使用 WITH 的公用表表达式)。拒绝单个查询字符串中的多条语句。自动移除末尾的分号。

开发

本项目使用 setuptools 构建。配置位于 pyproject.toml 中。

评论

支持 Markdown

第一次接触 MCP?

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

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