原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。使用 Google 登录即可撰写评价。
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

MCP Loom

作者:buttonmonkey版本 0.3.2i★ 1i在你的电脑上运行
注册名称io.github.buttonmonkey/mcp-loom

安装方法

What it does

Stdio MCP proxy: intercepts oversized tool results into a queryable embedded DuckDB.

  • Connects 在你的电脑上运行
  • Account or key No key needed
  • Category 数据库与数据集

安装

选择你使用的 AI 应用,然后复制设置。

通过 3/3 项检查 · 在你的电脑上运行

第一步:你用哪个 AI?

选择你用的应用,步骤会显示在下方。

可连接 Claude,但需要先准备

需要先在电脑上安装 Node.js(只需一次) · 仅限电脑上的 Claude 应用(Windows 或 Mac),网页和手机不可用

  1. 安装 Node.js

    只需一次,所有需要 Node.js 的服务器都能用

    打开 Node.js 下载页 ↗

  2. 打开电脑版 Claude 应用的设置文件

    SettingsDeveloperEdit Config

  3. 粘贴这些设置并保存文件

    {
      "mcpServers": {
        "loom": {
          "command": "npx",
          "args": [
            "-y",
            "mcp-loom",
            "--config",
            "your-value"
          ]
        }
      }
    }
  4. 退出 Claude 再重新打开

  5. 试一试

    用 MCP Loom 告诉我你能帮我做什么,然后做一件给我看

    ✓ 如果 Claude 说正在使用 MCP Loom,或回答中出现 MCP Loom 的工具名称,就表示连接成功

菜单名称已于 2026年11月11日 对照 Anthropic 帮助页面核实 · 你的界面可能因版本略有不同

ChatGPT 暂时无法连接 MCP Loom

MCP Loom 需要安装在你的电脑上,而 ChatGPT 只能连接在网上运行的服务器

你可以改用这些方式

A · 使用能连接 MCP Loom 的应用

  • 需要先在电脑上安装 Node.js(只需一次) · 仅限电脑上的 Claude 应用(Windows 或 Mac),网页和手机不可用
  • 需要先在电脑上安装 Node.js(只需一次)
  • 需要先在电脑上安装 Node.js(只需一次) · 没有一键按钮,需要粘贴设置并自行填写
  • 需要先在电脑上安装 Node.js(只需一次) · 没有一键按钮,需要粘贴设置并自行填写

B · 数据库与数据集 类中能连接 ChatGPT 的其他服务器

从同类中使用较多的里挑选,仅限用地址即可连接、无需密钥的

可连接 Claude Code,但需要先准备

需要先在电脑上安装 Node.js(只需一次)

  1. 安装 Node.js

    只需一次,所有需要 Node.js 的服务器都能用

    打开 Node.js 下载页 ↗

  2. 打开终端

    Mac:按 Command+空格,输入 Terminal · Windows:打开 PowerShell

  3. 粘贴这条命令并按 Enter

    claude mcp add --scope user loom -- npx -y mcp-loom --config your-value
  4. 在 Claude Code 中输入 /mcp

    应能看到 MCP Loom 在列表中并显示已连接

  5. 试一试

    用 MCP Loom 告诉我你能帮我做什么,然后做一件给我看

    ✓ 如果 Claude Code 说正在使用 MCP Loom,或回答中出现 MCP Loom 的工具名称,就表示连接成功

菜单名称已于 2026年11月11日 对照 Anthropic 帮助页面核实 · 你的界面可能因版本略有不同

可连接 Cursor,但需要先准备

需要先在电脑上安装 Node.js(只需一次) · 没有一键按钮,需要粘贴设置并自行填写

  1. 安装 Node.js

    只需一次,所有需要 Node.js 的服务器都能用

    打开 Node.js 下载页 ↗

  2. 打开 Cursor 的 MCP 设置文件

    ~/.cursor/mcp.json

    粘贴这些设置,填写空着的值并保存

    {
      "mcpServers": {
        "loom": {
          "command": "npx",
          "args": [
            "-y",
            "mcp-loom",
            "--config",
            "your-value"
          ]
        }
      }
    }
  3. 在 Cursor 中以 Agent 模式打开 AI 聊天

  4. 试一试

    用 MCP Loom 告诉我你能帮我做什么,然后做一件给我看

    ✓ 如果 Cursor 说正在使用 MCP Loom,或回答中出现 MCP Loom 的工具名称,就表示连接成功

菜单名称已于 2026年11月11日 对照 Cursor 帮助页面核实 · 你的界面可能因版本略有不同

可连接 VS Code,但需要先准备

