前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片NEW
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 业务场景题真实业务问题与追问
  • 查漏补缺常见问题解析
  • AI 模拟面试NEW模拟真实面试 + 报告
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
    • AI 定制路线NEW按你的简历现排
    • AI 知识地图NEW串起全站知识点
  • 动态
    • AI 热点NEWAI 每日动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
AI 助手NEW
旧版
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片NEW
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 业务场景题真实业务问题与追问
  • 查漏补缺常见问题解析
  • AI 模拟面试NEW模拟真实面试 + 报告
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
    • AI 定制路线NEW按你的简历现排
    • AI 知识地图NEW串起全站知识点
  • 动态
    • AI 热点NEWAI 每日动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
AI 助手NEW
旧版
返回 AI 情报前线
All News · 全部资讯8611
  • Claude AI 审计发现 Zcash 隐私漏洞:AI 攻防对称性
  • 用 AI 和 Claude 构建自动代码漏洞检测工具
  • 8个主流AI API真实成本对比:50个实际prompt测试
  • 何时从Ollama迁移到vLLM:本地LLM服务进阶指南
  • SlopScan集成Claude Code:AI生成代码的包名幻觉防护
  • 视频生成不用Text-to-Video:LLM spec+确定性渲染才是正道
  • MCP协议通俗解读:AI工具标准化的USB-C时刻
  • 移动设备 LLM 部署最佳实践:边云分工与成本控制
  • AI 渗透测试工具的数据泄露陷阱与本地沙箱方案
  • AI Agent 沙箱逃逸向量深度披露:即使断网也能泄数据
  • OpenAI 推出企业级 Agent 服务 Presence,加速生产落地
  • 2026年AI Agent成本拆解:DIY vs SaaS决策框架
  • 本地模型AI渗透测试实战:28分钟发现57个OWASP漏洞
  • 模型评测陷阱:平均分vs生产失败分布的真实风险
  • Meta 多 Agent 记忆架构:防止任务失败重复的设计方案
  • Claude Code实战:移除低效权限审批后的工作流优化
  • Apple Bug Bounty 被 AI 垃圾报告淹没,真实漏洞堵塞
  • Agent 记忆迁移的语义保真度验证方案
  • 隐形 Bug 类:代码正确却永远不执行
  • AI Agent应用:用DB触发器而非Prompt管理状态
  • MCP与LSP融合:AI Agent基础设施的标准化演进
  • 自动化偏见:人类为何橡皮章AI,如何防护
  • 8月2日AI监管生效、Astra数学突破、安全威胁升级
  • 生成式模型到产品化:AI 景观设计的系统工程
  • LLM 模型剪枝实战:推理加速与准确度权衡
  • WhatsApp Agent 实战:多工具编排的完整案例
  • 告警设计陷阱:脆弱的因果耦合如何无声失效
  • CogniDB:统一AI原生数据库架构实践
  • 多Agent编排的DevOps难题与版本管理策略
  • 多Agent系统故障恢复:重试、熔断、降级、重规划
  • AI Agent 自动化工作流:5 步实践指南
  • Stram:本地 Desktop Agent 参考实现
  • Kimi K3 1-bit量化版本:2.8T模型压缩62%、性能保留78.7%
  • MCP生态突破13000+服务器、mcp-hub工具解决发现难题
  • 开源AI栈:构建数据主权、无供应商锁定的私有基础设施
  • AI 漏洞检测有效性量化:1.3% 真实利用率
  • 人脸年龄验证的2年误差困局与设计陷阱
  • 自主 AI 公司39天实验:487M tokens、$1.1k成本、零收入
  • 语音 AI 的转身悖论:延长静音阈值反而更差
  • Claude Code 三大提效流程:规划-构建-修复
  • Agent 内存用向量存储的天花板:聚合查询失效
  • MoE 模型压缩魔法:2GB 内存跑 Gemma 26B 的权重共享方案
  • Herdr:编码代理多路复用器,像 tmux 一样管理并发 Agent
  • Claude Opus 5 一句话生成 3D 游戏,含物理和音乐
  • Claude Code 赋能容量规划:从被动应急到主动预测
  • 本地部署 16 块高端 GPU 运行开源大模型完整方案
  • 真 Agent vs 伪 Agent:金融自动化平台的量化对标与选型框架
  • 本周技术速览:K3 开源、MCP 无状态化、Agent Office CLI
  • Claude 红队测试突破 3 个组织隔离、上传恶意包到 PyPI
  • DeepSeek-V4-Flash 正式版 API 上线,性能媲美闭源模型
  • 用 MCP 把 AI Agent 变成运维工程师
  • 已加载 51 / 8611
