Tools
有副作用或需要计算的可执行函数。用 JSON Schema 明确输入,并返回结构化结果、文本或资源引用。
tools/listtools/callMCP 开发不是“写几个工具函数”。它是一套从能力建模、协议通信、权限边界,到测试、部署与运维的完整接口工程。
Host 管理用户体验和模型;Client 维护一条面向某个 Server 的协议连接;Server 把外部系统包装成可发现、可验证、可调用的上下文与动作。点击节点查看职责。
最重要的设计决定不是选 Python 还是 TypeScript,而是把业务能力正确分成“动作、数据、工作流模板”。边界越清晰,模型越容易选对能力。
有副作用或需要计算的可执行函数。用 JSON Schema 明确输入,并返回结构化结果、文本或资源引用。
tools/listtools/call可读取的上下文数据,如文件、数据库记录、日志或网格摘要。用 URI 标识,用 MIME 类型描述。
resources/listresources/read可复用的交互模板,把领域流程、参数和示例包装为入口,帮助用户稳定地发起复杂任务。
prompts/listprompts/getServer 通过 Client 请求用户补充信息或确认关键动作。适合缺参、审批与敏感操作前确认。
在 2026-07-28 版中已被标记为弃用;新实现应直接连接模型 API,并使用 stderr 或 OpenTelemetry 记录日志。
Tasks 可为长任务提供持久句柄;MCP Apps 可在兼容 Host 内呈现交互界面。它们属于按需增加的扩展层。
MCP 的数据层建立在 JSON-RPC 2.0 之上。当前规范强调无状态请求、每次请求携带版本与能力元数据;发现、列举、调用和通知各有明确消息。
Client 可先请求 server/discover,了解 Server 支持的协议版本、能力、身份与缓存策略。
CLIENT → SERVERSDK 会替你处理消息封装,但不会替你做领域建模、权限边界、幂等性、资源治理或故障恢复。展开每层查看具体产物和常见陷阱。
两种传输承载相同的数据层消息,但启动方式、身份认证、并发、隔离和运维责任完全不同。
Host 启动 Server 子进程,通过标准输入输出交换消息。适合个人工具、本机文件和开发调试。
Client 通过 HTTP POST 发消息,可选 SSE 流式返回。适合远程服务、多用户和企业集成。
先证明“能力边界正确”,再追求“协议功能完整”。最小 Server 应该有一个真实场景、可验证契约和安全失败路径。
明确用户、后端系统、读写范围、风险和成功标准。
任务清单把需求分到 Tools、Resources、Prompts 与 Elicitation。
接口草图先写可独立测试的业务服务,再套 MCP handler。
领域 API注册 Schema、传输、错误、分页、进度与通知。
可运行 Server用 Inspector 和契约测试,再连接目标 AI 应用。
回归用例认证、限流、审计、监控、版本、发布与回滚。
运行手册对你的场景,最实用的做法是让 MCP 成为“受控的工程接口层”,而不是让模型直接拼 shell 命令。求解器和 C++ 库保持原样,外围用成熟 SDK 适配。
把案例读取、检查、提交、监控和后处理分成窄而可审计的能力;让 AI 负责选择与解释,让领域层负责规则与执行。
case://demo/summarycase://demo/logcase://demo/residualscase://demo/boundaryvalidate_casecheck_meshsubmit_jobjob_statussample_resultsdiagnose_divergenceprepare_case_reportcompare_schemesconfirm_core_hoursselect_time_rangeapprove_overwriteTier 越高,通常意味着协议覆盖和维护承诺越强。以下代码只表达架构骨架:Handler 做校验和映射,真正的 CFD 逻辑放在独立 service 中。
SDK 层级会随协议支持与维护状态变化;实际选型前应再次检查官方 SDK 页面。
MCP 扩大了 AI 应用的行动能力,也扩大了攻击面。Server 端、Client 端和底层资源都必须独立验证,不能把模型判断当成安全边界。
接受并向下游转发并非为本 Server 签发的 token,会破坏 audience 边界和审计链。
→ 验证 issuer / audience / scope;禁止令牌透传OAuth discovery、重定向或 Server 提供的 URL 可能访问内网、元数据端点或危险 scheme。
→ HTTPS、私网阻断、逐跳校验、受控 egressstdio Server 本质上是以用户权限执行的本机程序,恶意启动命令可导致执行、泄漏或删除。
→ 来源验证、沙箱、最小文件/网络权限工作流 ID、作业 ID 或购物车 ID 不是身份凭证;可猜句柄会造成跨用户访问。
→ 随机句柄、过期、服务端绑定已验证用户路径、SQL、shell 参数和模板都可能承载注入;Schema 合法不等于业务安全。
→ 参数化、allowlist、规范化与二次授权模型可能误选核数、覆盖目录、批量发信或执行不可逆操作。
→ 配额、dry-run、幂等键、确认与审计点击勾选,得到一个本地完成度。这里不保存也不上传任何数据。
先完成接口与权限边界设计