llms.txt 完整文档索引请参见 llms.txt
工具
xiaohui
收录

datasette-mcp | 给 Datasette 加一个 MCP 服务器

datasette-mcp 官网首屏

datasette-mcp:把 Datasette 变成 AI 可查询的数据库

datasette-mcp 是 Datasette 官方(datasette 组织)发布的插件,给任何 Datasette 实例加一个 /-/mcp 端点——AI Agent 通过 MCP 协议连接后,可以直接列出数据库、查看 schema、执行只读 SQL。Datasette 原本就有面向人的 Web 界面,这个插件补上了面向 AI 的接口层。

插件于 2026-07-28 发布(与 MCP 2.0 无状态规范同日),采用 MCP Streamable HTTP,Apache 2.0 协议。

核心能力

默认暴露三个只读工具

  • list_databases:列出当前用户可见的数据库
  • get_database_schema:返回数据库完整 SQL schema(表、索引、视图、触发器)
  • execute_sql:执行一条只读 SQL,返回结构化列、行和截断标记

权限模型与 Datasette 一致

数据库可见性和 execute-sql 权限在每次工具调用时强制校验,SQL 走与 Datasette 自定义 SQL 接口相同的 validate_sql_select() 和只读 Database.execute() 路径——不是另开一个后门,而是复用 Datasette 自己的权限体系。这对「把生产数据暴露给 AI」的场景很关键:Agent 能查的,和网页用户能查的,边界一致。

其他插件可扩展工具

from datasette import hookimpl

@hookimpl
def register_mcp_tools(datasette, mcp):
    @mcp.tool()
    async def database_count() -> int:
        """Return the number of user-facing databases."""
        return len([name for name in datasette.databases if name != "_internal"])

Datasette 插件体系里任何插件都可以通过 register_mcp_tools hook 向 MCP 服务器注册自己的工具,用 MCP Python SDK 标准的 @mcp.tool() 装饰器。也就是说,这个插件不只是「加三个固定工具」,而是给整个 Datasette 插件生态开了 MCP 出口。

为什么值得关注

MCP 2.0 无状态化让「给现有工具加 MCP 接口」从重工程变成轻插件。datasette-mcp 是最典型的示范:一个插件文件,把已经运行多年的 Datasette 实例变成 AI Agent 可以直接查询的数据源,不需要改数据库、不需要写胶水服务。

对数据型团队的实际场景:内部 Datasette 上有一堆运营数据,想让 AI Agent 做分析——装这个插件,Agent 就能 list_databases 看有什么库、get_database_schema 理解表结构、execute_sql 跑查询。只读约束 + 权限复用,比「给 Agent 一个数据库账号」安全得多。

局限

  • 只读 SQL——Agent 不能写数据(这是设计选择,不是缺陷)
  • 需要 Datasette 环境(SQLite 数据源),不是通用数据库网关
  • 项目新(2026-07-28),GitHub Star 6,等待社区插件贡献

快速开始

datasette install datasette-mcp
datasette serve mydata.db
# MCP 客户端连接 <http://localhost:8001/-/mcp>

延伸阅读

复制成功后将正文粘贴到公众号后台即可发布