| Transporte HTTP JSON-RPC | aimcptrHttp | TransportOptions.Http | Uma requisição, uma resposta, a conexão se fecha. |
| Transporte HTTP Streamable | aimcptrHttpStreamable | TransportOptions.HttpStreamable | Keep-alive mais um fluxo SSE, que é o que carrega notificações e requisições iniciadas pelo servidor. |
| Transporte stdio | aimcptrStdio | host stdio separado | O cliente inicia um subprocesso local. O stdio do lado servidor é fornecido por uma classe host dedicada, e não pelo componente de paleta. |
| Handshake | Initialize | OnMCPInitialize | Negociação de recursos e atribuição do id de sessão. |
| Sessões | Session, HeartBeat | OnMCPSessionNew, OnMCPSessionEnd, SessionTimeout | Sessões ociosas expiram no servidor, e o cliente pode manter uma viva com pings periódicos. |
| Ferramentas | ListTools, RequestTool | Tools, OnMCPRequestTool | Listar e chamar. O servidor dispara um evento onde o seu código faz o trabalho. |
| Prompts | ListPrompts, RequestPrompt | Prompts, OnMCPRequestPrompt | Mesmo padrão das ferramentas. |
| Recursos | ListResources, RequestResource, ListResourceTemplates | Resources, ResourceTemplates, OnMCPRequestResource | As listagens aceitam um cursor para paginação. |
| Assinaturas de recursos | SubscribeResource, UnsubscribeResource | SendNotificationResourcesUpdated | Acompanhe um recurso e seja avisado quando ele mudar. |
| Notificações de lista alterada | recebidas | SendNotificationToolsListChanged e os equivalentes de prompt e recurso | Exige o transporte streamable. |
| Roots | OnMCPListRoots | RequestRootsList | O servidor pergunta ao cliente quais raízes do sistema de arquivos ele pode usar. |
| Sampling | OnMCPSamplingCreateMessage | RequestSamplingCreateMessage | O servidor pede uma resposta ao modelo do cliente. |
| Elicitation | OnMCPElicitationCreate | RequestElicitationCreate | O servidor pede uma entrada ao usuário por meio do cliente. |
| Completion | Complete | tratado | Autocompletar de valores de argumento para ferramentas e prompts. |
| Log | SetLoggingLevel | SendLogMessage | Mensagens de log estruturadas em um nível controlado pelo cliente. |
| Autenticação | chave de API, cabeçalho personalizado, OAuth 2.0 | chave de API, cabeçalho personalizado, OAuth 2.0 | MCPOptions.AuthenticationOptions nos dois lados. |
| Servidor de autorização integrado | — | ✓ | Registro dinâmico de clientes, página de consentimento, PKCE e refresh tokens, seguindo a RFC 8414 e a RFC 9728. |
| Validação de Origin | — | HttpStreamable.ValidateOrigin | Fixa a sessão ao cabeçalho Origin com que ela foi criada. |
| MCP 2026-07-28 (sem estado) | MCPOptions.ProtocolEra, Discover | era detectada por requisição | Cabeçalhos _meta por requisição, server/discover, Mcp-Method, Mcp-Name e Mcp-Param validados. O cliente recorre automaticamente ao 2025-11-25. |
| Sugestões de cache | recebidas | MCPOptions.Cache | ttlMs e cacheScope nos resultados de 2026-07-28. |
| subscriptions/listen | SubscriptionsListen, SubscriptionsCancel | MCPOptions.Subscriptions | Um único fluxo para mudanças de listas e atualizações de recursos. |
| Multi Round-Trip Requests | OnMCPInputRequired | aResponse.InputRequired, MCPOptions.MRTR | Elicitation (formulário e URL), sampling e roots com requestState assinado por HMAC. |
| Extensão Tasks | MCPOptions.Tasks.Enabled, TasksGet | CreateTask, MCPOptions.Tasks | io.modelcontextprotocol/tasks para chamadas de ferramentas demoradas; o cliente consulta automaticamente com AutoPoll. |
| Autorização do cliente | MCPOptions.Authorization | — | Descoberta de metadados de recurso protegido, Client ID Metadata Documents, fallback de registro dinâmico, PKCE, indicadores de recurso, validação de iss conforme RFC 9207, credenciais por emissor. |