diff --git a/docs/my-website/release_notes/v1.81.9.md b/docs/my-website/release_notes/v1.81.9.md index 71b1e08dd28..a334074c8f6 100644 --- a/docs/my-website/release_notes/v1.81.9.md +++ b/docs/my-website/release_notes/v1.81.9.md @@ -51,6 +51,7 @@ pip install litellm==1.81.9 ## MCP Servers on the Public Internet +<<<<<<< HEAD >>>>>> main This release makes it safe to expose MCP servers on the public internet by adding public/private visibility and IP-based access control. You can now run internet-facing MCP services while restricting access to trusted networks and keeping internal tools private. [Get started](../../docs/mcp_public_internet) +<<<<<<< HEAD +======= +{/* TODO: Add screenshot - save as mcp_public_internet.png */} +{/* */} + +>>>>>>> main Let's dive in. --- @@ -70,6 +79,7 @@ Let's dive in. #### New Model Support (13 new models) +<<<<<<< HEAD | Provider | Model | Context Window | Input ($/1M tokens) | Output ($/1M tokens) | | -------- | ----- | -------------- | ------------------- | -------------------- | | Anthropic | `claude-opus-4-6` | 1M | $5.00 | $25.00 | @@ -85,12 +95,35 @@ Let's dive in. | Together AI | `together_ai/moonshotai/Kimi-K2.5` | 256K | $0.50 | $2.80 | | ElevenLabs | `elevenlabs/eleven_v3` | - | $0.18/1K chars | - | | ElevenLabs | `elevenlabs/eleven_multilingual_v2` | - | $0.18/1K chars | - | +======= +| Provider | Model | Context Window | Input ($/1M tokens) | Output ($/1M tokens) | Features | +| -------- | ----- | -------------- | ------------------- | -------------------- | -------- | +| Anthropic | `claude-opus-4-6` | 1M | $5.00 | $25.00 | Chat, vision, reasoning, function calling, computer use, PDF, prompt caching | +| AWS Bedrock | `anthropic.claude-opus-4-6-v1` | 1M | $5.00 | $25.00 | Chat, vision, reasoning, function calling, computer use, PDF, prompt caching | +| Azure AI | `azure_ai/claude-opus-4-6` | 200K | $5.00 | $25.00 | Chat, vision, reasoning, function calling, computer use, PDF, prompt caching | +| Vertex AI | `vertex_ai/claude-opus-4-6` | 1M | $5.00 | $25.00 | Chat, vision, reasoning, function calling, computer use, PDF, prompt caching | +| Google Gemini | `gemini/deep-research-pro-preview-12-2025` | 65K | $2.00 | $12.00 | Deep research | +| Vertex AI | `vertex_ai/deep-research-pro-preview-12-2025` | 65K | $2.00 | $12.00 | Deep research | +| Moonshot | `moonshot/kimi-k2.5` | 262K | $0.60 | $3.00 | Chat, vision, function calling | +| OpenRouter | `openrouter/qwen/qwen3-235b-a22b-2507` | 262K | $0.07 | $0.10 | Chat, function calling | +| OpenRouter | `openrouter/qwen/qwen3-235b-a22b-thinking-2507` | 262K | $0.11 | $0.60 | Chat, function calling, reasoning | +| Together AI | `together_ai/zai-org/GLM-4.7` | 200K | $0.45 | $2.00 | Chat, function calling, reasoning | +| Together AI | `together_ai/moonshotai/Kimi-K2.5` | 256K | $0.50 | $2.80 | Chat, vision, function calling, reasoning | +| ElevenLabs | `elevenlabs/eleven_v3` | - | $0.18/1K chars | - | Text-to-speech, 70+ languages | +| ElevenLabs | `elevenlabs/eleven_multilingual_v2` | - | $0.18/1K chars | - | Text-to-speech, 29 languages | +>>>>>>> main #### Features - **[Anthropic](../../docs/providers/anthropic)** - Full Claude Opus 4.6 support with adaptive thinking across all regions (us, eu, apac, au) - [PR #20506](https://github.com/BerriAI/litellm/pull/20506), [PR #20508](https://github.com/BerriAI/litellm/pull/20508), [PR #20514](https://github.com/BerriAI/litellm/pull/20514), [PR #20551](https://github.com/BerriAI/litellm/pull/20551) +<<<<<<< HEAD - Map reasoning content to anthropic thinking block (streaming + non-streaming) - [PR #20254](https://github.com/BerriAI/litellm/pull/20254) +======= + - Add unsupported claude code beta headers filtering - [PR #20578](https://github.com/BerriAI/litellm/pull/20578) + - Map reasoning content to anthropic thinking block (streaming + non-streaming) - [PR #20254](https://github.com/BerriAI/litellm/pull/20254) + - Fix inconsistent response format in `anthropic.messages.acreate()` when using non-Anthropic providers - [PR #20442](https://github.com/BerriAI/litellm/pull/20442) +>>>>>>> main - **[AWS Bedrock](../../docs/providers/bedrock)** - Add 1hr tiered caching costs for long-context models - [PR #20214](https://github.com/BerriAI/litellm/pull/20214) @@ -152,6 +185,7 @@ Let's dive in. --- +<<<<<<< HEAD ## LLM API Endpoints #### Features @@ -160,6 +194,16 @@ Let's dive in. - Filter unsupported Claude Code beta headers for non-Anthropic providers - [PR #20578](https://github.com/BerriAI/litellm/pull/20578) - Fix inconsistent response format in `anthropic.messages.acreate()` when using non-Anthropic providers - [PR #20442](https://github.com/BerriAI/litellm/pull/20442) - Fix 404 on `/api/event_logging/batch` endpoint that caused Claude Code "route not found" errors - [PR #20504](https://github.com/BerriAI/litellm/pull/20504) +======= +## LLM API Endpoints (2 new endpoints) + +#### Features + +| Endpoint | Method | Description | Documentation | +| -------- | ------ | ----------- | ------------- | +| `/chat/completions` | POST | A2A agent invocation via standard completions API | [Docs](../../docs/a2a) | +| `/files` | GET/DELETE | Gemini file retrieval and deletion by `file_id` | [Docs](../../docs/providers/gemini) | +>>>>>>> main - **[A2A Agent Gateway](../../docs/a2a)** - Allow calling A2A agents through LiteLLM `/chat/completions` API - [PR #20358](https://github.com/BerriAI/litellm/pull/20358) @@ -223,6 +267,10 @@ Let's dive in. - Fix `/key/list` `user_id` Empty String Edge Case - [PR #20623](https://github.com/BerriAI/litellm/pull/20623) - Add array type checks for model, agent, and MCP hub data to prevent UI crashes - [PR #20469](https://github.com/BerriAI/litellm/pull/20469) - Fix unique constraint on daily tables + logging when updates fail - [PR #20394](https://github.com/BerriAI/litellm/pull/20394) +<<<<<<< HEAD +======= +- Fix 404 Not Found on `/api/event_logging/batch` endpoint - [PR #20504](https://github.com/BerriAI/litellm/pull/20504) +>>>>>>> main --- @@ -315,6 +363,10 @@ Let's dive in. ## Documentation Updates (15 updates) +<<<<<<< HEAD +======= +- Update v1.81.6 release notes - Logs v2 with Tool Call Tracing - [PR #20225](https://github.com/BerriAI/litellm/pull/20225) +>>>>>>> main - Add FAQ for setting up and verifying LITELLM_LICENSE - [PR #20284](https://github.com/BerriAI/litellm/pull/20284) - Model request tags documentation - [PR #20290](https://github.com/BerriAI/litellm/pull/20290) - Add Prisma migration troubleshooting guide - [PR #20300](https://github.com/BerriAI/litellm/pull/20300) diff --git a/litellm/proxy/proxy_server.py b/litellm/proxy/proxy_server.py index 22d63579986..294294cdda7 100644 --- a/litellm/proxy/proxy_server.py +++ b/litellm/proxy/proxy_server.py @@ -4942,13 +4942,17 @@ class ProxyStartupEvent: """Initialize MCP semantic tool filter if configured""" from litellm.proxy.hooks.mcp_semantic_filter import SemanticToolFilterHook - verbose_proxy_logger.info( - f"Initializing semantic tool filter: llm_router={llm_router is not None}, " - f"litellm_settings keys={list(litellm_settings.keys())}" - ) - mcp_semantic_filter_config = litellm_settings.get("mcp_semantic_tool_filter", None) - verbose_proxy_logger.debug(f"Semantic filter config: {mcp_semantic_filter_config}") + + # Only proceed if the feature is configured and enabled + if not mcp_semantic_filter_config or not mcp_semantic_filter_config.get("enabled", False): + verbose_proxy_logger.debug("Semantic tool filter not configured or not enabled, skipping initialization") + return + + verbose_proxy_logger.debug( + f"Initializing semantic tool filter: llm_router={llm_router is not None}, " + f"config={mcp_semantic_filter_config}" + ) hook = await SemanticToolFilterHook.initialize_from_config( config=mcp_semantic_filter_config, @@ -4956,10 +4960,11 @@ class ProxyStartupEvent: ) if hook: - verbose_proxy_logger.debug("✅ Semantic tool filter hook registered") + verbose_proxy_logger.debug("Semantic tool filter hook registered") litellm.logging_callback_manager.add_litellm_callback(hook) else: - verbose_proxy_logger.warning("❌ Semantic tool filter hook not initialized") + # Only warn if the feature was configured but failed to initialize + verbose_proxy_logger.warning("Semantic tool filter hook was configured but failed to initialize") @classmethod def _initialize_jwt_auth(