Skip to content
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 11 additions & 3 deletions server.py
Original file line number Diff line number Diff line change
Expand Up @@ -540,8 +540,12 @@ def custom_provider_factory(api_key=None):
if registered_providers:
logger.info(f"Registered providers: {', '.join(registered_providers)}")

# Require at least one valid provider
if not valid_providers:
# Check if any enabled tools require LLM providers
NON_LLM_TOOLS = {"clink", "version", "listmodels", "challenge", "apilookup"}
Comment thread
vedant-hawcx marked this conversation as resolved.
Outdated
llm_tools_active = set(TOOLS.keys()) - NON_LLM_TOOLS
Comment thread
vedant-hawcx marked this conversation as resolved.
Outdated

# Require at least one valid provider only if LLM tools are enabled
if not valid_providers and llm_tools_active:
raise ValueError(
"At least one API configuration is required. Please set either:\n"
"- GEMINI_API_KEY for Gemini models\n"
Expand All @@ -551,6 +555,8 @@ def custom_provider_factory(api_key=None):
"- OPENROUTER_API_KEY for OpenRouter (multiple models)\n"
"- CUSTOM_API_URL for local models (Ollama, vLLM, etc.)"
)
elif not valid_providers:
logger.warning("No API providers configured. Only non-LLM tools (clink, version, etc.) will be available.")

logger.info(f"Available providers: {', '.join(valid_providers)}")

Expand Down Expand Up @@ -614,7 +620,7 @@ def cleanup_providers():
# Check if auto mode has any models available after restrictions
from config import IS_AUTO_MODE

if IS_AUTO_MODE:
if IS_AUTO_MODE and llm_tools_active:
available_models = ModelProviderRegistry.get_available_models(respect_restrictions=True)
if not available_models:
logger.error(
Expand All @@ -625,6 +631,8 @@ def cleanup_providers():
"No models available for auto mode due to restrictions. "
"Please adjust your allowed model settings or disable auto mode."
)
elif IS_AUTO_MODE and not llm_tools_active:
logger.info("Auto mode skipped - no LLM tools are active.")


@server.list_tools()
Expand Down