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>
延伸阅读
- mcp-explorer — 同一天发布的 MCP 服务器 CLI 调试工具
- Stateless MCP has recaptured my interest — Simon Willison 对 MCP 2.0 的解读
复制成功后将正文粘贴到公众号后台即可发布