Commit b49dea14 authored by Lluis Gifre Renom's avatar Lluis Gifre Renom
Browse files

MCP Server component:

- Fix SSE message endpoint
- Update transport initialization
parent fed87364
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -31,6 +31,8 @@ from .tools.Definitions import TOOLS
from .tools.OpticalAllocation import verify_optical_allocation
from .tools.Registry import get_tool_handler

SSE_MESSAGE_ENDPOINT = "/mcp/messages/"


class TfsMcpServer:
    """MCP Server bridging an MCP client to the TFS NBI REST API."""
@@ -305,7 +307,7 @@ class TfsMcpServer:
        from starlette.routing import Mount, Route
        import uvicorn

        sse_transport = SseServerTransport("/messages/")
        sse_transport = SseServerTransport(SSE_MESSAGE_ENDPOINT)

        async def handle_sse(request):
            async with sse_transport.connect_sse(
+9 −1
Original line number Diff line number Diff line
@@ -88,7 +88,9 @@ def _install_dependency_fakes():

_install_dependency_fakes()

from mcp_server.service.McpServer import TfsMcpServer, verify_optical_allocation  # pylint: disable=wrong-import-position
from mcp_server.service.McpServer import (  # pylint: disable=wrong-import-position
    SSE_MESSAGE_ENDPOINT, TfsMcpServer, verify_optical_allocation,
)


class CaptureTfsMcpServer(TfsMcpServer):
@@ -200,3 +202,9 @@ def test_mocked_mode_loads_default_fixture():
    reply = _tool_result(server, "tfs_list_contexts")

    assert reply["contexts"][0]["name"] == "admin"


def test_sse_transport_advertises_mcp_message_endpoint():
    transport = FakeSseServerTransport(SSE_MESSAGE_ENDPOINT)

    assert transport.path == "/mcp/messages/"