{ "$schema": "http://json-schema.org/draft-07/schema#", "title": "HoloViz MCP Configuration", "description": "Configuration schema for HoloViz MCP server", "type": "object", "properties": { "server": { "type": "object", "description": "Server configuration", "properties": { "name": { "type": "string", "description": "Server name", "default": "holoviz-mcp" }, "version": { "type": "string", "description": "Server version", "default": "1.0.0" }, "description": { "type": "string", "description": "Server description", "default": "Model Context Protocol server for HoloViz ecosystem" }, "log_level": { "type": "string", "description": "Logging level", "enum": ["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"], "default": "INFO" }, "transport": { "type": "string", "description": "Transport protocol for MCP communication", "enum": ["stdio", "http"], "default": "stdio" }, "host": { "type": "string", "description": "Host address to bind to when using HTTP transport (use 0.0.0.0 for Docker)", "default": "127.0.0.1" }, "port": { "type": "integer", "description": "Port to bind to when using HTTP transport", "default": 8000 }, "anonymized_telemetry": { "type": "boolean", "description": "Enable anonymized telemetry", "default": false }, "jupyter_server_proxy_url": { "type": "string", "description": "Jupyter server proxy URL for Panel app integration", "default": "" }, "vector_db_path": { "type": "string", "description": "Path to the Chroma vector database", "format": "path" } }, "additionalProperties": false }, "docs": { "type": "object", "description": "Documentation configuration", "properties": { "repositories": { "type": "object", "description": "Repository configurations", "patternProperties": { "^[a-zA-Z0-9_-]+$": { "type": "object", "description": "Git repository configuration", "properties": { "url": { "type": "string", "description": "Git repository URL", "pattern": "^(https://|http://|git://|ssh://)" }, "branch": { "type": "string", "description": "Git branch to use" }, "tag": { "type": "string", "description": "Git tag to use" }, "commit": { "type": "string", "description": "Git commit hash to use" }, "folders": { "oneOf": [ { "type": "array", "description": "List of folders to index within the repository", "items": { "type": "string" }, "default": ["doc"] }, { "type": "object", "description": "Mapping of folder names to folder configurations", "patternProperties": { "^[a-zA-Z0-9_/-]+$": { "type": "object", "description": "Folder configuration", "properties": { "url_path": { "type": "string", "description": "URL path mapping for this folder", "default": "" } }, "additionalProperties": false } }, "additionalProperties": false } ] }, "base_url": { "type": "string", "description": "Base URL for documentation links", "format": "uri" }, "url_transform": { "type": "string", "description": "How to transform file path into URL", "enum": ["holoviz", "plotly", "datashader"], "default": "holoviz" }, "reference_patterns": { "type": "array", "description": "Glob patterns for reference documentation files", "items": { "type": "string" }, "default": ["examples/reference/**/*.md", "examples/reference/**/*.ipynb"] } }, "required": ["url", "base_url"], "additionalProperties": false } }, "additionalProperties": false }, "index_patterns": { "type": "array", "description": "File patterns to include when indexing", "items": { "type": "string" }, "default": ["**/*.md", "**/*.rst", "**/*.txt"] }, "exclude_patterns": { "type": "array", "description": "File patterns to exclude when indexing", "items": { "type": "string" }, "default": ["**/node_modules/**", "**/.git/**", "**/build/**"] }, "max_file_size": { "type": "integer", "description": "Maximum file size in bytes to index", "minimum": 0, "default": 1048576 }, "update_interval": { "type": "integer", "description": "Update interval in seconds", "minimum": 0, "default": 86400 } }, "additionalProperties": false }, "resources": { "type": "object", "description": "Resources configuration", "properties": { "search_paths": { "type": "array", "description": "Additional resource search paths", "items": { "type": "string" } } }, "additionalProperties": false }, "prompts": { "type": "object", "description": "Prompts configuration", "properties": { "search_paths": { "type": "array", "description": "Additional prompt search paths", "items": { "type": "string" } } }, "additionalProperties": false }, "display": { "type": "object", "description": "Display server configuration for AI Visualizer", "properties": { "enabled": { "type": "boolean", "description": "Enable the display server", "default": true }, "port": { "type": "integer", "description": "Port for the display Panel server", "minimum": 1024, "maximum": 65535, "default": 5005 }, "host": { "type": "string", "description": "Host address for the display Panel server", "default": "127.0.0.1" }, "max_restarts": { "type": "integer", "description": "Maximum number of restart attempts for Panel server", "minimum": 0, "default": 3 }, "health_check_interval": { "type": "integer", "description": "Health check interval in seconds", "minimum": 10, "default": 60 }, "auto_install_packages": { "type": "boolean", "description": "Auto-install missing packages", "default": true }, "preinstalled_packages": { "type": "array", "description": "Packages to install at startup", "items": { "type": "string" }, "default": ["altair", "bokeh", "holoviews", "hvplot", "matplotlib", "numpy", "pandas", "panel", "plotly"] }, "db_path": { "type": "string", "description": "Path to SQLite database for display requests", "format": "path" } }, "additionalProperties": false }, "user_dir": { "type": "string", "description": "User configuration directory", "format": "path" }, "default_dir": { "type": "string", "description": "Default configuration directory", "format": "path" }, "repos_dir": { "type": "string", "description": "Repository download directory", "format": "path" } }, "additionalProperties": false }