Configuration Models
The configuration data models define the complete structure of RMCP configuration with type hints, defaults, and validation.
Main Configuration
- class rmcp.config.models.RMCPConfig(http: ~rmcp.config.models.HTTPConfig = <factory>, r: ~rmcp.config.models.RConfig = <factory>, security: ~rmcp.config.models.SecurityConfig = <factory>, performance: ~rmcp.config.models.PerformanceConfig = <factory>, logging: ~rmcp.config.models.LoggingConfig = <factory>, config_file: ~pathlib.Path | None = None, debug: bool = False)[source]
Bases:
objectMain RMCP configuration.
Root configuration object containing all subsystem configurations. Provides validation and hierarchical configuration loading.
- Environment Variables:
RMCP_DEBUG- Enable debug mode (true/false)
- Configuration Loading:
Command-line arguments (highest priority)
Environment variables (
RMCP_*prefix)User config file (
~/.rmcp/config.json)System config file (
/etc/rmcp/config.json)Built-in defaults (lowest priority)
Examples
Complete configuration:
config = RMCPConfig( http=HTTPConfig(host="0.0.0.0", port=8000), r=RConfig(timeout=180, max_sessions=20), security=SecurityConfig(vfs_read_only=True), debug=True )
Minimal configuration (uses defaults):
config = RMCPConfig(debug=True)
- __init__(http: ~rmcp.config.models.HTTPConfig = <factory>, r: ~rmcp.config.models.RConfig = <factory>, security: ~rmcp.config.models.SecurityConfig = <factory>, performance: ~rmcp.config.models.PerformanceConfig = <factory>, logging: ~rmcp.config.models.LoggingConfig = <factory>, config_file: ~pathlib.Path | None = None, debug: bool = False) None
- http: HTTPConfig
HTTP transport configuration.
- security: SecurityConfig
Security and VFS configuration.
- performance: PerformanceConfig
Performance and resource configuration.
- logging: LoggingConfig
Logging configuration.
HTTP Configuration
- class rmcp.config.models.HTTPConfig(host: str = 'localhost', port: int = 8000, ssl_keyfile: str | None = None, ssl_certfile: str | None = None, ssl_keyfile_password: str | None = None, cors_origins: ~typing.List[str] = <factory>)[source]
Bases:
objectHTTP transport configuration.
Controls the HTTP server behavior for RMCP when running in HTTP mode.
- Environment Variables:
RMCP_HTTP_HOST- Server binding addressRMCP_HTTP_PORT- Server port numberRMCP_HTTP_CORS_ORIGINS- Allowed CORS origins (comma-separated)RMCP_HTTP_SSL_KEYFILE- SSL private key file pathRMCP_HTTP_SSL_CERTFILE- SSL certificate file path
- Security Considerations:
Default binding to
localhostfor securitySet
host="0.0.0.0"for remote access (implement authentication)Configure
cors_originsappropriately for web clientsSSL files must both be provided if either is specified
Examples
Development configuration:
http = HTTPConfig( host="localhost", port=8000 )
Production with SSL:
http = HTTPConfig( host="0.0.0.0", port=443, ssl_keyfile="/etc/ssl/private/rmcp.key", ssl_certfile="/etc/ssl/certs/rmcp.crt", cors_origins=["https://myapp.example.com"] )
The HTTPConfig class controls HTTP server behavior including:
Server binding address and port
SSL/TLS configuration
CORS origins for cross-origin requests
Security considerations for production deployment
R Configuration
- class rmcp.config.models.RConfig(timeout: int = 120, session_timeout: int = 3600, max_sessions: int = 10, binary_path: str | None = None, version_check_timeout: int = 30)[source]
Bases:
objectR process configuration.
Controls R process execution, session management, and resource limits.
- Environment Variables:
RMCP_R_TIMEOUT- R script execution timeout (seconds)RMCP_R_SESSION_TIMEOUT- R session lifetime (seconds)RMCP_R_MAX_SESSIONS- Maximum concurrent R sessionsRMCP_R_BINARY_PATH- Custom R binary pathRMCP_R_VERSION_CHECK_TIMEOUT- R version check timeout
- Resource Considerations:
Limit
max_sessionsbased on available memory (R sessions consume ~100-200MB each)Set reasonable
timeoutto prevent runaway processesUse
session_timeoutto free resources from idle sessions
Examples
Development configuration:
r = RConfig( timeout=300, max_sessions=5 )
Production configuration:
r = RConfig( timeout=120, session_timeout=1800, max_sessions=50, binary_path="/usr/local/bin/R" )
The RConfig class manages R process execution:
Script execution timeouts
Session lifecycle management
Resource limits and concurrency
Custom R binary path configuration
Security Configuration
- class rmcp.config.models.SecurityConfig(vfs_max_file_size: int = 52428800, vfs_allowed_paths: ~typing.List[str] = <factory>, vfs_read_only: bool = True, vfs_allowed_mime_types: ~typing.List[str] = <factory>)[source]
Bases:
objectSecurity and filesystem configuration.
Controls Virtual File System (VFS) security boundaries and access controls.
- Environment Variables:
RMCP_VFS_MAX_FILE_SIZE- Maximum file size in bytesRMCP_VFS_ALLOWED_PATHS- Additional allowed paths (comma-separated)RMCP_VFS_READ_ONLY- Enable read-only mode (true/false)
- Security Considerations:
Keep
vfs_read_only=Truein production to prevent file modificationRestrict
vfs_allowed_pathsto necessary directories onlySet appropriate
vfs_max_file_sizelimits to prevent resource exhaustionOnly trusted file types are allowed by default
Examples
Production security (read-only):
security = SecurityConfig( vfs_max_file_size=104857600, # 100MB vfs_read_only=True, vfs_allowed_paths=["/data/readonly"] )
Development (write access):
security = SecurityConfig( vfs_read_only=False, vfs_allowed_paths=["/tmp", "/home/user/datasets"] )
- vfs_allowed_paths: List[str]
Additional filesystem paths accessible via VFS. Empty = temp directory only.
The SecurityConfig class controls Virtual File System (VFS) security:
File size limits and access restrictions
Read-only mode for production safety
Allowed filesystem paths
MIME type restrictions
Performance Configuration
- class rmcp.config.models.PerformanceConfig(threadpool_max_workers: int = 2, callback_timeout: int = 300, process_cleanup_timeout: int = 5)[source]
Bases:
objectPerformance and resource configuration.
Controls concurrency, timeouts, and resource management.
- Environment Variables:
RMCP_THREADPOOL_MAX_WORKERS- Max workers for stdio transportRMCP_CALLBACK_TIMEOUT- Bidirectional callback timeout (seconds)RMCP_PROCESS_CLEANUP_TIMEOUT- Process cleanup timeout (seconds)
- Performance Tuning:
Adjust
threadpool_max_workersbased on CPU coresIncrease
callback_timeoutfor slow operationsKeep
process_cleanup_timeoutlow for faster resource cleanup
Examples
High-performance server:
performance = PerformanceConfig( threadpool_max_workers=8, callback_timeout=600 )
Resource-constrained environment:
performance = PerformanceConfig( threadpool_max_workers=1, callback_timeout=120 )
The PerformanceConfig class manages resource usage:
Thread pool sizing for concurrency
Timeout configuration for operations
Process cleanup and resource management
Logging Configuration
- class rmcp.config.models.LoggingConfig(level: str = 'INFO', format: str = '%(asctime)s - %(name)s - %(levelname)s - %(message)s', stderr_output: bool = True)[source]
Bases:
objectLogging configuration.
Controls log output format and verbosity.
- Environment Variables:
RMCP_LOG_LEVEL- Logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL)RMCP_LOG_FORMAT- Log message format string
- Log Levels:
DEBUG- Detailed debugging informationINFO- General operational messagesWARNING- Warning messages about potential issuesERROR- Error messages for failed operationsCRITICAL- Critical errors that may cause shutdown
Examples
Development logging:
logging = LoggingConfig( level="DEBUG", format="%(asctime)s [%(levelname)s] %(name)s: %(message)s" )
Production logging:
logging = LoggingConfig( level="INFO", format="%(asctime)s - %(name)s - %(levelname)s - %(message)s" )
The LoggingConfig class controls log output:
Log level configuration (DEBUG, INFO, WARNING, ERROR, CRITICAL)
Log message formatting
Output destination configuration
Configuration Errors
- exception rmcp.config.loader.ConfigError[source]
Bases:
ExceptionConfiguration-related errors.
Raised when configuration loading, validation, or parsing fails. Provides detailed error messages to help users fix configuration issues.
This exception is raised when configuration loading, validation, or parsing fails. It provides detailed error messages to help users fix configuration issues.