fix(mcp): build draft sessions with current manager API

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
mateo 2026-08-13 23:01:30 +00:00
parent ce6bdb2532
commit 23d6093945
2 changed files with 35 additions and 2 deletions

View file

@ -370,7 +370,6 @@ if MCP_AVAILABLE:
return await global_mcp_server_manager.build_mcp_server_from_table(
draft,
credentials_are_encrypted=True,
persist_discovered_endpoints=False,
)
def _redact_mcp_credentials(

View file

@ -7,7 +7,7 @@ from datetime import datetime
from types import SimpleNamespace
from typing import List, Optional
from unittest.mock import AsyncMock, MagicMock, patch
from unittest.mock import AsyncMock, MagicMock, create_autospec, patch
import pytest
from fastapi import FastAPI, HTTPException
@ -1659,6 +1659,40 @@ class TestTemporaryMCPSessionEndpoints:
assert updated.credentials["upstream_resource"] == "api://typed"
@pytest.mark.asyncio
async def test_draft_lookup_uses_current_manager_contract(self):
from litellm.proxy.management_endpoints.mcp_management_endpoints import (
_get_draft_mcp_server_as_mcp_server,
global_mcp_server_manager,
)
draft = generate_mock_mcp_server_db_record(server_id="draft-server")
server = generate_mock_mcp_server_config_record(server_id="draft-server")
manager = create_autospec(type(global_mcp_server_manager), instance=True)
manager.build_mcp_server_from_table.return_value = server
with (
patch(
"litellm.proxy.management_endpoints.mcp_management_endpoints.get_prisma_client_or_throw",
return_value=MagicMock(),
),
patch(
"litellm.proxy.management_endpoints.mcp_management_endpoints.get_draft_mcp_server",
AsyncMock(return_value=draft),
),
patch(
"litellm.proxy.management_endpoints.mcp_management_endpoints.global_mcp_server_manager",
manager,
),
):
result = await _get_draft_mcp_server_as_mcp_server("draft-server")
assert result is server
manager.build_mcp_server_from_table.assert_awaited_once_with(
draft,
credentials_are_encrypted=True,
)
@pytest.mark.asyncio
async def test_get_cached_temporary_mcp_server_or_404(self):
from litellm.proxy.management_endpoints.mcp_management_endpoints import (