MCP 生态与 Java 工程接入

共 18 题
#

1. 如何用 MCP Inspector 检查初始化、能力列表、Schema、资源读取、工具调用和协议错误

A Inspector 可检查初始化、能力列表、Schema、资源读取、工具调用与协议错误,是 Server 调试的必备工具 ✓ 正确答案
B Inspector 只能查看日志,不能调用工具
C Inspector 只用于 Python Server
D Inspector 会自动修复协议错误
#

2. 将订单或知识库服务封装为 MCP Server 时,如何保持最小能力、幂等性、明确错误和版本兼容

A 最小能力、幂等键、结构化错误与向后兼容的 Schema 共同保证工具安全、可预测、可演进 ✓ 正确答案
B 应暴露数据库全部能力,保证模型灵活
C 写入工具无需幂等,重试即可
D 错误只需抛异常,无需结构化
#

3. 把现有内部 REST 服务(如订单查询)封装为 MCP Server 时,如何在 Tool Schema 中准确表达参数约束而不泄漏内部细节

A Schema 应直接暴露内部字段名与数据库列名
B 内部错误堆栈应如实返回给模型
C Schema 只需表达参数类型,无需约束
D 用 JSON Schema 表达约束,参数用语义化命名,隐藏内部细节,服务端校验并规范化,返回脱敏 ✓ 正确答案
#

4. MCP Server 的“可观测性”应采集哪些指标(tools/call 耗时、错误率、客户端 ID、prompt token)

A 只需采集工具调用耗时,其他无需
B 客户端 ID 隐私敏感,不应采集
C token 指标与成本无关,无需采集
D 应采集工具调用耗时、错误率、客户端 ID、token 消耗与资源指标,支撑排障、成本与容量治理 ✓ 正确答案
#

5. 多 Server 出现同名工具或互不信任的数据源时,Host 如何命名空间隔离、授权和路由

A Host 用 namespace 前缀隔离同名工具、按 Server/用户授权、路由到正确后端,并用独立信任边界隔离数据源 ✓ 正确答案
B 同名工具应让 Server 自行改名,避免冲突
C 互不信任的数据源无需隔离,模型会处理
D 命名空间隔离会破坏协议,不应使用
#

6. 怎样为 MCP 做日志、分布式追踪、权限审查、Schema 契约和跨版本兼容测试

A 只需日志即可,其他不重要
B 权限审查与可观测性无关
C 结构化日志 + OpenTelemetry 追踪 + 权限审计 + Schema 契约测试 + 跨版本兼容测试共同保障可观测、可审计与兼容 ✓ 正确答案
D 跨版本兼容只需在发布时测试一次
#

7. MCP Inspector 在本地调试时如何复现生产请求,包括鉴权头、Sampling 请求与 Elicitation

A 通过配置鉴权头、模拟 Sampling 响应与 Elicitation 输入,把生产上下文对齐到本地以复现问题 ✓ 正确答案
B Inspector 只能调试无鉴权的本地请求
C Sampling 与 Elicitation 无法在 Inspector 中复现
D 复现生产请求只需传参数,无需鉴权
#

8. 把内部已有 OpenAPI(Swagger)自动转换为 MCP Server 时,参数命名、必填与安全标记如何忠实保留

A 应忠实保留参数命名、必填、安全标记、类型约束与描述,转换后做契约对比验证 ✓ 正确答案
B 转换时只需保留参数类型,其他可丢弃
C 安全标记无需保留,MCP 认证统一处理
D 必填信息转换后模型会自动推断
#

9. 企业内自研 MCP Server 与公共 MCP Server 共存时,如何让 Host 自动选择合适的 Server(按用户、租户、场景)

A 应始终优先用公共 Server,减少自研成本
B Server 选择只能由用户手动指定
C 所有请求都应走自研 Server,保证一致
D 按用户、租户、场景与数据敏感性路由,敏感数据强制走自研 Server,选择可审计并支持灰度 ✓ 正确答案
#