8.0
热点
AI SCORE
技术实践2026-08-02 20:00

MCP与LSP融合:AI Agent基础设施的标准化演进

dev.to · AI#MCP#Agent#Rust
Editor brief · 编辑速览

深度分析 MCP 和 LSP 如何标准化 agent 与外部系统连接,为何 Rust 成为基础设施首选语言,涉及安全、协议、性能。

文章思维导图
Knowledge map
拖拽缩放
Full translation

完整中文译文

从 MCP 到 LSP:保护 AI Agent、标准化上下文,以及 Rust 驱动基础设施的崛起

最初发布于 tamiz.pro。

AI 辅助开发的格局正在发生结构性转变。我们正从孤立的、基于提示词的交互转向互联的、协议驱动的生态系统。这一转变的核心是两个关键标准:Anthropic 的模型上下文协议(Model Context Protocol,MCP),它标准化了 AI 模型如何连接外部数据;以及长期以来标准化开发者如何与代码智能交互的语言服务器协议(Language Server Protocol,LSP)。

同时,为这些交互提供动力的基础设施层越来越多地由 Rust 主导。为什么?因为当 AI Agent 获得对文件系统、API 和数据库连接的访问权限时,传输层的安全性和性能要求变得不可商量。本文深入探讨这些技术的融合,审视 MCP 和 LSP 如何演进以支持安全、感知上下文的 AI Agent,以及为什么 Rust 正在成为构建使这一切可能的基础设施的事实标准语言。

AI 连接的演变:从提示词到协议

从历史来看,将 AI 集成到软件工程工作流中是一个脆弱的过程。开发者编写脚本来调用 OpenAI 或 Anthropic API,解析 JSON 响应,然后将其注入到 IDE 或 CI/CD 管道中。这种方法很容易出错,不安全,难以扩展。

语言服务器协议(LSP):基础

LSP 在 2016 年由微软推出,用来解决一个具体问题:如何在不同编辑器和语言服务器中提供智能代码功能(自动补全、转到定义、重构)。通过将编辑器(客户端)和语言分析引擎(服务器)之间的通信抽象为 JSON-RPC 协议,LSP 使我们今天理所当然的丰富 IDE 体验成为可能。

LSP 证明了标准化代码和智能之间的接口比任何单一实现都更有价值。它创建了一个模块化的生态系统,其中 VS Code、Neovim 和 IntelliJ 都可以共享相同的底层语言服务器。

模型上下文协议(MCP):新标准

MCP 由 Anthropic 在 2024 年中推出,解决的问题类似,但针对的是 AI 模型。在 MCP 之前,将 LLM 连接到外部数据源(如 PostgreSQL 数据库或 REST API)需要自定义的、临时的集成。每个集成都有自己的身份验证、错误处理和数据格式化逻辑。

MCP 标准化了这种连接。它定义了一个协议,其中:

  • 主机(如 Claude Desktop 或带 AI 扩展的 VS Code)请求数据。
  • 客户端(AI 应用)便于建立连接。
  • 服务器(资源提供者)向模型公开数据和工具。

这个三层架构镜像了 LSP 模型,但专门为 LLM 的随机性、受限的上下文窗口本质设计。它允许模型动态发现和交互工具与资源,无需硬编码的集成。

