mcpField
M
mcp-sqlite

mcp-sqlite

本地服务
github.com/panasenco数据库2839 周前更新

关于 mcp-sqlite

mcp-sqlite 是一个用于 SQLite 数据库文件的 MCP 服务,可向 AI Agent 提供表结构目录和 SQL 查询能力,无需连接外部系统。它兼容 Datasette 的元数据格式,使人与 Agent 可以基于同一份数据和元数据进行探索。

主要功能

  1. 01通过 sqlite_get_catalog 获取表与列的目录
  2. 02使用 YAML 或 JSON 元数据补充描述信息
  3. 03通过 sqlite_execute 执行任意 SQL 查询
  4. 04将预定义查询转换为独立的 MCP 工具
  5. 05兼容 Datasette 元数据格式

适用场景

  1. 01让 AI Agent 查询本地 SQLite 数据文件
  2. 02为表和列添加描述以辅助 Agent 理解数据
  3. 03使用 MCP Inspector 或 Datasette 交互式浏览同一数据集

MCP 相关

该项目是一个 MCP 服务,向 MCP 客户端暴露 sqlite_get_catalog、sqlite_execute 等工具,并将元数据中定义的每个预设查询生成为一个工具。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"sqlite-panasenco": {
"command": "uvx",
"args": [
"mcp-sqlite"
]
}
}
}
启动命令uvx mcp-sqlite

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

安装包
pypimcp-sqlite

工具

还没有获取到工具列表

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

详细介绍

mcp-sqlite

README 配图

为 AI Agent 提供有用的数据,而无需让它们访问外部系统。也兼容供人类用户使用的 Datasette!

功能

  • AI Agent 可以通过一条命令获取 SQLite 数据库中所有表和列的结构:sqlite_get_catalog。
    • 可以使用简单的 YAML 或 JSON 元数据文件,为目录中的表和列添加描述。
  • 同一元数据文件还可以包含供 AI 使用的预设查询。 每个预设查询都会转换为一个单独的 MCP 工具 sqlite_execute_main_{tool name}。
  • AI Agent 可以使用 sqlite_execute 执行任意 SQL 查询。

使用 Visual Studio Code 快速入门

  1. 安装 uv。

  2. 如果尚未安装,请安装 Visual Studio Code。 启用 GitHub Copilot。

  3. 在 VS Code 中打开此仓库。 打开 GitHub Copilot Agent 模式聊天。 查看可用工具——你应该会看到 MCP Server:sqlite_sample,其中有三个可用工具。

    README 配图

  4. 你应该可以在 Agent 模式下向 Copilot 提问,例如“找出 28 岁的泰坦尼克号幸存者”,并获得回复。

    README 配图

  5. 使用示例 MCP 配置文件 mcp.json 和示例元数据文件 titanic.yml 作为你自己的配置起点。

使用 MCP Inspector 和 Datasette 交互式探索

可以使用相同的数据库和元数据文件,通过 MCP Inspector 和 Datasette 交互式探索数据。

MCP InspectorDatasette
README 配图README 配图
README 配图README 配图
MCP Inspector

使用 MCP Inspector 控制面板,以与 AI Agent 相同的方式与 SQLite 数据库交互:

  1. 安装 npm。
  2. 运行:
    npx @modelcontextprotocol/inspector uvx mcp-sqlite sample/titanic.db --metadata sample/titanic.yml
    
Datasette

由于 mcp-sqlite 元数据与 Datasette 元数据文件兼容,你也可以使用 Datasette 探索数据:

uvx datasette serve sample/titanic.db --metadata sample/titanic.yml

与 Datasette 兼容意味着 AI Agent 和人类都可以轻松探索相同的本地数据!

mcp-sqlite 提供的 MCP 工具

  • sqlite_get_catalog():Agent 可以调用此工具,获取数据中数据库、表和列的完整目录,并与元数据文件中的元数据合并。 在 mcp-sqlite 的早期版本中,这是一项资源,而不是工具,但资源的支持范围不够广泛,因此将其改为了工具。 如果你需要将目录作为资源使用,请提交 issue,我们会恢复此功能!
  • sqlite_execute(sql):Agent 可以调用此工具执行任意 SQL。表格结果以 HTML 格式返回。 如需了解 HTML 为何是大模型处理数据的最佳格式,请参阅 Siu et al。
  • {canned query name}({canned query args}):元数据中的每个预设查询都会创建一个工具,使 Agent 无需编写 SQL 即可运行预定义查询。

使用方法

命令行选项
usage: mcp-sqlite [-h] [-m METADATA] [-p PREFIX] [-v] sqlite_file

CLI command to start an MCP server for interacting with SQLite data.

positional arguments:
  sqlite_file           Path to SQLite file to serve the MCP server for.

options:
  -h, --help            show this help message and exit
  -m, --metadata METADATA
                        Path to Datasette-compatible metadata YAML or JSON file.
  -p, --prefix PREFIX   Prefix for MCP tools. Defaults to no prefix.
  -v, --verbose         Be verbose. Include once for INFO output, twice for DEBUG output.
元数据
隐藏表

使用 hidden: true 隐藏表 后,该表将不会显示在 MCP 工具 sqlite_get_catalog() 返回的目录中。 不过请注意,AI Agent 仍然可以访问该表! 切勿将从目录中隐藏表当作安全措施。

预置查询

mcp-sqlite 会将每个预置查询转换为一个单独的可调用 MCP 工具。

例如,名为 my_canned_query 的查询会变成一个名为 my_canned_query 的工具。

预置查询功能仍在积极开发中,近期计划推出更多功能:

路线图

Datasette 查询功能mcp-sqlite 是否支持?
在目录中显示✅
可执行✅
标题✅
描述✅
参数✅
显式参数❌(计划支持)
隐藏 SQL✅
预置查询的写入限制✅
分页❌(计划支持)
跨数据库查询❌(计划支持)
片段❌(未计划支持)
魔法参数❌(未计划支持)

评论

支持 Markdown

第一次接触 MCP?

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

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