MCP代理工具

通过按需加载工具减少MCP上下文窗口令牌使用量的轻量级代理工具,适用于多代理环境。

  • by PeterCha90
  • TypeScript
  • 本地部署
  • 10 星标
  • 更新于
在 GitHub 查看 PeterCha90/mcp-lazy-load

使用说明

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

mcp懒惰🫠

韩语

通过延迟加载将MCP上下文窗口令牌使用率降低90%+。一个命令设置。

  • MCP服务器在启动时将所有工具定义加载到上下文窗口中,甚至在您使用它们之前。对于5-10台服务器,这可能会占用您上下文窗口的30-50%。 mcp懒惰 通过一个按需加载工具的轻量级代理来代理所有MCP服务器。

82 tools exposed at startup

👇 Just 2 with mcp-lazy


快速开始

为您的代理人选择一个:

npx mcp-lazy add --cursor        # Cursor
npx mcp-lazy add --antigravity   # Antigravity
npx mcp-lazy add --opencode      # Opencode
npx mcp-lazy add --all           # or all at once

然后预构建工具缓存(推荐):

npx mcp-lazy init
  • 这 add 命令读取代理的现有MCP配置,将所有服务器定义保存到 ~/.mcp-lazy/servers.json,并仅用mcp懒惰代理条目替换代理配置。

  • init 预构建工具缓存,以便您的第一个代理会话立即启动。没有它,当mcp-lazy从所有服务器发现工具时,第一个会话会稍微慢一些。

    提示: 是否安装了新的MCP服务器?重新运行 npx mcp-lazy add --<agent> --无需额外步骤。


运作原理

Without mcp-lazy:
  Agent → MCP Server A (50 tools) + Server B (30 tools) + Server C (20 tools)
        = 100 tools loaded at startup (~67,000 tokens)

With mcp-lazy:
  Agent → mcp-lazy proxy (2 tools only, ~350 tokens)
              ↓ on-demand
         Server A / B / C (loaded only when needed)
         URL servers (Notion, Slack, etc.) via mcp-remote bridge

代理只公开了2个工具:

  • mcp_search_tools --按关键字搜索可用工具
  • mcp_nexecute_tool --执行一个工具(第一次调用时延迟加载服务器)

什么 add 是否

  • 当你奔跑时 npx mcp-lazy add --<agent>它
  1. 读取代理的现有MCP服务器配置
  2. 提取所有服务器定义(基于stdio和URL)
  3. 使用以下命令将URL服务器(需要Notion、Slack等服务的OAuth)转换为stdio命令 npx mcp-remote <url>
  4. 将所有内容保存到 ~/.mcp-lazy/servers.json
  5. 仅用mcp懒惰代理条目替换代理配置
  • 代理从以下位置读取 ~/.mcp-lazy/servers.json 在运行时——这是安装后所有服务器定义所在的地方。

支持的代理

代理 状态
光标 ✓ 支持
开放代码 ✓ 支持
反重力 ✓ 支持
Codex 本地支持(不需要)
Claude Code 本机支持(不需要)

命令

npx mcp-lazy add

  • 向您的代理人注册代理:

    npx mcp-lazy add --cursor        # register with Cursor
    npx mcp-lazy add --antigravity   # register with Antigravity
    npx mcp-lazy add --all           # register with all agents
    

选项:

  • --cursor, --opencode, --antigravity, --codex --目标代理
  • --all --向所有代理商注册

npx mcp-lazy init

通过连接到所有已注册的服务器来预构建工具缓存:

$ npx mcp-lazy init

mcp-lazy init — building tool cache...

  ✓ github-mcp         15 tools   342ms
  ✓ postgres-mcp       12 tools   518ms
  ✗ slack-mcp          connection timeout
  ✓ filesystem          8 tools   120ms

Cache saved: 35 tools from 3/4 servers in 1.2s
Ready! mcp-lazy serve will start instantly.
  • 并行连接到每台服务器,并将工具索引保存到 ~/.mcp-lazy/tool-cache.json
  • 运行此之后 add 因此,第一个代理会话立即开始,而不是等待发现

npx mcp-lazy doctor

诊断您的设置:

$ npx mcp-lazy doctor

✓ Node.js 18+ installed
✓ 7 MCP server(s) registered
  - github, notion, slack, postgres, filesystem, memory, puppeteer
✓ Cursor: registered

Token savings: 67,300 → 350 (99.5% reduction)

URL和OAuth支持

  • 一些MCP服务器托管在URL上,需要OAuth(Notion、Slack、Linear等)。这 add 命令通过使用以下命令将其转换为stdio命令来自动处理这些命令 npx mcp-remote:

    URL server: https://mcp.notion.com/sse
              ↓ converted automatically
    stdio:    npx mcp-remote https://mcp.notion.com/sse
    
  • 这意味着您的所有服务器——本地stdio和需要URL的远程OAuth服务器——都可以通过mcp-lazy进行代理,无需手动转换。


搜索工作原理

当代理人来电时 mcp_search_tools("query database"),代理使用加权评分在所有注册的工具中搜索:

比赛类型 得分
工具名称完全匹配 +1.0
部分工具名称匹配 +0.8
描述关键字匹配 +0.6
服务器描述匹配 +0.4

结果按相关性排序并返回给代理。


常见问题解答

Q: 第一次跑步很慢。

  • 在首次启动时,mcp-lazy连接到每个注册的mcp服务器,以发现可用的工具并构建搜索索引。这可能需要10-30秒,具体取决于服务器的数量。
  • 之后,工具索引将缓存在 ~/.mcp-lazy/tool-cache.json。后续启动从缓存加载并在一秒钟内启动。
  • 当服务器配置更改时,缓存会自动刷新。
  • 跑 npx mcp-lazy init 在设置好预构建缓存后,避免缓慢的首次启动。

Q: 在安装过程中,我收到了“错误:意外错误”。

  • 检查您是否具有配置目录的读/写权限。例如:

    光标: ~/.cursor/mcp.json
    开放代码: ~/.config/opencode/config.json
    反重力: ~/.gemini/antigravity/mcp_config.json

  • 试着跑步 ls -la 在相关路径上验证权限。如果需要,请使用 chmod 644 <path>.

Q: 设置MCP-lazy后,我安装了一个新的MCP服务器。我该如何添加它?

  • 只需像往常一样将新服务器添加到代理的MCP配置中,然后重新运行add命令:

    npx mcp-lazy add --cursor    # re-scans and picks up the new server
    
  • mcp-lazy将检测新服务器,并将其添加到 ~/.mcp-lazy/servers.json,并保持代理配置不变。


范围

  • mcp-lazy目前支持 仅限全局MCP配置 (例如。, ~/.cursor/mcp.json).项目级MCP配置(例如。, .cursor/mcp.json 在项目根目录中)尚不支持。

需求

  • Node.js 18+
  • 现有MCP服务器配置(全局范围)

许可证

麻省理工学院