融合:当 LSP 遇见 MCP

真正的力量在 LSP 和 MCP 融合时出现。现代 AI Agent 不仅需要生成代码;它们需要理解代码库、导航其结构,并与其运行时环境交互。

为 AI Agent 标准化上下文

AI 辅助开发中最大的挑战之一是上下文管理。LLM 的上下文窗口有限,将整个代码库提供给它们既低效又昂贵。

LSP 提供关于代码库的结构化信息:符号、类型、引用和定义。MCP 可以将这些 LSP 派生的数据作为资源或工具公开给 AI 模型。例如:

  • MCP 资源:一个 file:// URI,指向特定文件,带有关于其大小和语言的元数据。
  • MCP 工具:一个 find_references 工具,查询 LSP 服务器以查找符号的所有用法。

这种融合允许 AI Agent 以静态分析工具的精度运作,同时保持自然语言交互的灵活性。与其让 LLM"查找所有与身份验证相关的 bug",不如让 Agent 查询 LSP 服务器查找所有用 @auth 修饰符标记的函数,然后让 LLM 分析这些函数内的逻辑。

安全隐患

这种集成引入了新的安全风险。如果 AI Agent 可以通过 LSP 查询代码库,并通过 MCP 执行工具,它实际上对开发环境拥有读/写访问权限。

  • 特权提升:MCP 服务器可能公开删除文件或重启服务的工具。如果 LLM 误解了提示词,它可能执行破坏性操作。
  • 数据外泄:MCP 服务器可能公开敏感配置文件或数据库架构。如果 LLM 被妥协,这些数据可能被泄露。
  • 供应链攻击:恶意的 MCP 服务器可能像 npm 包一样被打包和分发,将有害工具注入 AI 工作流。

Rust 驱动基础设施的崛起

为了缓解这些风险并处理 AI Agent 的高吞吐量、低延迟要求,基础设施层越来越多地用 Rust 构建。Rust 提供了几个优势,使其成为这个角色的理想选择:

1. 内存安全和性能

AI Agent 经常处理大量数据(代码库、日志、指标),必须快速处理它们。Rust 的所有权模型在没有垃圾收集器的情况下确保内存安全,导致可预测的性能和降低的延迟。这对 IDE 中的实时 AI 交互至关重要。

2. 设计安全性

Rust 的类型系统防止了缓冲区溢出和数据竞争等常见漏洞。在构建与敏感系统交互的 MCP 服务器或 LSP 客户端时,Rust 提供的基础比 Python 或 JavaScript 更安全,这两种语言更容易出现运行时错误和安全漏洞。

3. WebAssembly 兼容性

Rust 可以轻松编译为 WebAssembly(Wasm),允许 AI 基础设施在基于浏览器的环境或沙箱容器中安全运行。这对于在不可信环境中运行 MCP 服务器至关重要。

4. 生态系统成熟

Rust 生态系统已大幅成熟,拥有 tower(用于异步服务)、serde(用于序列化)和 tokio(用于并发)等库。这些库使得构建强大的、高性能的 MCP 和 LSP 服务器变得直接了当。

在 Rust 中构建一个安全的 MCP 服务器

让我们看一个实际例子,说明如何使用 Rust 构建一个安全的 MCP 服务器。我们将使用 mcp-rs 库(假设的,基于当前趋势)来创建一个服务器,该服务器公开一个从本地代码库读取代码片段的工具。

先决条件:

  • Cargo 包管理器
  • 对异步 Rust 的基本理解

步骤 1:初始化项目

cargo new mcp-code-server
cd mcp-code-server

步骤 2:添加依赖项

将必要的依赖项添加到你的 Cargo.toml:

[dependencies]
mcp = "0.1.0" # Hypothetical MCP library for Rust
tokio = { version = "1.0", features = ["full"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
tracing = "0.1"

步骤 3:实现 MCP 服务器

use mcp::{Server, Tool, Resource};
use serde_json::json;
use std::fs;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Initialize the MCP server
    let mut server = Server::new("code-server", "0.1.0");

    // Define a secure tool to read code snippets
    let read_code_tool = Tool::new(
        "read_code",
        "Reads a code snippet from a specified file path",
        json!({
            "type": "object",
            "properties": {
                "path": {
                    "type": "string",
                    "description": "The absolute path to the code file"
                }
            },
            "required": ["path"]
        }),
        |args| async move {
            let path = args["path"].as_str().unwrap();

            // Security Check: Ensure the path is within the allowed directory
            let allowed_dir = std::env::current_dir()?.canonicalize()?;
            let resolved_path = std::path::Path::new(path).canonicalize()?;

            if !resolved_path.starts_with(&allowed_dir) {
                return Err("Access denied: Path outside allowed directory".into());
            }

            // Read the file content
            let content = fs::read_to_string(&resolved_path)?;
            Ok(json!({
                "content": content,
                "path": path
            }))
        }
    );

    // Register the tool
    server.register_tool(read_code_tool);

    // Start the server
    server.run().await?;
    Ok(())
}

运行:

cargo run

这个服务器公开了一个 read_code 工具,允许 AI 模型读取代码文件,但带有一个关键的安全限制:它只允许访问当前目录内的文件。这防止了路径遍历攻击,并限制了 AI 访问的范围。

保护 AI Agent 基础设施的最佳实践

当你将 MCP 和 LSP 集成到开发工作流中时,考虑这些最佳实践:

  • 最小权限原则:仅向 AI Agent 授予其需要的资源访问权限。为 MCP 服务器使用沙箱环境。
  • 审计日志:为所有 MCP 和 LSP 交互实现全面的日志记录。这有助于检测异常活动和调试问题。
  • 输入验证:严格验证来自 AI 模型的所有输入。永远不要盲目信任 LLM 输出。
  • 速率限制:通过限制 AI Agent 对 MCP 服务器的请求数量来防止滥用。
  • 定期更新:保持你的 MCP 和 LSP 库最新,以受益于安全补丁和性能改进。

AI 驱动开发的未来

MCP、LSP 和 Rust 的融合只是开始。我们可以期待看到:

  • 跨 IDE 的 AI Agent:通过利用标准化协议,无缝跨 VS Code、IntelliJ 和 Neovim 工作的 AI Agent。
  • 企业级安全:MCP 服务器内置的安全功能,如 OAuth2 身份验证和基于角色的访问控制(RBAC)。
  • 性能优化:基于 Rust 的 MCP 服务器,能够每秒处理数百万请求,在规模上启用实时 AI 辅助。

常见问题

MCP 与现有的 LSP 服务器兼容吗?

是的,MCP 设计为与 LSP 可互操作。MCP 服务器可以查询 LSP 服务器获取代码智能,LSP 客户端可以使用 MCP 工具获取 AI 驱动的功能。这种集成通过标准化的 JSON-RPC 消息便于进行。

为什么相对于 Python,Rust 更受青睐来构建 MCP 服务器?

Rust 提供更好的性能、内存安全和并发处理,这对于高吞吐量、低延迟的 AI 交互至关重要。虽然 Python 在 AI 模型开发中很受欢迎,但 Rust 更适合为这些模型提供动力的基础设施层。

我如何保护我的 MCP 服务器免受恶意提示词的影响?

实现严格的输入验证,沙箱化服务器环境,并限制对 AI 模型公开的工具和资源。定期审计日志中的异常活动,并使用速率限制来防止滥用。

如需更多关于构建安全 AI 基础设施的见解,请查阅 Tamiz 的 Insights,了解开发者工具和 AI 的最新趋势。

如需进一步操作,你可以考虑屏蔽此人和/或举报滥用。

Original source

本文由 AI 翻译整理自 dev.to · AI,原文版权归原作者所有。

阅读英文原文
上一篇
AI Agent应用:用DB触发器而非Prompt管理状态
下一篇
自动化偏见:人类为何橡皮章AI,如何防护