需要先在电脑上安装 Node.js(只需一次) · 没有一键按钮,需要粘贴设置并自行填写

  1. 安装 Node.js

    只需一次,所有需要 Node.js 的服务器都能用

    打开 Node.js 下载页 ↗

  2. 打开 VS Code 的 MCP 设置文件

    MCP: Open User Configuration

    粘贴这些设置,填写空着的值并保存

    {
      "servers": {
        "loom": {
          "type": "stdio",
          "command": "npx",
          "args": [
            "-y",
            "mcp-loom",
            "--config",
            "your-value"
          ]
        }
      }
    }
  3. 在 VS Code 中以 Agent 模式打开 AI 聊天

  4. 试一试

    用 MCP Loom 告诉我你能帮我做什么,然后做一件给我看

    ✓ 如果 VS Code 说正在使用 MCP Loom,或回答中出现 MCP Loom 的工具名称,就表示连接成功

菜单名称已于 2026年11月11日 对照 VS Code 帮助页面核实 · 你的界面可能因版本略有不同

其他支持 MCP 的应用(如 Windsurf、Zed、Gemini CLI)添加方式各不相同,请在应用列表中查看

查看所有支持 MCP 的应用 →

JSON 设置在下方“开发者专用”中

卡住了?问问正在用 MCP Loom 的人💬 讨论 →
开发者专用:终端命令和 JSON 设置

安装在电脑上

Claude Code

claude mcp add --scope user loom -- npx -y mcp-loom --config your-value

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "loom": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-loom",
        "--config",
        "your-value"
      ]
    }
  }
}

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "loom": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-loom",
        "--config",
        "your-value"
      ]
    }
  }
}

VS Code (mcp.json)

{
  "servers": {
    "loom": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "mcp-loom",
        "--config",
        "your-value"
      ]
    }
  }
}

这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。

一览

每周下载量i
59/周
连接方式
在你的电脑上运行
最新版本i
0.3.2
发布到注册中心i
2026年7月7日
代码最后更新i
2026年7月7日
作者
buttonmonkey
软件包
npm: mcp-loom
注册状态
活跃

哪些应用可以使用它

依据这个服务器的连接方式和各应用自己的文档,检查于 2026年11月10日。

在你的电脑上运行,适用于

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast

全部应用及其优缺点 →

它能做什么

它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月12日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过 GitHub 账户 buttonmonkey 验证,该账户拥有此仓库

  • ✓ 通过

    仍在维护

    代码最后更新于4个月前

  • ✓ 通过

    有许可证

    使用 MIT

  • – 不适用

    端点有响应

    它在你的电脑上运行,没有互联网端点

  • – 不适用

    使用 OAuth 登录

    在你的电脑上运行,改用本地设置

  • … 尚未检查

    工具描述中没有隐藏指令

    它在你的电脑上运行;我们只能读取互联网端点的工具列表

讨论

提问、分享技巧或报告无法使用。按“有帮助”数量排序。

还没有帖子,欢迎第一个提问或分享。

此处内容由用户撰写,不代表 PopNx 团队。

使用 Google 登录后发帖

用户评价

还没有评价

用 Google 登录后写评价

与“数据库与数据集”中的其他服务器比较i

  • 星标数多于此分类中其他 1170 个服务器的 79%
  • 发布到注册中心的时间比此分类中其他 1170 个服务器的 16% 更新
  • 基础检查结果等于或优于此分类中其他 1170 个服务器的 100%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

MCP Loom 安全吗?

它在 3 项适用的基础检查中通过了 3 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。

它在我的电脑上运行还是在云端?

它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。

它还在维护吗?

GitHub 仓库最后更新于4个月前,最新版本(0.3.2)于4个月前进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。

有什么可以替代它?

同一分类中有:Dbx, MCP Toolbox for Databases, MCP Toolbox for Databases

同类别的其他选择

同一分类中其他作者的服务器,按星标数排序。

如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

Dbx

Query databases from AI agents using connections configured in DBX.

作者:t8y2广泛使用↓ 9446/周★ 3万6个月前更新

在你的电脑上运行

MCP Toolbox for Databases

MCP Toolbox for Databases enables your agent to connect to your database.

作者:googleapis广泛使用★ 1.7万6天前更新

在你的电脑上运行

MCP Toolbox for Databases

MCP Toolbox for Databases enables your agent to connect to your database.

作者:googleapis广泛使用★ 1.7万8个月前更新

在你的电脑上运行

作者的 README

打开 README

按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。

   ███╗   ███╗ ██████╗██████╗       ██╗      ██████╗  ██████╗ ███╗   ███╗

████╗ ████║██╔════╝██╔══██╗ ██║ ██╔═══██╗██╔═══██╗████╗ ████║ ██╔████╔██║██║ ██████╔╝█████╗██║ ██║ ██║██║ ██║██╔████╔██║ ██║╚██╔╝██║██║ ██╔═══╝ ╚════╝██║ ██║ ██║██║ ██║██║╚██╔╝██║ ██║ ╚═╝ ██║╚██████╗██║ ███████╗╚██████╔╝╚██████╔╝██║ ╚═╝ ██║ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚══════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝

The context loom for MCP.

One proxy in front of N servers. Oversized tool results are woven into queryable datasets — 48k tokens in, 2k envelope out.

warp: results stream in weft: the loom shuttles across ══════════════════════ ═════════════════════════════

│ │ │ │ │ │ │ │ 48,377 tokens ┄┄┄┄┄┄┄┄┄> ✂ intercept ●━━━━┿━━━━┿━━━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ │ ●━━━━┿━━━━┿━━━━━━━ ingest → DuckDB ━━━━━━┫ │ │ ●━━━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ │ │ │ ●━━━━ schema · stats · joins ━━┛ │ │ │ │ │ ▼ ▼ ▼ ▼ ▼ [ raw floods, dropped ] [ 2,104-token envelope ] ref · sample · SQL

What it does

An MCP client asks a tool a question, and the answer comes back as a ten-thousand-row JSON dump — most of which the model didn't need but now has to hold in context. Loom sits in the middle.

When a result is small, it passes through untouched. When a result is large and tabular, Loom ingests it into an embedded DuckDB and hands the model a compact envelope instead: a dataset ref, the schema, column stats, a few sample rows, join hints, and provenance. The model then queries precisely what it needs — including joins across data from *different* servers, which no single server can answer alone.

The economics: a 48k-token tool result becomes a ~2k-token envelope. The model spends its context on answers, not raw dumps.

When loom helps — and when it won't

Loom earns its place in three situations that cover the ordinary case of real MCP usage:

  • Clients with no shell. Claude Desktop, mobile, and agent platforms — the largest client surfaces — have no CLI to fall back to. MCP tools are the model's only path to the data, so interception engages by construction.
  • Servers with no model-reachable CLI. Internal tools, SaaS connectors, and credentialed databases whose secrets live only in the server's env block — the bulk of real connectors. There is no gh-equivalent for the model to route around.
  • Auditable analysis over persistent datasets. Loom turns "the model eyeballed a dump" into "the model ran verifiable queries over data you can still inspect" — exact SQL over provenance-stamped datasets that stay reopenable and re-queryable after the fact. This one applies *everywhere*, shell or no shell, and is the honest answer to "why route through loom at all."

Cross-server joins run through all three: no single CLI answers a question spanning two services' data.

Two boundaries, stated plainly:

  • A shell-bearing agent will skip the MCP layer for a service it can reach directly. Give a model bash and a service with a known CLI and ambient credentials — gh against GitHub is the sharpest case — and it goes straight to the CLI, faster and cheaper, skipping loom and MCP both. That is the agent preferring a CLI to MCP, not a loom defect; loom is an MCP-layer product and will not beat gh at being gh. It is also the minority case: most servers wrap things with no model-reachable CLI, and the largest client surfaces have no shell.
  • Envelope fidelity is bounded by what the downstream returns. Loom flattens faithfully what a server sends — but it cannot add fields the server never sent. The GitHub MCP server, for instance, returns a trimmed 17-field repo object (no stargazersCount, language, or forks); loom captured all 17 faithfully, and a star-ranking question was still unanswerable from that data. The bound is the downstream's, not loom's.

How it works

Loom is itself a stdio MCP server. It sits between one upstream MCP client (Claude Desktop, Claude Code, Cursor, etc.) and N downstream MCP servers that you configure:

  • Spawns and supervises each configured downstream server (handshake health check, restart with backoff, delists tools and emits list_changed if a server exhausts its restart budget).
  • Namespaces every downstream tool as _ and re-exposes the aggregated tool list upward, keeping it live via list_changed.
  • Routes call_tool to the correct downstream child. Small results return unmodified — pass-through is byte-identical. Large tabular results are intercepted into DuckDB and replaced with a loom_dataset_ref envelope; any interception failure degrades to the untouched original.
  • Exposes the synthetic query surface over cached datasets: loom_query (guarded read-only SQL, cross-server joins included), loom_list_datasets, loom_describe (full schema, stats, and fresh join hints for a dataset), loom_materialize (pin a derived query result as a new dataset), and loom_export (sealed csv/json export). Interception depth is capped at 1 per upstream call; loom_materialize does not consume that budget.
  • Shuts down cleanly on signals or upward stdin EOF, with no orphaned child processes and the spill dir removed.

