We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/rhuanca/pdf_mcpserver'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
config.py•1.54 KiB
"""Configuration management for the PDF MCP Server."""
import os
from pathlib import Path
from dotenv import load_dotenv
# Load environment variables from .env file
load_dotenv()
class Config:
"""Centralized configuration management using environment variables."""
# PDF Documents Directory
PDF_DOCUMENTS_DIR: Path = Path(os.getenv("PDF_DOCUMENTS_DIR", "./documents"))
# ChromaDB Configuration
CHROMA_DB_DIR: Path = Path(os.getenv("CHROMA_DB_DIR", "./chroma_db"))
# Logging Configuration
LOG_LEVEL: str = os.getenv("LOG_LEVEL", "INFO")
@classmethod
def validate(cls) -> None:
"""
Validate required configuration values.
Raises:
ValueError: If required configuration is missing or invalid.
"""
if not cls.PDF_DOCUMENTS_DIR.exists():
raise ValueError(
f"PDF_DOCUMENTS_DIR does not exist: {cls.PDF_DOCUMENTS_DIR}. "
f"Please create the directory or update the path in your .env file."
)
if not cls.PDF_DOCUMENTS_DIR.is_dir():
raise ValueError(
f"PDF_DOCUMENTS_DIR is not a directory: {cls.PDF_DOCUMENTS_DIR}"
)
@classmethod
def get_pdf_files(cls) -> list[Path]:
"""
Get list of PDF files in the configured documents directory.
Returns:
List of Path objects pointing to PDF files.
"""
return list(cls.PDF_DOCUMENTS_DIR.glob("*.pdf"))
# Singleton instance
config = Config()