Skip to content

MCP Server 面试与项目答辩 Playbook ​

目标:把 MCP Server 从“会写 demo”讲成“能设计、能治理、能上线、能排障”的工程能力。

30 秒回答 ​

MCP Server 是把外部系统能力标准化暴露给 AI 客户端的协议服务。它不是简单把 API 包一层,而是要把工具、资源、Prompt、权限、审计、错误处理、部署方式和测试体系一起设计好。

面试官真正想听什么 ​

问题低质量回答高质量回答
MCP 解决什么问题让模型调用工具让多个 AI 客户端以标准协议发现和调用外部系统能力
Tool 怎么设计写函数给模型调设计单一职责、强 schema、风险等级、错误码、幂等性和审批策略
Resource 有什么用读文件以 URI / template 暴露上下文数据,并由客户端决定是否注入模型上下文
Prompt 有什么用提示词模板把领域工作流参数化,让用户显式触发可重复流程
怎么上线配置一下客户端选择 stdio / Streamable HTTP / MCPB,补齐 auth、日志、限流、监控和版本策略

系统设计白板 ​

mermaid
flowchart TB
  Client["MCP Client / Host"] --> Discovery["tools/list resources/list prompts/list"]
  Client --> Call["tools/call / resources/read / prompts/get"]
  Call --> Gateway["MCP Server Gateway"]
  Gateway --> Auth["Auth / Tenant / Policy"]
  Gateway --> Registry["Tool Registry"]
  Registry --> ToolA["Business API"]
  Registry --> ToolB["Database Read Model"]
  Registry --> ToolC["Workflow Action"]
  Gateway --> Audit["Audit Log + Trace"]
  Audit --> Eval["Replay / Regression / Release Gate"]

必讲 6 个工程点 ​

1. Tool Contract ​

每个工具必须说明:

  • name:稳定、短、动宾结构。
  • description:包含适用场景和不适用场景。
  • inputSchema:字段类型、范围、枚举、必填项。
  • output:成功结构、失败结构、用户可读摘要、机器可读 code。
  • riskLevel:read / write / destructive / external side effect。
  • approvalPolicy:自动、二次确认、人工审批。

2. Resources 与权限过滤 ​

Resource 不应该绕过业务权限。资源 URI、模板参数、分页、缓存都要和租户、角色、数据权限绑定。尤其是企业 RAG 或数据库场景,不能因为 Agent 请求上下文就泄漏用户无权查看的数据。

3. Elicitation 的边界 ​

MCP Elicitation 允许 Server 通过 Client 向用户请求补充信息。设计上要把它当作“受控表单交互”,不是让 Server 私自收集秘密。敏感信息应走专门授权或 URL 流程,不要通过普通表单塞进模型上下文。

4. 传输与部署选择 ​

方案适合场景风险
stdio本地开发、个人工具、原型分发成本高,stdout 日志会破坏协议消息
Streamable HTTP云 API、团队服务、企业集成需要处理认证、限流、租户和网络稳定性
MCPB / bundle需要访问本机资源但希望降低安装门槛要管理运行时、依赖和升级
MCP App / widget需要表单、选择器、图表等交互 UI前端安全、状态同步和兼容性更复杂

5. 测试策略 ​

  • tools/list 快照测试:schema 变更必须审查。
  • tools/call 契约测试:正常、缺参、越权、上游超时、空结果。
  • Resource 权限测试:不同租户、不同角色、无权限数据。
  • Elicitation 测试:accept / decline / cancel 三种路径。
  • 端到端测试:真实客户端或 Inspector 验证可发现、可调用、可解释。

6. 可观测性 ​

至少记录:

  • client / user / tenant / tool / schemaVersion
  • latency / timeout / retry / upstream status
  • approval decision / risk level
  • input hash / output hash / trace id
  • error code / failure category / replay payload

面试追问速答 ​

Q1:MCP Tool 和普通 function calling 有什么区别? ​

普通 function calling 通常绑定在某个模型调用或应用内部;MCP 是客户端和外部能力之间的标准协议,可以跨客户端发现和调用工具、资源、Prompt。工程重点也从“函数能不能跑”变成“协议、权限、部署、审计、版本是否可治理”。

Q2:如何避免 Agent 调错工具? ​

工具命名要稳定,description 要写清适用/不适用场景,schema 要限制输入范围;同时用 contract tests 和 conversation regression tests 覆盖常见误调用场景,并在 Trace 中记录 tool selection reason。

Q3:MCP Server 出问题怎么排查? ​

先分层定位:客户端 discovery 是否成功、schema 是否兼容、参数是否通过校验、权限是否拒绝、上游 API 是否失败、返回内容是否被客户端解析。每层都要有 trace id 和错误码。

作品集表达模板 ​

我做 MCP Server 时不是只包装 API,而是先做 Tool Contract 设计:定义工具职责、schema、风险等级、审批和错误码;再做 Resources 权限过滤和 Prompt 工作流;最后用 Inspector、contract test、权限用例和 trace replay 验证上线稳定性。

参考资料 ​