fix: move code from litellm/llms to the mcp_server dir

This commit is contained in:
Yuta Saito 2026-01-05 12:05:16 +09:00
parent c8c73e6fa5
commit 0509fc79da
7 changed files with 38 additions and 23 deletions

View file

@ -45,6 +45,7 @@ def get_cost_for_web_search_request(
return 0.0
elif custom_llm_provider == "xai":
from .xai.cost_calculator import cost_per_web_search_request
return cost_per_web_search_request(usage=usage, model_info=model_info)
else:
return None
@ -110,6 +111,21 @@ def discover_guardrail_translation_mappings() -> (
verbose_logger.error(f"Error processing {module_path}: {e}")
continue
try:
from litellm.proxy._experimental.mcp_server.guardrail_translation import (
guardrail_translation_mappings as mcp_guardrail_translation_mappings,
)
discovered_mappings.update(mcp_guardrail_translation_mappings)
verbose_logger.debug(
"Loaded MCP guardrail translation mappings: %s",
list(mcp_guardrail_translation_mappings.keys()),
)
except ImportError:
verbose_logger.debug(
"MCP guardrail translation mappings not available; skipping"
)
verbose_logger.debug(
f"Discovered {len(discovered_mappings)} guardrail translation mappings: {list(discovered_mappings.keys())}"
)

View file

@ -1,7 +0,0 @@
"""Guardrail-only MCP helpers within litellm.llms.
This package lives under ``litellm.llms`` purely so unified guardrail discovery
can find MCP-specific translations. It does not expose a traditional provider.
"""
__all__ = ["guardrail_translation"]

View file

@ -1,14 +0,0 @@
"""Guardrail translation handler wiring for MCP tool calls."""
from litellm.llms.mcp.guardrail_translation.handler import (
MCPGuardrailTranslationHandler,
)
from litellm.types.utils import CallTypes
# These mappings live under litellm.llms so the unified guardrail discovery can
# treat MCP tooling like any other provider endpoint.
guardrail_translation_mappings = {
CallTypes.call_mcp_tool: MCPGuardrailTranslationHandler,
}
__all__ = ["guardrail_translation_mappings", "MCPGuardrailTranslationHandler"]

View file

@ -0,0 +1,16 @@
"""Guardrail translation mapping for MCP tool calls."""
from litellm.proxy._experimental.mcp_server.guardrail_translation.handler import (
MCPGuardrailTranslationHandler,
)
from litellm.types.utils import CallTypes
# This mapping lives alongside the MCP server implementation because MCP
# integrations are managed by the proxy subsystem, not litellm.llms providers.
# Unified guardrails import this module explicitly to register the handler.
guardrail_translation_mappings = {
CallTypes.call_mcp_tool: MCPGuardrailTranslationHandler,
}
__all__ = ["guardrail_translation_mappings", "MCPGuardrailTranslationHandler"]

View file

@ -3,7 +3,9 @@
import pytest
from litellm.integrations.custom_guardrail import CustomGuardrail
from litellm.llms.mcp.guardrail_translation.handler import MCPGuardrailTranslationHandler
from litellm.proxy._experimental.mcp_server.guardrail_translation.handler import (
MCPGuardrailTranslationHandler,
)
class MockGuardrail(CustomGuardrail):

View file

@ -4,7 +4,9 @@ import pytest
from litellm.caching import DualCache
from litellm.integrations.custom_guardrail import CustomGuardrail
from litellm.llms.mcp.guardrail_translation.handler import MCPGuardrailTranslationHandler
from litellm.proxy._experimental.mcp_server.guardrail_translation.handler import (
MCPGuardrailTranslationHandler,
)
from litellm.proxy.guardrails.guardrail_hooks.unified_guardrail import unified_guardrail as unified_module
from litellm.proxy.guardrails.guardrail_hooks.unified_guardrail.unified_guardrail import (
UnifiedLLMGuardrails,