关于 alephgrid
alephgrid 是用于大型数据集的开源电子表格,可在本地或自托管服务器上结合工作簿、数据表和 SQL。其只读 MCP 接口让 Agent 检查工作簿架构、读取数据、运行 SQL 和使用已保存查询,并为结果提供回执。
主要功能
- 01处理大型 CSV 和 Parquet 数据表
- 02兼容 Excel 的工作表与公式
- 03SQL、已保存查询和分析工具
- 04带结果回执的只读 MCP 访问
- 05支持本地或自托管部署
适用场景
- 01让 Agent 安全检查工作簿数据
- 02通过 MCP 查询大型数据表
- 03在 Agent 工作流中复用已保存查询
MCP 相关
通过 Streamable HTTP(`/mcp`)或 stdio(`alephgrid mcp`)提供只读 Agent 访问。功能包括架构卡片、目录搜索、数据读取、只读 SQL、已保存查询与分析,并附带内容哈希回执。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://{alephgrid_host}/mcpclaude mcp add --transport http dev-alephgrid-alephgrid https://{alephgrid_host}/mcp{"mcpServers":{"dev-alephgrid-alephgrid":{"type":"http","url":"https://{alephgrid_host}/mcp"}}}在 Cursor 中打开{"servers":{"dev-alephgrid-alephgrid":{"type":"http","url":"https://{alephgrid_host}/mcp"}}}在 VS Code 中打开{"mcpServers":{"dev-alephgrid-alephgrid":{"type":"http","url":"https://{alephgrid_host}/mcp"}}}{"mcpServers":{"dev-alephgrid-alephgrid":{"serverUrl":"https://{alephgrid_host}/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://{alephgrid_host}/mcp需要授权工具
详细介绍
一款开源电子表格,适用于不适合放进电子表格的数据。
支持数亿行数据、真正的电子表格公式,以及按需使用的 SQL。
可在你的笔记本电脑或自有服务器上运行。你的数据永远不会离开设备。
在浏览器中打开包含数亿行数据的 CSV 或 Parquet 文件,然后滚动、排序、筛选、编辑,并添加计算列。除了这些大型数据表,你还可以创建带有格式、图表和 XLOOKUP、SUMIFS 等 Excel 公式的普通工作表,并让这些公式直接引用大型数据表。所有内容都在你设备上的 DuckDB 文件中运行。没有席位限制、套餐等级或付费墙:导出、登录、团队及所有其他功能均免费。
alephgrid flights.parquet # opens http://127.0.0.1:7878 with the file loaded
alephgrid --demo-rows 100000000 # or try it on 100M generated rows
![]() | ![]() |
| 自定义函数置于侧边栏中:代码、测试、文档和版本 | 按需使用 SQL,停靠在网格下方(深色主题) |
![]() | |
| 中心页:查看每个工作簿、其大小及其计算是否正在运行 |
状态:预发布。 首个版本(v0.1.0)正在准备中。现在即可从源代码构建,或使用 Docker 构建;发布的二进制文件和镜像将在正式发布时提供。请参阅已提供和未提供的功能。
为什么选择 Alephgrid
- 大表依然快速。 打开工作簿时不会将任何内容读入内存。网格只请求屏幕上显示的行,因此滚动到第 900,000,000 行也只是一次范围读取。排序会生成一个排列,而不是复制数据;计算列只会针对你查看的行进行计算。
- 身边就有真正的电子表格。 工作表使用 Excel 语法和兼容 Excel 的引擎(IronCalc),支持格式设置、合并单元格、冻结窗格、图表、颜色规则、批注,以及 XLSX 导入和导出。
- 在大表上使用电子表格公式。 工作表单元格中的
=XLOOKUP(A2, customers[id], customers[region])和=SUMIFS(orders[amount], orders[region], A2)会作为一次查询在整张表上运行,而不是逐行查找。请参阅表格公式。 - 无需 SQL,也可使用 SQL。 无需编写 SQL 即可使用筛选、透视、联接和图表;SQL 工作区默认关闭,只有在你打开时才会启用,服务端也可以将其关闭。
- 由你掌控运行方式。 一个内嵌 UI 的二进制文件,数据存储在普通目录中,采用 Apache-2.0 许可证。团队可在同一二进制文件中获得空间、角色、单点登录、审计、配额和备份功能。
- 通过 MCP 使用 Agent。 通过 Model Context Protocol 向 AI Agent 授予对工作簿表格、工作表和已保存查询的读取权限,并为每个结果提供回执。
功能
| 导入 | CSV/TSV(自动检测)、Parquet、JSON/JSONL、gzip 文件作为表格导入;XLSX 作为可编辑工作表导入。支持拖放或使用命令行。数据以流式方式加载,并在侧边窗格中显示列类型和样例,供你检查 |
| 表格 | 虚拟画布网格,支持任意行数;编辑单元格、插入和删除行;添加、重命名和删除列;计算列(=[fare_usd] / [distance_mi]);对整张表进行多列排序和筛选;按表头值筛选并显示计数;保存的视图 |
| 工作表 | Excel 公式、跨工作表引用、命名范围、动态数组、LET / LAMBDA;公式自动补全和参数帮助;撤销/重做 |
| 编辑 | 键盘优先:方向键、Shift 和 Mod 选择、F2、Mod+A(先选中填充区域,再选中整个工作表)、复制、剪切、粘贴并平移公式、选择性粘贴(值、公式、格式、转置)、向下和向右填充,以及可延续序列(1、2 → 3、4;第 1 周 → 第 2 周)或重复模式的填充柄。参见 键盘操作 |
| 格式和布局 | 粗体、斜体、下划线、删除线、字号、颜色、边框、对齐、自动换行、数字格式、合并单元格;冻结行和列、调整大小、隐藏和取消隐藏、缩放 50–200%;保存在 XLSX 中 |
| 工作表数据 | 查找和替换(单个工作表或全部工作表)、对区域排序和筛选、颜色规则和色阶、允许值列表、图表(柱形图、条形图、折线图、面积图、散点图、饼图),保存前可预览;带回复的评论 |
| 分析 | 实时计算所选内容的求和、平均值和计数;使用 Analyze 窗格,无需 SQL 即可生成汇总、数据透视表、联接、图表和列概况;去重、拆分、修剪和转换类型,均可预览 |
| SQL | 架构浏览器、自动补全、$parameters、可取消的预览、带版本的已保存和实时查询、从查询生成表格、完整导出;仅读取工作簿自身的表格 |
| 函数 | 将可复用函数定义为工作表公式、SQL 表达式或沙盒化的 Python 函数;测试函数、发布版本、固定版本并回滚。参见 函数 |
| 导出 | 将任意表格或筛选视图导出为 CSV、Parquet 或 JSON 行;将工作表导出为 XLSX,并附带 XLSX 无法保存内容的报告 |
| 协作 | 多人可同时使用同一个工作簿,并实时看到彼此的编辑;支持历史记录和修订版恢复 |
| 团队 | 组织、空间、所有者/编辑者/查看者角色(也支持来自身份提供商群组的角色)、邀请、服务令牌、密码或 OpenID Connect 登录、配额、审计日志、备份和管理界面。参见 团队 |
| 计算 | 每个打开的工作簿都有独立的内存和线程配额;空闲时休眠,打开时唤醒;重型工作簿可使用更大的规格(--profile)。参见 计算 |
| Agent(MCP) | 按空间或工作簿建立只读 Agent 连接,通过 Streamable HTTP(/mcp)或 stdio(alephgrid mcp)接入:架构卡片、目录搜索、读取、只读 SQL、已保存的查询和分析、内容哈希回执、每个连接的活动记录 |
完整功能列表(包括部分支持或暂无计划的功能)见 docs/SPREADSHEET_FEATURES.md。
快速开始
安装发行版
从 v0.1.0 开始(正在准备中;参见发布说明):
npx alephgrid flights.parquet # npm, or: pnpm dlx / yarn dlx / bunx alephgrid
docker run -p 7878:7878 -v alephgrid-data:/data ghcr.io/alephgrid/alephgrid
也可以从 GitHub Releases 下载适用于 Linux(x86_64、arm64)或 macOS(Apple 芯片、Intel)的 alephgrid-VERSION-TARGET.tar.gz,并使用 SHA256SUMS 校验。Windows 用户请使用 Docker
或 WSL。
从源代码构建
需要 Rust 1.88+ 和 Node 20+。
git clone https://github.com/alephgrid/alephgrid && cd alephgrid
(cd web && npm install && npm run build) # build the UI (embedded into the binary)
cargo build --release
./target/release/alephgrid --demo-rows 10000000
首次构建会从源代码编译 DuckDB,需要几分钟。
Docker(面向团队)
docker compose up -d
docker compose logs alephgrid | grep "setup code" # the one-time code that creates the admin
open http://localhost:7878/setup
使用 --auth accounts 时,用户可通过密码或单点登录(OpenID Connect)登录,空间会为他们分配角色;请参阅 docs/TEAMS.md。不使用此选项时(在自己的机器上默认如此),无需登录,且服务仅监听 127.0.0.1。如何为他人运行服务,以及备份、升级和恢复的相关说明,请参阅 docs/OPERATIONS.md。
选项
| 标志 | 环境变量 | 默认值 |
|---|---|---|
--data-dir | ALEPHGRID_DATA_DIR | ./alephgrid-data |
--host / --port | ALEPHGRID_HOST / ALEPHGRID_PORT | 127.0.0.1 / 7878 |
--auth local|accounts | ALEPHGRID_AUTH | local:无需登录,仅限环回地址 |
--public-url | ALEPHGRID_PUBLIC_URL | 用户访问服务的地址(SSO 必需;https 会将 Cookie 设为 Secure) |
--oidc-issuer、--oidc-client-id | ALEPHGRID_OIDC_*(密钥:ALEPHGRID_OIDC_CLIENT_SECRET) | 不启用单点登录 |
--session-hours | ALEPHGRID_SESSION_HOURS | 12 |
--space-storage、--space-workbooks、--space-jobs、--space-open-workbooks | ALEPHGRID_SPACE_* | 不设限制(管理员可按空间设置) |
--memory-limit | ALEPHGRID_MEMORY_LIMIT | DuckDB 默认值(RAM 的 80%,超出部分写入磁盘) |
--threads | ALEPHGRID_THREADS | 所有核心 |
--disk-reserve | ALEPHGRID_DISK_RESERVE | 保留 32MiB,以便磁盘空间耗尽时服务仍可重启(运维说明) |
--idle-timeout | 工作簿计算在无活动后休眠前等待的秒数 | |
--profile name=MEM:THREADS[:dedicated] | 管理员可分配给空间的额外计算规格 | |
--disable-sql | ALEPHGRID_DISABLE_SQL | 允许 SQL;设置后,将拒绝所有执行用户编写的 SQL 的操作 |
--demo-rows N | 生成演示工作簿 | |
alephgrid mcp --url URL --token agc_… | ALEPHGRID_URL、ALEPHGRID_AGENT_TOKEN | 通过标准输入/输出将 MCP 客户端连接到正在运行的服务(docs/MCP.md) |
alephgrid --help 会列出所有选项。
公式
在工作表中,公式使用 Excel 语法:=SUM(B2:B9)、=XLOOKUP(...)、=Budget!B4*2。
工作表公式可以按名称读取整张表:
=SUMIFS(orders[amount], orders[region], $A2, orders[month], $B$1)
=XLOOKUP(A2, customers[id], customers[region], "none")
像使用任何公式一样填充或拖动它;每个副本都会读取自身所在的行。 公式目录列出了受支持的函数及经过测试的示例,已知限制则附有可复现的输入。
在表格中,计算列通过名称引用列,开头的 = 可省略:
=[fare_usd] / [distance_mi]
=CASE WHEN [dep_delay_min] > 15 THEN 'late' ELSE 'on time' END
=[origin] || '→' || [dest]
典型流程:使用 Analyze 或 SQL 汇总 1 亿行数据,选择 Open in sheet,然后基于结果建模。
构建方式
- 底层使用 DuckDB。 每个工作簿都是一个 DuckDB 文件:采用列式存储、经过压缩,并可利用多个核心并行处理。导入数据时使用 DuckDB 自带的 CSV、Parquet 和 JSON 读取器。
- 工作表使用 IronCalc,并存储在同一个工作簿文件中。
- Rust 服务端(axum、HTTP 和 WebSocket)内嵌 UI;TypeScript 客户端采用画布网格,不使用框架。线缆类型由 Rust 生成,并通过测试检查类型是否发生偏差。
请参阅 docs/ARCHITECTURE.md。
实测数据(2,000 万行表格,9 列,调试版本,8 核 / 8 GB 笔记本电脑)
| 操作 | 时间 |
|---|---|
| 重启后重新打开工作簿 | 3 ms(无需重新载入) |
| 获取第 0 / 1,000 万 / 1,999 万行处的 100 行 | 3–11 ms |
筛选 carrier = DL AND origin = SEA(匹配 12.5 万行) | 34 ms |
| 按浮点列排序 2,000 万行 | 0.95 s |
| 对 2,000 万行中的某列求和/平均值/最小值/最大值 | 28 ms |
| 使用 SQL 按 carrier 分组 | 39–57 ms |
| 编辑 1 个单元格 / 粘贴 1,000 个单元格 | 3 ms / 43 ms |
使用 alephgrid --demo-rows 20000000 和 docs/bench.mjs 可复现这些结果。针对不同数据形态的发布版本基准测试将随 v0.1.0 一同发布。
文档
从 docs/README.md 开始。最常用的页面:
| 面向 | 阅读 |
|---|---|
| 电子表格用户 | 功能 · 键盘 · 表格公式 · 函数 · 分析 |
| 运行服务 | 运维 · 团队 · 计算 · 安全 · MCP |
| 贡献者 | 参与贡献 · 架构 · 协议 · 测试策略 |
开发
cargo run -p alephgrid-server -- --demo-rows 1000000 # API on :7878
cd web && npm run dev # UI with hot reload on :5173 (proxies to :7878)
cargo test --workspace
crates/alephgrid-core DuckDB tables, views, formulas, IronCalc sheets (pure Rust library)
crates/alephgrid-server axum HTTP + WebSocket server, CLI, MCP, embedded UI
web/ TypeScript client (canvas grid, row cache, UI) and browser tests
docs/ user, operator and contributor documentation
README 截图由运行中的产品通过
web/scripts/readme-screenshots.mjs生成。
路线图
v0.1.0 之后的下一步:支持就地读取 S3 和 Parquet 数据,然后在 Kubernetes 上进行多机部署。请参阅 docs/ROADMAP.md 和 实施清单。
社区
- 问题和想法:GitHub Discussions。
- 漏洞:提交 issue,并附上复现步骤。
- 安全问题:请私下报告;请参阅 SECURITY.md。
- 参与贡献:CONTRIBUTING.md。所有参与者都应遵守 行为准则。
许可证
Apache-2.0。无论是否用于商业用途,都可以使用、托管并在此基础上构建。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。


