<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Lasso on AI博士 万戈</title>
        <link>https://www.yesmiracle.net/tags/lasso/</link>
        <description>AI博士万戈的技术博客，聚焦 Agentic AI、AI Infra 与 Agent Security，分享 AI 基础设施与工程落地实践。</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <managingEditor>admin@yesmiracle.net (万戈)</managingEditor>
        <webMaster>admin@yesmiracle.net (万戈)</webMaster>
        <lastBuildDate>Wed, 26 Aug 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://www.yesmiracle.net/tags/lasso/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Lasso MCP Gateway 技术拆解：三层插件体系的 MCP 安全代理</title>
        <link>https://www.yesmiracle.net/post/20260826-lasso-mcp-gateway-analysis/</link>
        <pubDate>Wed, 26 Aug 2026 00:00:00 +0000</pubDate>
        <author>admin@yesmiracle.net (万戈)</author>
        <guid>https://www.yesmiracle.net/post/20260826-lasso-mcp-gateway-analysis/</guid>
        <description>&lt;img src="https://www.yesmiracle.net/post/20260826-lasso-mcp-gateway-analysis/cover.svg" alt="Featured image of post Lasso MCP Gateway 技术拆解：三层插件体系的 MCP 安全代理" /&gt;&lt;p&gt;最近我在系统性地梳理 MCP 安全方案——随着越来越多的团队通过 MCP 把 AI Agent 接入外部工具，一个反复出现的问题是：&lt;strong&gt;怎么在不改动现有工具链的前提下，给 MCP 加上安全控制层？&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;研究过程中，我偶然发现了 &lt;strong&gt;Lasso Security&lt;/strong&gt; 和它们的开源项目 &lt;strong&gt;Lasso MCP Gateway&lt;/strong&gt;。这篇文章是我的调研记录。&lt;/p&gt;
