云计算百科
云计算领域专业知识百科平台

MCP 服务器遍地开花却鲜有人用:如何避免你的 MCP 变成摆设

简简单单 Online zuozuo :本心、输入输出、结果

文章目录

  • MCP 服务器遍地开花却鲜有人用:如何避免你的 MCP 变成摆设
    • 前言
      • 1、MCP 试图解决的"数据难题"
      • 2、数据重要,但"范围"同样重要
      • 3、实践中如何构建一个 MCP 服务器
      • 4、刻意"限制" MCP 能做的事情
      • 5、在可用性与风险之间找到平衡
      • 6、结语:把 MCP 设计成"上下文系统",而不是"接口集合"

MCP 服务器遍地开花却鲜有人用:如何避免你的 MCP 变成摆设


编辑 | 简简单单 Online zuozuo 地址 | https://blog.csdn.net/qq_15071263


如果觉得本文对你有帮助,欢迎关注、点赞、收藏、评论,谢谢

前言

自从 Anthropic 在 2024 年 11 月发布 Model Context Protocol(MCP)以来,这个协议的采用率在 2025 年突然"起飞",尤其是在 OpenAI 和 Google 宣布支持 MCP 标准之后,越来越多团队开始"上车"构建自己的 MCP 服务器。 原因也很简单:它看起来能优雅地解决 AI 工具两大核心难题——拿到你系统中的高质量专有数据,以及无缝接入现有工具栈。

但现实并不是一片玫瑰。越来越多用户发现,市面上大量 MCP 服务器几乎没人真正用,更多是"跟风造轮子"或满足好奇心。甚至从搜索趋势上看,“MCP” 相关搜索在 2025 年 Q3 中后期开始明显下滑。 本文结合 Multiplayer 团队的实战经验,拆解为什么"绝大多数 MCP 服务器都在吃灰",以及如何从真实场景、数据范围、安全边界出发,设计一个真正有用、不会变成摆设的 MCP 服务器。

#MCP协议 #模型上下文协议 #AI开发工具 #开发者工具 #数据工程 #上下文管理 #软件架构

1、MCP 试图解决的"数据难题"

1

在所有 AI 应用里,数据质量一直是那个"隐藏变量"。大多数代码助手都是基于互联网上的公开数据训练出来的,输出质量极大依赖于:

  • 训练数据是否足够高质量、足够贴近你的问题场景
  • 你在提示(prompt)里能否给到足够准确、充分的上下文

关键问题在于:你的代码库本身并不在这些模型的训练集里。 模型不了解你私有仓库中的业务代码,不知道你那套几年前写的"魔法集成逻辑",也不了解你当前生产系统里的真实流量特征。它只在"开源世界"里见过类似模式。

在 MCP 出现之前,如果你想让 AI 工具真正理解你的系统,通常只能把上下文硬塞进 prompt 里:

  • 一方面,哪怕是当前上下文窗口最大的模型(十几万到上百万 token),也很难完整覆盖一个复杂系统;上下文一大,幻觉率还会升高,推理解题能力反而降低。
  • 另一方面,经济成本也很高:每次追加问题,都要重新把那一大坨上下文再发一遍,一个请求动辄几十上百万 token,费用迅速失控。

文章举了一个例子:Multiplayer 搭了一个"时间旅行"演示应用,大约 4.8 万行代码,只是用来给产品演示提供逼真的示例数据。 如果粗略按每行两 token 来算,光是代码就能吃掉 10 万 token 上下文窗口的全部配额——而这还没算日志、trace、配置、设计文档等其他关键信息。

现实中,一个开发者在排查问题或落地特性时,需要的远远不止源代码:

  • 前端数据:比如 Session Replay,看看真实用户做了什么;
  • 后端数据:APM/观测平台里的日志、指标、trace;
  • 协作上下文:工单、设计文档、决策背景。

在 MCP 服务器普及之前,这些数据的收集完全是碎片化、手工化的: 你需要对接不同系统、写一堆一次性脚本,把数据格式归一,然后一点点塞到 AI 的上下文里——既费力,又极难复用。

总结一下:很多 AI 工具"不给力",根本原因不是模型弱,而是缺少干净、关联性强、紧贴系统的高质量数据。MCP 的价值,就在于帮你以标准化方式暴露这些数据。

2、数据重要,但"范围"同样重要

2

数据质量当然重要,但同样关键的是:你到底要解决什么具体问题?MCP 的使用范围应该有多大? 如果只是为了在产品说明书上打勾"Supports MCP",而不是围绕清晰的使用场景来设计,那这个 MCP 服务器十有八九会吃灰。

这不仅仅是"该做成普通 API 集成还是 MCP 服务器"的选择问题。文章引用了 Bill Doerrfeld 的观点:“什么时候 MCP 才是真正值得的?”——本质上问的是:

