Skip to main content
Glama
trakru

AI Book Agent MCP Server

by trakru
config.py2.67 kB
"""Configuration management for AI Book Agent.""" import yaml import os from pathlib import Path from typing import Dict, Any import logging class Config: """Configuration manager for the AI Book Agent.""" def __init__(self, config_path: str = "config.yaml"): self.config_path = Path(config_path) self._config = self._load_config() self._setup_logging() def _load_config(self) -> Dict[str, Any]: """Load configuration from YAML file.""" if not self.config_path.exists(): raise FileNotFoundError(f"Configuration file not found: {self.config_path}") with open(self.config_path, 'r') as f: config = yaml.safe_load(f) # Ensure directories exist self._create_directories(config) return config def _create_directories(self, config: Dict[str, Any]) -> None: """Create necessary directories.""" directories = [ config['books']['data_dir'], config['books']['processed_dir'], config['books']['index_dir'], config['embeddings']['cache_dir'], ] for directory in directories: Path(directory).mkdir(parents=True, exist_ok=True) def _setup_logging(self) -> None: """Setup logging configuration.""" logging.basicConfig( level=getattr(logging, self._config['logging']['level']), format=self._config['logging']['format'] ) @property def embeddings(self) -> Dict[str, Any]: """Embedding configuration.""" return self._config['embeddings'] @property def generation(self) -> Dict[str, Any]: """Generation model configuration.""" return self._config['generation'] @property def books(self) -> Dict[str, Any]: """Books directory configuration.""" return self._config['books'] @property def vector_store(self) -> Dict[str, Any]: """Vector store configuration.""" return self._config['vector_store'] @property def search(self) -> Dict[str, Any]: """Search configuration.""" return self._config['search'] def get(self, key: str, default: Any = None) -> Any: """Get configuration value by key (supports dot notation).""" keys = key.split('.') value = self._config for k in keys: if isinstance(value, dict) and k in value: value = value[k] else: return default return value # Global configuration instance config = Config()

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/trakru/mcp-library-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server