商业产业 Hacker News AI 2026-10-05T16:08 正文 ok 150 words

🔶 让大型 MCP 结果不再占用上下文

英文标题:🔶 Keep large MCP results out of context

该方案会将满足条件的大型 MCP 工具输出转存,使 Agent 获得紧凑描述符后可直接通过 SQL 查询数据。可转存的序列化工具输出需至少达到 32 KiB,且包含非空 JSON 对象数组;系统会自动推断列类型,并将嵌套或混合类型存为 JSON 文本。查询仅允许只读 SQL 语句,DuckDB 也以禁用外部访问和扩展加载的只读模式运行。该机制无需运行时网络调用,也不依赖守护进程或后台服务,有助于减少大规模工具结果对模型上下文窗口的占用。
打开原文相关 3 · 机会 1
media1.0 MB

中文

工作原理

会被转存的内容

序列化后的工具输出必须至少达到 32 KiB,并且包含一个非空的 JSON 对象数组。支持以下三种负载形式:

MCP 文本块,其中包含 JSON 数组

二进制/混合块——直接透传

小于 32 KiB——直接透传

系统会将列推断为 BOOLEAN、BIGINT、DOUBLE 或 VARCHAR。嵌套对象、数组和混合类型将作为 JSON 文本存储。缺失值会变为 SQL NULL。

-- Agent 接收一个紧凑描述符,然后直接查询
SELECT state, COUNT(*) AS n
FROM  spill_list_issues_a81f32
GROUP BY state
ORDER BY n DESC;

查询策略

仅允许使用 SELECT、WITH、SHOW、DESCRIBE 和 EXPLAIN。SQL 分词器会拒绝变更操作、多条语句以及查询中间的分号。此外,DuckDB 会以只读模式打开,并禁用外部访问和扩展加载。

运行时不进行网络调用

无需守护进程或后台服务

English / 原文

How it works

What gets spilled

Serialized tool output must be at least 32 KiB and contain a nonempty array of JSON objects. Three payload shapes are supported:

MCP text block containing a JSON array

Binary / mixed blocks — pass through

Under 32 KiB — pass through

Columns are inferred as BOOLEAN, BIGINT, DOUBLE, or VARCHAR. Nested objects, arrays, and mixed types are stored as JSON text. Missing values become SQL NULL.

-- Agent receives a compact descriptor, then queries directly
SELECT state, COUNT(*) AS n
FROM  spill_list_issues_a81f32
GROUP BY state
ORDER BY n DESC;

Query policy

Only SELECT, WITH, SHOW, DESCRIBE, and EXPLAIN are allowed. A SQL tokenizer rejects mutations, multiple statements, and semicolons mid-query. Independently, DuckDB opens in read-only mode with external access and extension loading disabled.

No network calls at runtime

No daemon or background service