pulseengine_mcp_security/
lib.rs

1//! Security middleware and validation for MCP servers
2//!
3//! This crate provides comprehensive security features for MCP servers including:
4//! - Input validation and sanitization
5//! - Rate limiting and request throttling
6//! - CORS policy management
7//! - Request size limits
8//! - SQL injection and XSS protection
9//!
10//! # Quick Start
11//!
12//! ```rust,ignore
13//! use pulseengine_mcp_security::{SecurityMiddleware, SecurityConfig};
14//!
15//! #[tokio::main]
16//! async fn main() -> Result<(), Box<dyn std::error::Error>> {
17//!     // Create security configuration
18//!     let config = SecurityConfig {
19//!         validate_requests: true,
20//!         rate_limiting: true,
21//!         max_requests_per_minute: 60,
22//!         cors_enabled: true,
23//!         cors_origins: vec!["https://example.com".to_string()],
24//!     };
25//!
26//!     // Create security middleware
27//!     let security = SecurityMiddleware::new(config);
28//!
29//!     // The middleware automatically validates and rate-limits
30//!     // requests when integrated with your MCP server
31//!
32//!     Ok(())
33//! }
34//! ```
35//!
36//! # Features
37//!
38//! - **Input validation**: Comprehensive request validation with schemas
39//! - **Rate limiting**: Per-IP and per-user rate limiting
40//! - **CORS management**: Configurable cross-origin policies
41//! - **Size limits**: Prevent `DoS` through large requests
42//! - **Injection protection**: SQL injection and script injection prevention
43//! - **Production hardened**: Battle-tested security measures
44
45pub mod config;
46pub mod middleware;
47pub mod validation;
48
49pub use config::SecurityConfig;
50pub use middleware::SecurityMiddleware;
51pub use validation::RequestValidator;
52
53/// Default security configuration
54pub fn default_config() -> SecurityConfig {
55    SecurityConfig::default()
56}
57
58#[cfg(test)]
59mod lib_tests;