pub struct ServerCore { /* private fields */ }Expand description
Cœur de dispatch MCP stateless, réutilisable sans le transport HTTP.
Implementations§
Source§impl ServerCore
impl ServerCore
Sourcepub fn dispatch(&self, body: &[u8]) -> Option<Vec<u8>>
pub fn dispatch(&self, body: &[u8]) -> Option<Vec<u8>>
Traite un corps de requête JSON-RPC.
Renvoie None pour une notification (aucune réponse attendue —
le transport répondra 202 Accepted sans corps).
Conforme JSON-RPC : id: null explicite reçoit une réponse avec
id: null ; version jsonrpc invalide ou lot → -32600 ; JSON
illisible → -32700. L’id lisible est toujours repris dans la
réponse d’erreur (JSON-RPC 2.0 §5).
Conforme MCP 2026-07-28 : server/discover est implémentée, chaque
result porte resultType, et une version de protocole non supportée
est refusée en -32022.
Sourcepub fn dispatch_with_headers(
&self,
body: &[u8],
headers: Option<&McpHeaders>,
) -> Option<Vec<u8>>
pub fn dispatch_with_headers( &self, body: &[u8], headers: Option<&McpHeaders>, ) -> Option<Vec<u8>>
Idem ServerCore::dispatch, avec les en-têtes de routage MCP
(SEP-2243) pour vérifier leur cohérence avec le corps de la requête.
Mcp-Method / Mcp-Name sont optionnels chez nous (compatibilité
avec les clients qui les n’envoient pas) mais s’ils sont présents ils
doivent correspondre à la méthode et à l’outil du corps — sinon un
gateway qui route sur ces en-têtes désynchronise le routage.