关于 Grain SQL
Grain SQL 是 VS Code 中的 SQL 工作区,也可让 AI Agent 查询已配置的数据库。Agent 默认只有只读权限,其查询活动会显示在结果面板中。
主要功能
- 01从编辑器文件运行 SQL
- 02管理并测试连接配置
- 03可排序和筛选的结果表格
- 04将结果导出为 CSV、TSV 或 JSON
- 05通过 MCP 提供只读 Agent 查询
适用场景
- 01在编辑器中检查数据库架构
- 02查看 Agent 执行的查询及结果
- 03导出完整查询结果以供后续使用
MCP 相关
Grain 通过 MCP 向 Claude Code、Cursor 和 GitHub Copilot 提供已配置的数据库连接。需在设置中启用 MCP;Agent 默认只读,查询会显示在结果面板中。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y grain-toolsGRAIN_CONNECTIONS密钥JSON array of Grain connection profiles for headless use.GRAIN_MCP_SAFE_MODESet to false to allow mutating SQL. Defaults to true.GRAIN_MAX_ROWSMaximum rows returned by query tools. Defaults to 10000.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Grain
适用于 VS Code 和你使用的 AI Agent 的快速 SQL 工作区。
在任意 .sql 文件中使用 Ctrl+Enter 运行 SQL,并在 VS Code 内的可排序网格中查看结果。密码保存在操作系统密钥链中,Grain 不提供托管服务。

快速开始
- 从 VS Code Marketplace 或 Open VSX(适用于 Cursor、Windsurf 和 VSCodium)安装 Grain。
- 在 VS Code 中打开一个文件夹。Grain 会在其中添加演示文件。
- 打开 Grain 面板并点击 Try the Demo。
- 将光标放在打开文件中的任意查询处,然后按
Ctrl+Enter(macOS 上按Cmd+Enter)。
演示会通过 Grain 内置的 DuckDB 连接读取两个 CSV 文件,因此无需进行任何设置。若要查询自己的数据库,请运行 Grain: Manage Connections,添加配置,然后在保存前测试连接。

如果 Grain 对你有帮助,请给这个仓库点个星,帮助其他开发者发现它。
在 AI Agent 中使用 Grain
Grain 可通过 MCP 将数据库连接提供给 Claude Code、Cursor 和 GitHub Copilot。Agent 默认只能读取数据,并且 Agent 运行的每个查询都会显示在 Grain 结果面板中,让你准确了解它执行了哪些操作。
在设置中启用 grain.mcpEnabled 之前,MCP 处于关闭状态。各客户端的设置步骤请参阅 MCP 文档,示例提示词位于 examples/agents/。
功能
| 功能 | 说明 |
|---|---|
| 从编辑器运行 | Ctrl+Enter 运行整个文件;Run Query Under Cursor 运行一条语句;Run Query in New Tab 保留先前的结果 |
| 查询不会阻塞 | 查询在后台进程中运行,因此慢查询不会冻结 VS Code |
| 连接管理器 | 创建、测试和切换数据库配置,无需编辑 JSON |
| 结果网格 | 排序、筛选和调整列宽,查看每列的 SQL 类型,并将选中内容复制为 TSV |
| 完整导出 | 网格显示前 500 行;导出时会重新运行查询,并将所有行写入 CSV、TSV 或 JSON |
| 通过 MCP 访问 Agent | Claude Code、Cursor 和 Copilot 可查询你的连接;查询结果会显示在面板中 |
| 远程环境 | 支持 WSL、开发容器、GitHub Codespaces 和 Remote - SSH |
支持的数据库
| 关系型数据库 | PostgreSQL | MySQL | SQL Server | SQLite |
|---|---|---|---|---|
| 数据仓库 | Snowflake | BigQuery | ||
| 查询引擎和湖仓 | Trino / Presto | DuckDB | ||
| 搜索 | Elasticsearch |
通过 Trino 或 Presto,你可以查询集群中的 Iceberg、Delta Lake 和 Hive 表。 DuckDB 可直接查询本地 CSV 和 Parquet 文件。
扩展中已内置 PostgreSQL 和 Trino / Presto。其他数据库会在首次使用时加载其驱动程序;如果缺少驱动程序,Grain 会告知你需要安装什么。
需要其他数据库?申请连接器。 获得 👍 最多的请求会优先开发。
示例
Postgres、MySQL、
Elasticsearch 和 DuckDB 的可运行查询,以及
Agent 提示词。安装 Grain 后,打开任意 .sql 文件
并按 Ctrl+Enter。
隐私
- 你的 SQL、查询结果和密码都保留在本机。 密码存储在 VS Code Secret Storage 中,并由操作系统的钥匙串提供保护,绝不会存入设置文件。
- Agent 默认只能读取数据。 启用
grain.mcpSafeMode(默认设置)后,Agent 只能运行SELECT、SHOW、DESCRIBE、EXPLAIN、WITH和元数据查询。Agent 无法读取已存储的密码,也无法更改已保存的连接。 - 遥测数据匿名。 Grain 会发送使用情况数据,其中绝不包含 SQL、查询结果、凭据、主机名或架构名称。使用
grain.telemetry.enabled可将其关闭。
常见问题
Grain 是开源的吗?
不是。Grain 是闭源软件。此仓库包含问题跟踪器、文档和示例。
它支持哪些数据库?
支持上文列出的九种数据库。若要申请支持其他数据库,
申请连接器。
我的查询或密码会离开本机吗?
不会。Grain 没有服务端。查询会从 VS Code 直接发送到你的数据库,密码则保留在操作系统的钥匙串中。关于匿名遥测数据包含和不包含哪些信息,请参阅隐私。
如何连接 Claude Code 或 Cursor?
启用 grain.mcpEnabled,然后按照 MCP 文档中适用于你的客户端的步骤操作。
为什么我的数据库会显示驱动程序错误?
有些连接器会在首次使用时加载其驱动程序。错误消息会指出需要安装什么。如果安装后仍然失败,
请附上 Output 面板日志(View → Output → Grain)
提交错误报告。
获取帮助
我们目前还没有固定的路线图。接下来要开发什么,很大程度上取决于大家在这里提出的需求,尤其是连接器请求。如何提交优质议题,请参阅 CONTRIBUTING.md。
Star 历史记录
许可证
Grain 是闭源软件。请参阅 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。