ech0-mcp-server / discovery.py
workofarttattoo's picture
Upload folder using huggingface_hub
b0f9887 verified
import os
import importlib.util
import sys
from mcp_server.registry import ToolRegistry
def scan_local_tools(directory: str):
"""
Dynamically scans a directory for Python files and imports them to trigger
tool registration via decorators.
"""
if not os.path.exists(directory):
print(f"Discovery: Directory {directory} does not exist.")
return
# Add directory to sys.path if not present
if directory not in sys.path:
sys.path.append(directory)
for filename in os.listdir(directory):
if filename.endswith(".py") and not filename.startswith("__"):
module_name = filename[:-3]
module_path = os.path.join(directory, filename)
try:
spec = importlib.util.spec_from_file_location(module_name, module_path)
module = importlib.util.module_from_spec(spec)
spec.loader.exec_module(module)
print(f"Discovery: Successfully loaded tools from {filename}")
except Exception as e:
print(f"Discovery: Error loading {filename}: {e}")