你到底在帮用户解决哪个具体的、高频的痛点?

作者的建议是:暂时把技术实现放一边,先从用户的真实工作流和痛点出发。 不要一开始就想着"我们也做个 MCP",而是先问:

  • 用户今天在你的产品里每天要做上百次的动作是什么?
  • 这些动作里,有哪些天然适合用 AI 来提效或自动化?

Incident.io 的 Stephen Whitworth 有一句很有代表性的话:

少想想 AI"还能做哪些很酷的新东西",多想想用户每天要做 100 次的事里,有哪些事情 AI 能帮他们做得更好。

在 Multiplayer 的实践中,他们就是这么干的:

  • 不从"技术栈"或"API 列表"出发,而是先观察开发者已经如何使用 Multiplayer:
    • 一部分用于排查线上问题;
    • 一部分用于设计和评审新特性。
  • 然后反推:在这些已经存在的工作流里,AI 能补上的"最后一块拼图"是什么?

于是设计自然而然清晰起来:

  • 在调试场景中,把全栈 Session 数据直接输送给 AI 工具;
  • 在特性设计场景中,把录屏中的标注、草图等高价值上下文暴露给 AI。

换句话说,他们并没有创造一个全新的"AI 工作流",而是在补完已有的工作流。 开发者本来就用 Multiplayer 来收集、关联、分析全栈数据——MCP 只是让这些数据也能被 AI 利用,而不是再造一个平行世界。

最大的经验教训:让"使用场景"决定 MCP 的范围,而不是围绕"技术名词"去堆功能。

3、实践中如何构建一个 MCP 服务器

3

确定好场景和边界之后,下一步才是:把它变成一个真正可用的 MCP 实现。 这里有一个常见陷阱:把 MCP 工具做成"API 代理层",简单把每个数据接口原样暴露给模型。

这么做表面上看起来"多多益善",但在实际使用中问题很多:

  • 工具数量爆炸,模型难以理解每个工具的意义;
  • 工具粒度太细,模型很难自行组合调用,推理负担极重;
  • 很多接口在特定任务中其实是"噪声",会干扰模型选择。

Multiplayer 在设计 MCP 时采用了几条核心原则:

  • 按"用户任务"而不是"后端接口"来设计工具

    • 把多个内部 API 合并成逻辑上更贴近用户工作流的工具;
    • 例如"获取一次完整调试 Session 的上下文",而不是暴露十几个零散的日志/截图/trace 接口。
  • 保持无状态、易扩展

    • MCP 服务器本身不维护共享状态,可以在多环境之间横向扩容;
    • 状态由后端实际系统维护,MCP 只负责编排和暴露。
  • 支持灵活认证方式

    • 同时兼容 OAuth 和 API Key,覆盖不同团队的接入偏好和安全要求。
  • 为 AI 标准化数据

    • 对外通过统一的 MCP 资源暴露可用数据;
    • 避免让模型面对风格不一、字段不齐的"原始 API 响应"。

由于 Multiplayer 本身就已经聚合了丰富的上下文数据——Session 数据、日志、trace、备注、截图、草图等——问题不再是"暴露哪些数据",而是:

如何为 AI 预处理、筛选、压缩这些数据,让模型既"看得够多",又不会被噪声淹没?

在实现中,他们重点做了几件事:

  • 预过滤与扁平化: 在进入 MCP 层之前就先裁剪、聚合、补充上下文,只给模型推理真正需要的那部分信号;

  • 缓存高成本资源: 例如截图生成非常耗资源,于是通过缓存 Session 中的备注、截图等静态资产,只在底层数据发生变化时才重新生成;

  • 面向未来的扩展: 大体量 Session 目前仍然是一个限制,因此下一步会引入自动切分与分段总结机制,让多 GB 级别的 Session 可以被拆解为一系列对模型友好的"上下文块"。

这些设计都指向一个目标:MCP 服务器不是"原封不动地暴露数据",而是把数据加工成"模型可消化、可推理的上下文"。

4、刻意"限制" MCP 能做的事情

4

安全性是 MCP 系统中最复杂、也最容易被忽视的部分之一。 从设计上看,MCP 给 AI agent 提供了对大量工具和服务的访问能力,它天然拥有较大的攻击面。

研究者已经总结出 MCP 相关的一些典型风险,例如:

  • 工具投毒(tool poisoning):某个被信任的工具开始返回恶意数据;
  • “地毯式撤走”(rug pull):原本可信的服务器被替换或被攻陷;
  • 工具伪装(tool shadowing):恶意工具伪装成合法工具;
  • 远程命令执行:通过工具调用链在系统中执行未授权代码。

