加载失败
这场讨论源于对“是否需要 MCP(LLM 插件/工具协议)”的质疑,评论者来自使用 Claude、Cursor、各类 agent 架构与工程实践的背景。核心前提包括:主流 LLM 已具备 function/tool calling 能力,开发者可用 OpenAPI/Swagger、CLAUDE.md 或 CLI 为模型提供工具调用信息;争论焦点在于 MCP 是否带来了额外的鉴权、发现与远端接入价值,还是只是在造名词并带来安全、规范碎片和上下文污染等工程负担。讨论还涉及具体实现与替代方案:MCP.json vs config.toml 的不一致、stdio 的安全风险、用子代理隔离上下文、以及用 GraphQL、OpenAPI 或 JIT 编译 agent(如 Stanford MAST 的 a1)作为可行替代。多个评论给出了实战示例(例如用 sentry-cli/gh 自动化、把 Jira wrapper 封装为 MCP 工具、或用远端浏览器 MCP 服务如 rtrvr.ai)。
大量评论认为 MCP 本质上只是把 JSON 注入到 LLM 上下文的一层薄胶水,而主流模型已经内置了 function/tool calling(函数/工具调用)能力,因此没有必要引入新的协议。实务例子包括用 CLAUDE.md、OpenAPI/Swagger 或简单的 shell/CLI 脚本来描述可用工具,评论者报告用命令行工具(如 gh、sentry-cli、bash 脚本)就能解决很多自动化任务并且对人类也有用。批评者还指出 MCP 常被包装成“新名词”以促成产品化和锁定用户,框架热潮(例如从 langchain 到 MCP)并没有解决部署 AI 的核心问题。若以工程可观察性、成熟的 API 标准与可测试性为目标,许多人推荐继续扩展现有 API 与 CLI,而不是强行采用 MCP。
[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7] [来源8]
另一批评论强调 MCP 在某些场景下确实有明显价值:把 API 凭据封装、做工具发现,并为非技术用户提供低摩擦的插件式接入。具体例子包括把 Linear/Notion/Sentry 等远端服务通过 MCP 一次性认证并让 Claude 等模型直接访问,或用 MCP 做为 orchestration 层把多仓库/多工具的工作流注入子会话(例如把 Jira wrapper 封装为 wanderland__get_detective_case)。有评论指出 MCP 能把新工具“加入代理的词汇/动作”,让模型无需反复提醒就能发现并使用这些工具;这对快速扩展或供端用户使用的插件商店式体验很有帮助。支持者同时承认 MCP 的实现目前不完美,但把它看作名为“API Gateway/插件层”的实用工程抽象。
[来源1] [来源2] [来源3] [来源4] [来源5] [来源6]
批评者列举了 MCP 在现实中频繁遇到的工程问题:规格碎片(不同实现用 mcp.json、config.toml、全局或项目级定义不统一),MCP 工具不在模型训练语料中导致可靠性下降,以及 MCP 服务器接口变化会打碎依赖脚本。安全风险被反复提及:凭据如何注入(磁盘/环境变量/密码 CLI)和 stdio/本地运行的安全脚手架常常成为脚踩雷区,持久 agent 自动遍历文件系统寻找 token 的风险也被指出。另一个常见问题是上下文污染或工具列表过多会淹没模型决策,且部分实现缺乏可观测性與版本管理,造成维护与兼容性成本上升。
[来源1] [来源2] [来源3] [来源4] [来源5] [来源6]
很多评论给出可行替代与改进实践:把 API 做好描述(OpenAPI/Swagger 或在 CLAUDE.md 中列出),为 CLI 工具加上简短说明与 --help 供模型调用,或用子代理(subagents)把工具上下文隔离以减轻主上下文污染。还有人推荐 GraphQL 在某些用例比 MCP 更清晰,或采用将代理 JIT 编译而不是在静态循环中运行的设计(例如 Stanford MAST 的 a1 项目)。工程化建议还包括把大型 CLI surface 转成 JSON schema → 工具链、在本地离线测试工具、以及为远端浏览器抓取等场景采用专门的远端 MCP 服务(例如评论中提到的 rtrvr.ai 作为浏览器 MCP 服务器)。总体倾向是以最小可测、可组合且安全的接口为首选,而不是盲目依赖单一新协议。
[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7]
MCP: 一种用来把 LLM/agent 与外部工具连接的协议/规范(包含工具发现、tool_call 约定、可通过 HTTP 或 stdio 传 JSON),由部分厂商推动用于插件生态。
Tool calling / function calling: LLM 的结构化调用能力:模型输出函数名或结构化 JSON 参数来触发外部 API/函数调用,是当前模型与工具协作的内置机制。
CLAUDE.md: Anthropic/Claude 生态中常用的项目或全局说明文件约定,用来把可用工具、提示信息或使用说明注入模型上下文,作为替代或补充 MCP 的方式。
MCP server: 实现 MCP 协议的服务端进程,负责暴露工具描述、管理认证、路由 tool_call 并把执行结果回传给模型或代理。
CLI(命令行工具): 传统命令行界面,被多名评论者推荐作为对模型可见、可测试且对人类也有用的“工具”,可通过设计简短描述与 --help 供代理调用。
Subagent(子代理): 在主代理会话外启动的次级会话,用来把工具调用与上下文隔离以减少主会话的上下文污染或工具过载。