提供上下文
把文档、数据库记录、代码文件、配置说明等资料,以可发现、可读取的方式提供给 AI 应用。
MCP 全称 Model Context Protocol。它不是一个模型,也不是一个数据库,而是一套让 AI 应用连接外部数据、工具和工作流的开放协议。可以把它理解成 AI 应用的“标准连接层”:Host 负责使用,Client 负责连接,Server 负责提供能力。
大模型本身只会处理输入和输出。企业应用需要文件、数据库、接口、搜索、工单、权限和审批。MCP 解决的就是“AI 应用怎么用统一方式接这些外部能力”。
把文档、数据库记录、代码文件、配置说明等资料,以可发现、可读取的方式提供给 AI 应用。
把查询订单、搜索代码、创建工单、调用 API 这类能力暴露成模型可调用的工具。
把常见任务封装成 prompt 模板,例如“生成周报”“排查线上错误”“写需求 PRD”。
同一个 MCP Server 可以被多个支持 MCP 的客户端复用,降低重复集成成本。
MCP 是一套开放连接协议,让 AI 应用用统一方式连接外部数据源、工具和工作流。它用 Host、Client、Server 的架构组织连接,用 JSON-RPC 传消息,并通过 Tools、Resources、Prompts 等能力把外部系统提供给 AI 使用。
企业里不止一个 AI 应用,也不止一个业务系统。如果每个客户端都单独接每个系统,后续维护、权限治理和复用都会很麻烦。
聊天机器人接知识库一套逻辑,IDE 接代码库一套逻辑,Agent 平台接工单系统又写一套。工具描述、参数 schema、鉴权、日志都散落在不同项目里。
知识库、代码库、工单系统分别做成 MCP Server。不同 AI Host 通过标准协议发现和使用能力,治理策略也更容易集中。
理解 MCP 架构时,先记住这句话。Server 不是一定指云服务器,它可以是本机进程,也可以是远程服务。
例如聊天客户端、IDE、Agent 平台。它负责管理用户会话、模型上下文、多个 MCP 连接和最终交互体验。
通常一个 MCP Server 对应一个 MCP Client。Client 负责初始化、能力协商、收发 JSON-RPC 消息。
Server 暴露 tools、resources、prompts。它背后可以连接文件系统、数据库、业务 API 或工作流平台。
这样讲比较清楚:数据层规定“说什么话”,传输层规定“用什么通道说”。同一套 JSON-RPC 消息,可以跑在不同传输方式上。
定义 JSON-RPC 消息、生命周期管理、能力协商、tools、resources、prompts、notifications、progress、logging 等语义。
定义 Client 和 Server 之间怎么传消息。常见方式是本地 stdio 和远程 Streamable HTTP,也可以扩展自定义传输。
如果你做本地文件系统 MCP Server,可能用 stdio;如果你做企业云端知识库 MCP Server,可能用 Streamable HTTP 和 OAuth。传输方式不同,但上层依然是 MCP 的方法、能力和消息结构。
这三类能力很容易混。Tools 是动作,Resources 是资料,Prompts 是模板。面试时把控制权讲清楚,会显得很专业。
例如查询订单、搜索代码、创建工单、调用数据库查询。通常由模型根据用户意图决定是否调用,但执行前仍要经过 Host 的控制。
例如文件内容、数据库 schema、API 文档、知识库片段。它更像资料入口,应用可以选择是否放进模型上下文。
例如“生成 PRD”“总结会议”“排查故障”。它把一组提示词、参数和工作流入口标准化。
| 能力 | 更像什么 | 常见控制方 | 典型方法 |
|---|---|---|---|
Tools |
可执行函数 | 模型请求,Host 审批 | tools/list、tools/call |
Resources |
可读取资料 | 应用选择和展示 | resources/list、resources/read |
Prompts |
可复用任务模板 | 用户主动选择 | prompts/list、prompts/get |
MCP 是有状态协议。Client 和 Server 建立连接后,需要初始化、协商协议版本和能力,然后才能发现和使用能力。
{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2025-11-25",
"capabilities": {
"elicitation": {}
},
"clientInfo": {
"name": "enterprise-ai-assistant",
"version": "1.0.0"
}
}
}
传输方式决定消息怎么走。做面试回答时,能讲出两者适用场景和安全注意点就够用了。
Client 启动 MCP Server 子进程,通过 stdin 和 stdout 传 JSON-RPC。适合本地文件、命令行工具、开发机环境。关键点是 stdout 只能输出合法 MCP 消息,普通日志应写到 stderr。
Server 作为独立 HTTP 服务运行,Client 通过统一 MCP endpoint 发送 POST,也可以用 SSE 接收流式消息、通知和长任务进度。远程场景要重点处理认证、会话和来源校验。
不需要死背所有方法。先看懂 tools/list、tools/call、resources/read 这几个常用动作,协议就不神秘了。
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/list"
}
{
"jsonrpc": "2.0",
"id": 2,
"result": {
"tools": [
{
"name": "kb_search",
"title": "搜索企业知识库",
"description": "按关键词检索制度、接口文档和产品需求",
"inputSchema": {
"type": "object",
"required": ["query"],
"properties": {
"query": { "type": "string" }
}
}
}
]
}
}
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "kb_search",
"arguments": {
"query": "商品导入失败原因"
}
}
}
{
"jsonrpc": "2.0",
"id": 3,
"result": {
"content": [
{
"type": "text",
"text": "找到 3 篇相关文档:导入任务、错误码、字段校验规则"
}
]
}
}
method 表示要做什么,例如 tools/list 或 tools/call。params 是调用参数,必须按 schema 校验。result 是返回结果,最终回答要基于这个结果,不能凭空补充。这几个词经常被混用。面试时把边界讲清楚,比背定义更重要。
API 面向业务系统调用方;MCP 面向 AI 应用,标准化能力发现、资源读取、工具调用和提示模板。
RAG 重点是检索资料再回答;MCP 可以给 RAG 暴露知识库资源,也可以暴露工具和工作流。
MCP 可以把工具以标准方式暴露给 AI 应用;Tool Calling 更偏模型如何选择和调用某个工具。
Agent 负责规划、执行和反思;MCP 是 Agent 可用的连接层,让它能接外部数据和工具。
API 是路,RAG 是查资料的办法,Tool Calling 是模型请求动作的机制,Agent 是执行任务的主体,MCP 是把外部能力标准化接进 AI 应用的协议。
不要一上来就写代码。先决定 Server 服务谁、连接什么系统、暴露哪些能力、哪些动作需要确认、哪些数据不能出边界。
| 能力 | 设计 |
|---|---|
| Tools | kb_search、doc_summarize、find_owner |
| Resources | kb://doc/{docId}、kb://space/{spaceId}/index |
| Prompts | write_prd_from_docs、compare_policy_versions |
| Policy | 按租户、部门、文档密级、用户角色过滤 |
{
"uriTemplate": "kb://doc/{docId}",
"name": "knowledge-document",
"title": "企业知识库文档",
"description": "按文档 ID 读取当前用户有权限查看的文档内容",
"mimeType": "text/markdown"
}
MCP 只是协议,不能自动替你解决权限、隐私和审批。真正上线时,Host、Client、Server 都要承担安全责任。
用户应该知道 AI 将访问哪些资料、调用哪些工具、执行什么动作。
不要把完整数据库或敏感文档直接丢给模型。按权限、范围和必要性提供上下文。
写数据、发消息、删除文件、提交审批这些工具,必须有确认、幂等和审计。
远程 MCP Server 要考虑 OAuth、Token 作用域、Origin 校验、会话管理和限流。
常见故障不是“模型不聪明”,而是 Server 没启动、能力没注册、schema 写错、权限失败、返回格式不稳定或 stdout 混入了普通日志。
Server 是否启动,初始化是否完成,协议版本是否协商成功。
tools/list、resources/list、prompts/list 是否返回预期能力。
tools/call 是否通过校验、权限、下游 API 和超时控制。
模型最终回答是否基于 MCP 返回结果,而不是自己补内容。
这个案例和需求 PRD、RAG、Tool Calling 都能串起来,适合面试讲企业落地。
Server: product-docs-mcp
Resources:
kb://product/import/current-prd
kb://api/product-import/schema
kb://policy/permission/product-admin
Tools:
kb_search(query, spaceId)
api_schema_lookup(apiName)
owner_lookup(domain)
Prompts:
write_prd_from_docs(topic, audience, outputLevel)
compare_old_new_requirement(oldDocId, newTopic)
MCP 不是直接“生成 PRD”的魔法。它先把企业资料、接口、负责人、模板用标准协议暴露出来,再让 AI 应用在权限范围内读取和调用,最终基于真实资料生成 PRD。
面试官问 MCP,通常不是想听你背文档,而是看你能不能把 AI 连接企业系统这件事讲清楚。
A:MCP 是 Model Context Protocol,是一套让 AI 应用连接外部数据、工具和工作流的开放协议。它用 Host、Client、Server 的架构组织连接,用 JSON-RPC 传消息,让 AI 可以标准化发现和使用 Tools、Resources、Prompts。
A:因为企业里 AI 应用很多,业务系统也很多。如果每个应用都单独接每个系统,会产生大量重复集成。MCP 把连接方式标准化,让外部能力可以被多个 AI 客户端复用,也更容易做权限、日志和治理。
A:Host 是用户使用的 AI 应用,比如聊天客户端或 IDE;Client 是 Host 里负责连接某个 Server 的组件;Server 是提供上下文和能力的一方,可以暴露工具、资源和提示模板。通常一个 Server 对应 Host 里的一个 Client 连接。
A:API 是某个业务系统自己的接口;MCP 是面向 AI 应用的标准连接协议。它不只是调用接口,还包括能力发现、工具 schema、资源读取、prompt 模板、生命周期和通知等协议能力。
A:最需要注意安全和治理。MCP 能让 AI 接触数据和工具,所以必须做用户同意、权限控制、参数校验、敏感数据保护、写操作确认、审计日志和远程服务认证。
学完这一课,至少要能为一个企业系统设计 MCP Server 的能力清单。
列出 2 个 tools、2 个 resources、1 个 prompt,并说明哪些能力需要用户确认。
把“查订单”“读取接口文档”“创建售后单”“读取错误码表”分别归类,并解释原因。
从用户同意、权限、参数校验、数据脱敏、幂等、审计六个维度写检查项。