Loom intercepts both structured results and formatted text: when a result carries a structuredContent channel it ingests from that; otherwise it parses JSON-in-text, and failing that, extracts repeating records from formatted text under a strict never-lie bar (it never emits a table it isn't sure of — any uncertainty degrades to an untouched pass-through). See SPEC.md for the full normative specification.

Usage

npx mcp-loom --config loom.config.json

Point any MCP client at that command. Configuration can also be supplied via the LOOM_CONFIG environment variable instead of --config:

LOOM_CONFIG=/path/to/loom.config.json npx mcp-loom

(--config takes precedence if both are set.) See loom.config.example.json for a minimal working example.

Client recipes

Loom is launched by your MCP client the same way any stdio server is — point the client at npx -y mcp-loom --config .

Claude Desktop (claude_desktop_config.json):

{

"mcpServers": { "loom": { "command": "npx", "args": ["-y", "mcp-loom", "--config", "/absolute/path/to/loom.config.json"] } } }

Cursor (.cursor/mcp.json): the same mcpServers block as above.

Claude Code — add it from the CLI:

claude mcp add loom -- npx -y mcp-loom --config /absolute/path/to/loom.config.json

Use an absolute path to loom.config.json — MCP clients spawn servers with an unspecified working directory. Loom then spawns and namespaces the downstream servers listed in that config.

Config reference

Config is a single JSON file, validated with zod at startup; invalid config fails fast with a readable error listing every violated field.

FieldTypeDefaultNotes
serversarray (min 1)— (required)The downstream servers to proxy. See below.
servers[].namestring— (required)Must match ^a-z{0,31}$, unique across all servers. loom is reserved (used exclusively for synthetic tools) and rejected.
servers[].commandstring— (required)Executable to spawn (e.g. npx). Non-empty.
servers[].argsarray of strings[]Args passed to command.
servers[].envobject (string→string){}Extra environment variables for this server's child process only. See "Child environment" below.
servers[].envPassthrougharray of strings[]Names of extra non-secret vars to forward from Loom's own environment to this server's child, on top of the curated safe base (default-deny — the launching shell's env is not copied wholesale). See "Child environment" below.
servers[].provenanceDenylistarray of strings[]This server's tool names whose provenance.args are omitted entirely ("[omitted]") from envelopes, loom_describe, and loom_list_datasets — for tools whose args are nothing but credentials. Other tools keep the heuristic key-based redaction.
tokenThresholdinteger ≥ 1002000Interception fires when a tabularizable text result exceeds this; a coarse chars/4 order-of-magnitude dial, NOT precise (undercounts CJK).
memoryBudgetBytesinteger ≥ 1048576268435456 (256 MiB)Soft eviction budget on tracked dataset bytes; implicit query-result datasets evict LRU-first, then downstream ingests.
duckdbMemoryLimitstring, `/^\d+(\.\d+)?(KB\MB\GB\TB)$/`"512MB"Hard engine backstop (SET memory_limit); ops spill to disk under a computed thread bound rather than OOM.
exportDirstring"./exports"Directory where loom_export writes csv and json files.
queryTimeoutMsinteger ≥ 130000Bounds a loom_query (interrupt()-timer).
restart.maxAttemptsinteger ≥ 05Max consecutive restart attempts per downstream server before it is delisted (tools removed, list_changed emitted). 0 disables restart.
restart.baseDelayMsinteger ≥ 11000Base delay for restart backoff.

If every configured server fails to start, Loom itself fails to start (fatal). If only some fail, Loom starts with a warning and the surviving servers' tools available.

Interception & querying

Large tabular tool results are intercepted and ingested into the embedded DuckDB store as queryable datasets. A tool result that exceeds tokenThreshold and carries structured data — read from the protocol's structuredContent channel when present, otherwise parsed from the text render — becomes a loom_dataset_ref envelope: a reference ID, the inferred schema, column statistics, sample rows, and join hints — keeping the token cost low. Query these datasets with the synthetic loom_query tool: it accepts read-only SQL in DuckDB dialect (single SELECT or WITH statement), classified read-only by the engine parser. If you lose a dataset reference, loom_list_datasets recovers it or lists all available datasets in the current session.

Dataset references are session-scoped: they exist only for the duration of your conversation and are automatically evicted under memory pressure (implicit query results are evicted first, preserving explicitly-ingested data longer). Sample rows in the envelope are arbitrary — DuckDB does not preserve insertion order by default — so always use an explicit ORDER BY clause when row order matters. The token estimator is a coarse magnitude dial and undercounts text containing CJK characters, so monitor actual token usage if you regularly cross tokenThreshold.

Inspecting datasets with loom_describe

Call loom_describe on a dataset ref to inspect its structure and contents in detail: full schema with per-column statistics, a 10-row sample, fresh join hints to other datasets (with value-overlap scores that rank real joins above coincidental name matches), provenance, and creation timestamp. Use this when you need to understand a dataset's shape before querying it, or to rediscover a dataset's schema after many intermediate operations.

Materializing query results with loom_materialize

Query results are cached implicitly, but if you want to keep a derived result across the session boundary or ensure it is never evicted, use `

只显示了开头部分;其余内容请在仓库中阅读