| Transporte HTTP JSON-RPC | aimcptrHttp | TransportOptions.Http | Una petición, una respuesta, y la conexión se cierra. |
| Transporte HTTP Streamable | aimcptrHttpStreamable | TransportOptions.HttpStreamable | Keep-alive más un stream SSE, que es el que transporta las notificaciones y las peticiones iniciadas por el servidor. |
| Transporte stdio | aimcptrStdio | host stdio aparte | El cliente lanza un subproceso local. El stdio del lado servidor lo proporciona una clase host dedicada, no el componente de la paleta. |
| Handshake | Initialize | OnMCPInitialize | Negociación de capacidades y asignación del id de sesión. |
| Sesiones | Session, HeartBeat | OnMCPSessionNew, OnMCPSessionEnd, SessionTimeout | Las sesiones inactivas caducan en el servidor, el cliente puede mantener una viva con pings periódicos. |
| Herramientas | ListTools, RequestTool | Tools, OnMCPRequestTool | Listar e invocar. El servidor dispara un evento donde tu código hace el trabajo. |
| Prompts | ListPrompts, RequestPrompt | Prompts, OnMCPRequestPrompt | El mismo patrón que las herramientas. |
| Recursos | ListResources, RequestResource, ListResourceTemplates | Resources, ResourceTemplates, OnMCPRequestResource | Los listados admiten un cursor para paginar. |
| Suscripciones a recursos | SubscribeResource, UnsubscribeResource | SendNotificationResourcesUpdated | Sigue un recurso y recibe aviso cuando cambie. |
| Notificaciones de cambio de listado | se reciben | SendNotificationToolsListChanged y sus equivalentes de prompts y recursos | Requiere el transporte streamable. |
| Roots | OnMCPListRoots | RequestRootsList | El servidor pregunta al cliente qué raíces del sistema de archivos puede usar. |
| Sampling | OnMCPSamplingCreateMessage | RequestSamplingCreateMessage | El servidor pide una respuesta al modelo del cliente. |
| Elicitation | OnMCPElicitationCreate | RequestElicitationCreate | El servidor solicita datos al usuario a través del cliente. |
| Autocompletado | Complete | gestionado | Autocompletado del valor de los argumentos de herramientas y prompts. |
| Registro de eventos | SetLoggingLevel | SendLogMessage | Mensajes de log estructurados con un nivel controlado por el cliente. |
| Autenticación | Clave API, cabecera personalizada, OAuth 2.0 | Clave API, cabecera personalizada, OAuth 2.0 | MCPOptions.AuthenticationOptions en ambos lados. |
| Servidor de autorización integrado | — | ✓ | Registro dinámico de clientes, página de consentimiento, PKCE y refresh tokens, conforme a RFC 8414 y RFC 9728. |
| Validación de origen | — | HttpStreamable.ValidateOrigin | Fija una sesión a la cabecera Origin con la que se creó. |
| MCP 2026-07-28 (sin estado) | MCPOptions.ProtocolEra, Discover | era detectada por solicitud | _meta por solicitud, server/discover, cabeceras Mcp-Method, Mcp-Name y Mcp-Param validadas. El cliente recurre automáticamente a 2025-11-25. |
| Sugerencias de caché | se reciben | MCPOptions.Cache | ttlMs y cacheScope en resultados 2026-07-28. |
| subscriptions/listen | SubscriptionsListen, SubscriptionsCancel | MCPOptions.Subscriptions | Un único stream para cambios de listado y actualizaciones de recursos. |
| Multi Round-Trip Requests | OnMCPInputRequired | aResponse.InputRequired, MCPOptions.MRTR | Elicitation (formulario y URL), sampling y roots con un requestState firmado por HMAC. |
| Extensión Tasks | MCPOptions.Tasks.Enabled, TasksGet | CreateTask, MCPOptions.Tasks | io.modelcontextprotocol/tasks para llamadas a herramientas de larga duración; el cliente sondea automáticamente con AutoPoll. |
| Autorización del cliente | MCPOptions.Authorization | — | Descubrimiento de metadatos de recursos protegidos, Client ID Metadata Documents, fallback a registro dinámico, PKCE, indicadores de recursos, validación de iss (RFC 9207), credenciales por emisor. |