&lt;h2 id=&#34;公司背景&#34;&gt;公司背景&lt;/h2&gt;
&lt;p&gt;Lasso Security 总部在以色列特拉维夫，2023 年 6 月由 &lt;strong&gt;Elad Schulman（CEO）&lt;/strong&gt;、&lt;strong&gt;Lior Ziv（CTO）&lt;/strong&gt;、&lt;strong&gt;Ophir Dror（CPO）&lt;/strong&gt; 和 Yuval Abadi 联合创立。公司至今融资 &lt;strong&gt;$3,050 万&lt;/strong&gt;，现有约 75 人。2024 年被 &lt;strong&gt;Gartner 评为 Cool Vendor&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;他们的客户包括美国国土安全部、eToro、Fiverr、Kaltura 等——大多是 AI 安全需求较严格的企业。&lt;/p&gt;
&lt;p&gt;Lasso 的产品线覆盖四个领域：Discovery &amp;amp; AI-BOM（资产发现与物料清单）、AI Security Posture Management（安全态势管理）、Automated Red Teaming（自动化红队测试）、Runtime Enforcement（运行时防护）。我调研的 MCP Gateway 属于运行时层。&lt;/p&gt;
&lt;h2 id=&#34;开源项目概况&#34;&gt;开源项目概况&lt;/h2&gt;
&lt;p&gt;Lasso MCP Gateway 的 GitHub 仓库（&lt;a class=&#34;link&#34; href=&#34;https://github.com/lasso-security/mcp-gateway&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;github.com/lasso-security/mcp-gateway&lt;/a&gt;）采用 &lt;strong&gt;MIT 协议&lt;/strong&gt;。目前 &lt;strong&gt;386 stars&lt;/strong&gt;、38 forks、40 commits，最新 release 为 v1.2.1。最近一次 commit 是 7 个月前。项目用 Python 3.10+ 编写，可通过 pip 安装：&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;pip install mcp-gateway
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;官方描述是：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;「一个为 MCP 服务器设计的高级中介解决方案，集中化并增强你的 AI 基础设施。」&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;实操中，它位于 AI Agent（比如 Cursor 或 Claude Desktop）和你的 MCP 服务器之间，作为一个透明代理，能在每个请求和响应经过时进行检查、清理和记录。&lt;/p&gt;
&lt;h2 id=&#34;架构拆解&#34;&gt;架构拆解&lt;/h2&gt;
&lt;p&gt;Gateway 读取一个 &lt;code&gt;mcp.json&lt;/code&gt; 配置文件——就是 Cursor 和 Claude Desktop 用的那个格式——然后把配置中的每个 MCP 服务器包装在一层统一接口之后。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Agent → MCP Gateway → MCP Server A
                   → MCP Server B
                   → MCP Server C
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Gateway 向 Agent 暴露两个核心工具：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;get_metadata&lt;/code&gt;&lt;/strong&gt; — 列出所有代理的 MCP 服务器、工具和资源，相当于一个发现端点&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;run_tool&lt;/code&gt;&lt;/strong&gt; — 在指定代理服务器上执行工具调用，请求和响应经过插件链的处理后再传递&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;关键的设计决策：&lt;strong&gt;Agent 只看到一个 MCP 服务器（Gateway 本身）&lt;/strong&gt;，Gateway 在背后透明地管理路由、生命周期和安全检查。这有点像 API Gateway 的模式——把所有 MCP 服务器收拢到一个入口，统一加安全策略。&lt;/p&gt;
&lt;h2 id=&#34;三层插件体系&#34;&gt;三层插件体系&lt;/h2&gt;
&lt;p&gt;架构中最有意思的部分是 &lt;strong&gt;guardrail 插件系统&lt;/strong&gt;。每个插件专注于一个安全维度，可以链式组合。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;插件&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;Token/密钥脱敏&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;PII 脱敏&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;自定义策略&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;Prompt 注入检测&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;有害内容检测&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;basic&lt;/strong&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;✅&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;❌&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;❌&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;❌&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;❌&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;presidio&lt;/strong&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;❌&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;✅&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;❌&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;❌&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;❌&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;lasso&lt;/strong&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;✅&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;✅&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;✅&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;✅&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;✅&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;basic-plugin&#34;&gt;Basic Plugin&lt;/h3&gt;
&lt;p&gt;最简模式。扫描工具响应对已知凭证模式——GitHub token、AWS 密钥、JWT、HuggingFace token、Slack token 等——做匹配和脱敏。&lt;strong&gt;零外部依赖&lt;/strong&gt;，完全本地运行。&lt;/p&gt;
&lt;h3 id=&#34;presidio-plugin&#34;&gt;Presidio Plugin&lt;/h3&gt;
&lt;p&gt;使用 &lt;strong&gt;Microsoft Presidio&lt;/strong&gt;（开源 PII 识别和匿名化工具包）检测信用卡号、邮箱、电话、SSN、IP 地址等个人信息。需要额外安装 &lt;code&gt;pip install mcp-gateway[presidio]&lt;/code&gt;。&lt;/p&gt;
&lt;h3 id=&#34;lasso-plugin&#34;&gt;Lasso Plugin&lt;/h3&gt;
&lt;p&gt;功能最全的插件，但需要 &lt;strong&gt;Lasso API key&lt;/strong&gt;（从他们的商业平台获取）。调用 Lasso 的云端 API 分析请求和响应，覆盖：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Prompt 注入检测&lt;/li&gt;
&lt;li&gt;有害或违规内容过滤&lt;/li&gt;
&lt;li&gt;敏感数据泄漏（token + PII）&lt;/li&gt;
&lt;li&gt;用自然语言描述的自定义安全策略&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这个插件是连接开源 Gateway 和 Lasso 商业运行时防护平台的桥梁。没有 API key 就用不了。&lt;/p&gt;
&lt;h2 id=&#34;pre-load-security-scanner&#34;&gt;Pre-load Security Scanner&lt;/h2&gt;
&lt;p&gt;除了内联防护，Gateway 还附带一个 &lt;strong&gt;预加载扫描器&lt;/strong&gt;（&lt;code&gt;--scan&lt;/code&gt; 参数），在 MCP 服务器实际加载前进行评估。它检查三件事：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;声誉分析&lt;/strong&gt;：在 Smithery、NPM 等市场和 GitHub 上查询 MCP 服务器发布者的数据&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;工具描述扫描&lt;/strong&gt;：解析工具描述，检查是否有隐藏指令、敏感文件模式或恶意行为&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;自动拦截&lt;/strong&gt;：声誉分低于阈值（默认 30）的服务器直接阻止加载&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;扫描后每个服务器得到一个状态：&lt;code&gt;passed&lt;/code&gt;、&lt;code&gt;blocked&lt;/code&gt; 或 &lt;code&gt;skipped&lt;/code&gt;（手动放行），状态直接写入 &lt;code&gt;mcp.json&lt;/code&gt; 配置文件。&lt;/p&gt;
&lt;p&gt;这个机制的价值在于它在运行时之前就做了供应链安全评估。考虑到现在 &lt;code&gt;npx&lt;/code&gt; 一个 npm 包就能当 MCP 服务器跑起来，预检查层挺有意义的。&lt;/p&gt;
&lt;h2 id=&#34;tracing-与审计&#34;&gt;Tracing 与审计&lt;/h2&gt;
&lt;p&gt;Gateway 还可以配置 &lt;strong&gt;xetrack 插件&lt;/strong&gt;做监控和调试。它把每次工具调用的请求参数、响应内容、时间戳和服务器元数据记录到 SQLite 数据库中。日志可以用 xetrack CLI 或者直接用 DuckDB/SQLite 查询。&lt;/p&gt;
&lt;p&gt;这对需要审计轨迹的团队来说挺实用的——不需要额外部署一套观测栈就能知道什么工具被调了、传了什么参数、返回了什么结果。&lt;/p&gt;
&lt;h2 id=&#34;部署方式&#34;&gt;部署方式&lt;/h2&gt;
&lt;p&gt;Gateway 有三种部署路径：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Python CLI&lt;/strong&gt;：安装后配置 &lt;code&gt;mcp.json&lt;/code&gt; 即可&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Docker&lt;/strong&gt;：使用仓库里的 Dockerfile 构建，通过环境变量传入 Lasso API key&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;内嵌模式&lt;/strong&gt;：Gateway 本身作为一个 MCP 服务器运行，在它下面包装其他 MCP 服务器&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Python CLI 是最简单的路径。Gateway 读取你已有的 &lt;code&gt;mcp.json&lt;/code&gt;，包装每个服务器，然后自己作为唯一的 MCP 服务器呈现给 Agent。&lt;/p&gt;
&lt;h2 id=&#34;我观察到的几个点&#34;&gt;我观察到的几个点&lt;/h2&gt;
&lt;p&gt;整个项目过一遍，有几个观察值得记录。&lt;/p&gt;
&lt;h3 id=&#34;插件架构是合理的抽象层级&#34;&gt;插件架构是合理的抽象层级&lt;/h3&gt;
&lt;p&gt;从 zero-dep 的本地 token 脱敏到云端 AI 安全分析，三级递进的选择给了团队一个清晰的升级路径。不需要一把梭——可以从 basic 起步，觉得不够再加 presidio，最后才考虑 lasso。这种梯度设计很适合实际落地场景。&lt;/p&gt;
&lt;h3 id=&#34;gateway-的-scope-刻意很窄&#34;&gt;Gateway 的 scope 刻意很窄&lt;/h3&gt;
&lt;p&gt;没有试图做语义聚合层、没有处理 Agent 间的认证、也没有做跨团队的工具生命周期管理。它的职责就是拦截 MCP 调用并做净化。40 个 commit、7 个月前的最后一次更新——从 commit 历史看是一个聚焦的项目。&lt;/p&gt;
&lt;h3 id=&#34;pre-load-scanner-加了一个供应链维度&#34;&gt;Pre-load Scanner 加了一个供应链维度&lt;/h3&gt;
&lt;p&gt;大多数 MCP 安全工具聚焦运行时——工具被调用了怎么办。预加载扫描器在运行时之前先做一次供应链评估，判断一个服务器&lt;strong&gt;是否应该被加载&lt;/strong&gt;。考虑到任意 npm 包都能当 MCP 服务器跑起来的现状，这个方向确实值得关注。&lt;/p&gt;
&lt;h3 id=&#34;lasso-plugin-绑定了云端&#34;&gt;Lasso Plugin 绑定了云端&lt;/h3&gt;
&lt;p&gt;basic 和 presidio 插件完全本地运行。但提供最全面保护的 lasso 插件需要 API key，数据会发送到 Lasso 的云端做分析。团队在评估时需要权衡哪一层的保护值得开放数据流。&lt;/p&gt;
&lt;h2 id=&#34;写在最后&#34;&gt;写在最后&lt;/h2&gt;
&lt;p&gt;Lasso MCP Gateway 是一个&lt;strong&gt;聚焦的、基于插件的 MCP 安全代理&lt;/strong&gt;。它没有追求做一个全栈 MCP 管理平台，而是专注在拦截 MCP 调用并做可控的净化——并且用三层插件架构给团队提供了渐进式的选择。&lt;/p&gt;
&lt;p&gt;对于已经在跑 MCP 服务器、想在不大改配置的情况下加一层安全防护的团队，这是一个值得看看的项目。MIT 协议加上几分钟的安装时间，足以快速上手验证。&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
