in codex-rs/mcp-types/src/lib.rs [1265:1350]
fn try_from(req: JSONRPCRequest) -> std::result::Result<Self, Self::Error> {
match req.method.as_str() {
"initialize" => {
let params_json = req.params.unwrap_or(serde_json::Value::Null);
let params: <InitializeRequest as ModelContextProtocolRequest>::Params =
serde_json::from_value(params_json)?;
Ok(ClientRequest::InitializeRequest(params))
}
"ping" => {
let params_json = req.params.unwrap_or(serde_json::Value::Null);
let params: <PingRequest as ModelContextProtocolRequest>::Params =
serde_json::from_value(params_json)?;
Ok(ClientRequest::PingRequest(params))
}
"resources/list" => {
let params_json = req.params.unwrap_or(serde_json::Value::Null);
let params: <ListResourcesRequest as ModelContextProtocolRequest>::Params =
serde_json::from_value(params_json)?;
Ok(ClientRequest::ListResourcesRequest(params))
}
"resources/templates/list" => {
let params_json = req.params.unwrap_or(serde_json::Value::Null);
let params: <ListResourceTemplatesRequest as ModelContextProtocolRequest>::Params =
serde_json::from_value(params_json)?;
Ok(ClientRequest::ListResourceTemplatesRequest(params))
}
"resources/read" => {
let params_json = req.params.unwrap_or(serde_json::Value::Null);
let params: <ReadResourceRequest as ModelContextProtocolRequest>::Params =
serde_json::from_value(params_json)?;
Ok(ClientRequest::ReadResourceRequest(params))
}
"resources/subscribe" => {
let params_json = req.params.unwrap_or(serde_json::Value::Null);
let params: <SubscribeRequest as ModelContextProtocolRequest>::Params =
serde_json::from_value(params_json)?;
Ok(ClientRequest::SubscribeRequest(params))
}
"resources/unsubscribe" => {
let params_json = req.params.unwrap_or(serde_json::Value::Null);
let params: <UnsubscribeRequest as ModelContextProtocolRequest>::Params =
serde_json::from_value(params_json)?;
Ok(ClientRequest::UnsubscribeRequest(params))
}
"prompts/list" => {
let params_json = req.params.unwrap_or(serde_json::Value::Null);
let params: <ListPromptsRequest as ModelContextProtocolRequest>::Params =
serde_json::from_value(params_json)?;
Ok(ClientRequest::ListPromptsRequest(params))
}
"prompts/get" => {
let params_json = req.params.unwrap_or(serde_json::Value::Null);
let params: <GetPromptRequest as ModelContextProtocolRequest>::Params =
serde_json::from_value(params_json)?;
Ok(ClientRequest::GetPromptRequest(params))
}
"tools/list" => {
let params_json = req.params.unwrap_or(serde_json::Value::Null);
let params: <ListToolsRequest as ModelContextProtocolRequest>::Params =
serde_json::from_value(params_json)?;
Ok(ClientRequest::ListToolsRequest(params))
}
"tools/call" => {
let params_json = req.params.unwrap_or(serde_json::Value::Null);
let params: <CallToolRequest as ModelContextProtocolRequest>::Params =
serde_json::from_value(params_json)?;
Ok(ClientRequest::CallToolRequest(params))
}
"logging/setLevel" => {
let params_json = req.params.unwrap_or(serde_json::Value::Null);
let params: <SetLevelRequest as ModelContextProtocolRequest>::Params =
serde_json::from_value(params_json)?;
Ok(ClientRequest::SetLevelRequest(params))
}
"completion/complete" => {
let params_json = req.params.unwrap_or(serde_json::Value::Null);
let params: <CompleteRequest as ModelContextProtocolRequest>::Params =
serde_json::from_value(params_json)?;
Ok(ClientRequest::CompleteRequest(params))
}
_ => Err(serde_json::Error::io(std::io::Error::new(
std::io::ErrorKind::InvalidData,
format!("Unknown method: {}", req.method),
))),
}
}