因为 MCP 服务器可以在多个环境之间读写数据、发起连接,所以对上下文数据的保护尤为关键:

  • 需要有完善的访问控制、
  • 行为可审计(auditability)、
  • 满足合规需求(compliance)。

Multiplayer 给自己定下的简单原则是:

刻意限制 MCP 能做的事,把"范围"当作一个安全决策。

在实践中,他们做了一个明确取舍:

  • 目前 MCP 服务器只暴露"只读"的全栈 Session 数据给 AI 工具;
  • 不通过 MCP 直接赋予 AI 写入生产系统的能力。

这让开发者在调试和开发时可以享受到完整的全栈上下文,而不会因为"AI 能直接改生产"而大幅放大风险。

5、在可用性与风险之间找到平衡

5

在安全性之外,部署模型本身也会极大影响 MCP 的风险与体验。 Multiplayer 起初尝试过本地 MCP 部署,后来切换为带完整 OAuth 2.0 支持的远程 MCP 服务器:

  • 使用 OAuth 2.0 做精细化授权

    • 为每个工具、每个会话签发范围受限的 Token;
    • AI agent 只能访问自己当前任务真正需要的那部分资源;
  • 兼容 API Key,但范围更窄

    • 为了兼顾旧系统和简单集成场景,仍然保留 API Key 模式;
    • 但会限制其可用范围和可执行动作,降低潜在危害面。

作者提到,在整个实现过程中,OAuth 2.0 的落地几乎占用了大部分工程时间。 一方面是因为当时 MCP 的 OAuth 规范仍在演进;另一方面也是因为一旦这层基础打牢,后续接入就能较为平滑地沿用这一套安全模型。

从更大的生态角度看,工具数量本身就是一个风险放大器。 Pynt 的一项研究分析了 281 个 MCP 配置,发现:

仅使用 10 个插件,系统被利用(exploitation)的概率就可能超过 90%。

Multiplayer 的应对策略是:有意识地减少"活动部件"的数量:

  • 他们要解决的问题(给开发者一个全栈统一的上下文视图)本来就在 Multiplayer Session 里;
  • MCP 服务器只是让这些现有数据对 AI 变得可用;
  • 不再额外依赖多套 MCP 来分别拉取 APM 数据、用户会话或备注——一切都通过同一安全层来暴露。

在这个意义上,“少即是多”:越是克制地设计 MCP,越容易在可用性与风险之间找到健康的平衡点。

6、结语:把 MCP 设计成"上下文系统",而不是"接口集合"

6

归根到底,Model Context Protocol 的价值不在于"暴露更多数据",而在于:

以正确的方式,暴露给模型"恰到好处"的数据。

MCP 工具是"给 LLM 用的",而不是给人类用的。 这意味着:你的目标不是 1:1 映射后端接口,而是给模型足够清晰、结构化、语义友好的上下文,使它能在合适的范围内做出可靠判断。

要做到这一点,必须从**用户意图(user intent)**出发,反向设计工具:

  • 每个工具都应该围绕某个明确的用户任务来构建;
  • 返回的数据要简洁但信息密度高,能在一次调用中给到决策所需的大部分信号;
  • 避免为了"全面"而把模型淹没在噪声里。

换个角度看,构建 MCP 服务器和设计一套好的公开 API 很像:

  • 需要清晰的作用域(scope);
  • 行为可预期、可复用;
  • 有经过认真思考的访问控制模型。 利用 OAuth 做认证,并尽可能保持交互为只读,是降低"爆炸半径"的现实做法,但即便如此,你仍然需要持续关注诸如 prompt 注入、上下文污染等新型风险。

对 Multiplayer 来说,最终的结论是:

MCP 的设计,本质上就是"上下文的设计"。 最好的系统是那些能让数据变得"有意义、安全且可行动"的系统。

如果你也在考虑为自己的产品构建 MCP 服务器,或许可以从以下几个问题开始自查:

  • 我们的 MCP 服务器,是为了解决哪两个最核心、最高频的用户问题?
  • 它暴露的数据,是不是刚好支撑这些任务,而不是"能拉的全都拉"?
  • 如果关掉这个 MCP,我们的用户具体会在哪些场景明显变慢、变痛苦? 能清楚回答这些问题,你的 MCP 服务器就已经迈过了"只是为了不落伍而造个轮子"的那条线。

生如逆旅,一苇以航 欢迎关注、欢迎联系交流、欢迎沟通想法、欢迎交换意见、欢迎合作咨询

感谢亲的关注、点赞、收藏、评论,一键三连支持,谢谢

赞(0)
未经允许不得转载:网硕互联帮助中心 » MCP 服务器遍地开花却鲜有人用:如何避免你的 MCP 变成摆设
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!