SuperAPI AI 工具集

mcp

智能体与模型

查看项目

更新于 10-16 00:05

技能介绍

用途:在 .NET 应用或库中构建、消费 MCP(Model Context Protocol)服务器与客户端,实现协议级互操作。当需求是协议互通时使用本技能;若只需要模型/提供商抽象或本地工具编排,用 microsoft-extensions-ai;若核心问题是智能体编排,用 microsoft-agent-framework,仅在智能体需消费或暴露 MCP 端点时结合本技能。

主要能力:选择包与传输方式、暴露工具/资源/提示词/补全/日志、连接现有 MCP 服务器并把发现的工具传入 IChatClient、能力感知流程(roots、sampling、elicitation、订阅、会话恢复、企业托管授权)、发布到 MCP Registry。包选择:仅需客户端或底层服务器 API 用 ModelContextProtocol.Core;多数项目从 ModelContextProtocol 开始(含托管、DI、特性发现、stdio 服务器);ASP.NET Core 远程 HTTP 服务器用 ModelContextProtocol.AspNetCore。传输:本地子进程用 StdioClientTransport / WithStdioServerTransport();远程用 HttpClientTransport + HttpTransportMode.StreamableHttp(推荐);Sse 仅用于兼容旧服务器。

使用方式:本地服务器用 AddMcpServer().WithStdioServerTransport().WithToolsFromAssembly();HTTP 服务器用 WithHttpTransport() 并 app.MapMcp("/mcp")。表面建模:工具用 [McpServerToolType] + [McpServerTool],资源用 [McpServerResourceType] + [McpServerResource],提示词用 [McpServerPromptType] + [McpServerPrompt];简单服务器优先特性发现,自定义处理器/过滤器仅用于横切行为或协议扩展。消费端用 McpClient.CreateAsync(...),并检查 client.ServerCapabilities 后再用可选特性。

限制与注意:stdio 服务器不要向 stdout 写日志(日志走 stderr);工具异常通常返回 CallToolResult.IsError == true,仅协议级 JSON-RPC 失败抛 McpProtocolException;实验性 API 使用 MCPEXP 诊断;自定义 JsonSerializerContext 需前置 McpJsonUtilities.DefaultOptions.TypeInfoResolver。v2.0.0 对齐 MCP 2026-07-28,HTTP 默认无状态,Tasks 移至扩展包,Roots/Sampling/Logging 已弃用;v2.2.0 新增 HttpServerSessionMode。其他版本、价格、效果等信息暂未提供。