pulseengine_mcp_security/
validation.rs

1//! Request validation utilities
2
3use pulseengine_mcp_protocol::{Error, Request};
4
5/// Request validator
6pub struct RequestValidator;
7
8impl RequestValidator {
9    /// Validate an MCP request
10    ///
11    /// # Errors
12    ///
13    /// Returns an error if the request has invalid JSON-RPC version or empty method
14    pub fn validate_request(request: &Request) -> Result<(), Error> {
15        // Basic validation
16        if request.jsonrpc != "2.0" {
17            return Err(Error::invalid_request(
18                "Invalid JSON-RPC version, must be 2.0",
19            ));
20        }
21
22        if request.method.is_empty() {
23            return Err(Error::invalid_request("Method cannot be empty"));
24        }
25
26        Ok(())
27    }
28}
29
30#[cfg(test)]
31#[path = "validation_tests.rs"]
32mod validation_tests;