Spaces:
Running
Running
File size: 3,860 Bytes
11df203 316c2dc 11df203 7023fcd ab96cfe 7023fcd ab96cfe 7023fcd ab96cfe 7023fcd 11df203 ab96cfe 11df203 7023fcd ab96cfe 11df203 ab96cfe 7023fcd ab96cfe 7023fcd 11df203 ab96cfe 11df203 7023fcd 11df203 7023fcd 11df203 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 |
"""
Main entry point for the hf-eda-mcp server.
This module allows the package to be run as a module using:
python -m hf_eda_mcp
"""
import argparse
import sys
from hf_eda_mcp.config import ServerConfig
from hf_eda_mcp.server import launch_server
def main():
"""Main entry point with command line argument parsing."""
parser = argparse.ArgumentParser(
description="HuggingFace EDA MCP Server - Provides EDA tools for HuggingFace datasets via MCP",
prog="hf-eda-mcp",
formatter_class=argparse.RawDescriptionHelpFormatter,
epilog="""
Examples:
python -m hf_eda_mcp # Start server with default settings
python -m hf_eda_mcp --port 8080 # Start server on port 8080
python -m hf_eda_mcp --no-mcp # Start without MCP server functionality
python -m hf_eda_mcp --share # Create public shareable link
python -m hf_eda_mcp --host 0.0.0.0 # Listen on all interfaces
Environment Variables:
HF_TOKEN HuggingFace access token for private datasets
HF_EDA_PORT Server port (default: 7860)
HF_EDA_HOST Server host (default: 127.0.0.1)
HF_EDA_MCP_ENABLED Enable MCP server (default: true)
HF_EDA_SHARE Enable public sharing (default: false)
HF_EDA_LOG_LEVEL Logging level (default: INFO)
HF_EDA_CACHE_DIR Cache directory for datasets
HF_EDA_MAX_SAMPLE_SIZE Maximum sample size (default: 50000)
HF_EDA_MAX_CONCURRENT Max concurrent requests (default: 10)
HF_EDA_REQUEST_TIMEOUT Request timeout in seconds (default: 300)
"""
)
parser.add_argument(
"--port",
type=int,
help="Port to run the server on (overrides HF_EDA_PORT)"
)
parser.add_argument(
"--host",
type=str,
help="Host to bind the server to (overrides HF_EDA_HOST)"
)
parser.add_argument(
"--no-mcp",
action="store_true",
help="Disable MCP server functionality (web interface only)"
)
parser.add_argument(
"--share",
action="store_true",
help="Create a public shareable link via Gradio"
)
parser.add_argument(
"--verbose", "-v",
action="store_true",
help="Enable verbose logging (DEBUG level)"
)
parser.add_argument(
"--log-level",
choices=["DEBUG", "INFO", "WARNING", "ERROR"],
help="Set logging level (overrides HF_EDA_LOG_LEVEL)"
)
parser.add_argument(
"--cache-dir",
type=str,
help="Directory for caching datasets (overrides HF_EDA_CACHE_DIR)"
)
parser.add_argument(
"--max-sample-size",
type=int,
help="Maximum sample size for analysis (overrides HF_EDA_MAX_SAMPLE_SIZE)"
)
args = parser.parse_args()
# Load base configuration from environment
config = ServerConfig.from_env()
# Override with command line arguments
if args.port is not None:
config.port = args.port
if args.host is not None:
config.host = args.host
if args.no_mcp:
config.mcp_server = False
if args.share:
config.share = True
if args.verbose:
config.log_level = "DEBUG"
if args.log_level:
config.log_level = args.log_level
if args.cache_dir:
config.cache_dir = args.cache_dir
if args.max_sample_size is not None:
config.max_sample_size = args.max_sample_size
try:
# Launch server with configuration
launch_server(config)
except KeyboardInterrupt:
print("\n👋 Server stopped by user")
sys.exit(0)
except Exception as e:
print(f"❌ Error starting server: {e}")
sys.exit(1)
if __name__ == "__main__":
main() |