Skip to main content
Glama

Apple Deep Docs MCP

by Ahrentlov
config.py3.2 kB
""" Configuration module for Xcode Documentation MCP Server. """ import logging import os from pathlib import Path from typing import List, Dict # Get logger instance (uses default or parent configuration) logger = logging.getLogger(__name__) class Config: """Configuration and state management for the documentation server.""" # Global documentation cache DOCS_CACHE: Dict = {} DOC_PATHS: List[Path] = [] # Server configuration SERVER_NAME = "xcode-doc-server" # Documentation search patterns XCODE_PATTERNS = ["Xcode*.app", "Xcode.app"] APPLICATIONS_DIR = Path("/Applications") DOC_SUBPATH = "Contents/PlugIns/IDEIntelligenceChat.framework/Versions/A/Resources/AdditionalDocumentation" # Search configuration MAX_MATCHES_PER_FILE = 5 CONTEXT_CHARS_BEFORE = 100 CONTEXT_CHARS_AFTER = 100 TOPIC_PREVIEW_CHARS = 1000 MAX_TOPICS = 5 @classmethod def find_xcode_documentation_paths(cls) -> List[Path]: """Find all Xcode installations with additional documentation.""" doc_paths = [] for pattern in cls.XCODE_PATTERNS: for xcode_app in cls.APPLICATIONS_DIR.glob(pattern): # Build the documentation path doc_path = xcode_app / cls.DOC_SUBPATH if doc_path.exists() and doc_path.is_dir(): # Check if it actually contains markdown files md_files = list(doc_path.glob("*.md")) if md_files: doc_paths.append(doc_path) logger.info(f"Found documentation in: {xcode_app.name}") return doc_paths @classmethod def get_documentation_paths(cls) -> List[Path]: """Get documentation paths, checking environment variable first.""" # Allow override via environment variable for specific path custom_path = os.environ.get("XCODE_DOC_PATH") if custom_path: # Use custom path if provided custom_path = Path(custom_path) if not custom_path.exists(): raise ValueError(f"Custom documentation path does not exist: {custom_path}") return [custom_path] else: # Auto-discover Xcode installations doc_paths = cls.find_xcode_documentation_paths() if not doc_paths: raise ValueError( "No Xcode installations with additional documentation found. " "Searched in /Applications for Xcode*.app. " "You can set XCODE_DOC_PATH environment variable to specify a custom path." ) return doc_paths @classmethod def get_xcode_name_from_path(cls, path: Path) -> str: """Extract Xcode app name from documentation path.""" # Navigate up from documentation path to find the .app directory for parent in path.parents: if parent.suffix == '.app': return parent.name # Fallback if not found return path.parts[2] if len(path.parts) > 2 else "Xcode"

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/Ahrentlov/appledeepdoc-mcp'

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