10. MCP 与传统 API Gateway 关系是什么,是否所有内部 API 都应暴露为 MCP,还是只暴露高频/低敏感操作

A 所有内部 API 都应暴露为 MCP,方便模型调用
B MCP 复用 Gateway 的治理,但只暴露高频、低敏感、适合 Agent 的操作,避免全量暴露放大风险 ✓ 正确答案
C MCP 应替代 API Gateway,完全独立
D 暴露的 API 越多越好,模型越灵活
#

11. MCP 错误传播(Tool 抛错、Server 内部异常)如何在 Client 端做用户友好提示同时保留调试信息

A Server 结构化错误,Client 给用户可读提示并保留调试信息(含 trace id),用户提示不暴露内部细节 ✓ 正确答案
B 错误堆栈应直接展示给用户,便于理解
C 所有错误都应提示"服务不可用",无需区分
D 调试信息无需保留,用户提示即可
#

12. 官方 SDK、参考 Server 与 mcp.so、glama.ai 等第三方目录的信任级别为何不能等同

A 第三方目录收录的 Server 与官方 SDK 同等可信
B 第三方目录收录即代表官方背书
C 参考 Server 是生产级,可直接用于生产
D 官方 SDK 信任最高、参考 Server 展示最佳实践、第三方目录仅作发现入口,其 Server 需企业严格审查 ✓ 正确答案
#

13. MCP 与 Skills 在运行时发现协议和预定义能力包上的差异是什么,组合使用时如何划界

A MCP 与 Skills 完全等价,只是名称不同
B MCP 只能用于本地预定义能力
C Skills 支持跨进程动态发现
D MCP 是运行时发现协议(动态工具/跨进程),Skills 是本地预定义能力包,按"是否需动态发现/跨进程"划界组合 ✓ 正确答案
#

14. MCP Server 是否应支持只读模式(dry-run)让用户在生产环境先看效果再实际执行

A dry-run 会导致真实副作用,应禁止
B 所有工具都应支持 dry-run,包括只读工具
C dry-run 返回"将要执行什么、什么影响"的预览,用户确认后再执行真实操作,降低高风险写操作风险 ✓ 正确答案
D dry-run 无需鉴权,因为不执行副作用
#

15. MCP Server 的 Schema 应在 CI 中自动测试,避免错误描述导致模型“幻觉式调用”

A Schema 无需测试,模型会自行适配
B CI 中校验 Schema 合法性、描述一致性、参数有效性与兼容性,防止错误 Schema 导致模型幻觉式调用 ✓ 正确答案
C Schema 测试只需在人工 review 时做
D 描述不一致不会影响模型调用
#

16. 为什么不能假设所有 MCP Server 都遵循最小权限原则,Client 端应主动校验 Server 返回的 capability

A Server 声明是待校验输入,Client 应核对能力合理性、按最小权限启用、调用时校验并监控行为 ✓ 正确答案
B 应信任 Server 的能力声明,因为它是协议的一部分
C 所有 Server 都遵循最小权限,无需校验
D 只校验工具名即可,无需校验 Schema
#

17. Spring AI 2.0 的 MCP Client/Server 与官方 Java SDK 应如何选型并接入现有 Spring 安全边界

A 官方 Java SDK 一定优于 Spring AI MCP
B Spring 项目不能用官方 Java SDK
C Spring AI MCP 深度集成 Spring 生态并复用 Spring Security 鉴权,官方 SDK 更底层适合精细控制,均需接入现有安全边界 ✓ 正确答案
D MCP 接入与 Spring Security 无关
#

18. 在 Spring AI 中如何让 MCP Client 自动发现并注册多个 Server(stdio + Streamable HTTP)

A 每个 Server 必须手写连接代码
B 通过 application.yml 声明多个 Server(stdio/HTTP),Spring AI 自动创建 Client、拉取工具并注册到容器,可加命名空间避免冲突 ✓ 正确答案
C Spring AI 一次只能注册一个 Server
D stdio 与 HTTP Server 不能在 Spring AI 中共存