Skip to content

Commit 952b434

Browse files
committed
misc fixes
1 parent 41ba669 commit 952b434

File tree

3 files changed

+8
-8
lines changed

3 files changed

+8
-8
lines changed

examples/servers/simple-prompt/mcp_simple_prompt/server.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22
import click
33
import mcp.types as types
44
from mcp.server.lowlevel import Server
5-
from starlette.responses import Response
6-
from starlette.routing import Route
75

86

97
def create_messages(
@@ -92,7 +90,8 @@ async def get_prompt(
9290
if transport == "sse":
9391
from mcp.server.sse import SseServerTransport
9492
from starlette.applications import Starlette
95-
from starlette.routing import Mount
93+
from starlette.responses import Response
94+
from starlette.routing import Mount, Route
9695

9796
sse = SseServerTransport("/messages/")
9897

src/mcp/server/sse.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ async def handle_sse(request):
3131
```
3232
3333
Note: The handle_sse function must return a Response to avoid a "TypeError: 'NoneType'
34-
object is not callable" error when client disconnects. The example above shows the
35-
correct approach by returning an empty Response() after the SSE connection ends.
34+
object is not callable" error when client disconnects. The example above returns
35+
an empty Response() after the SSE connection ends to fix this.
3636
3737
See SseServerTransport class documentation for more details.
3838
"""

tests/shared/test_sse.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import uvicorn
1010
from pydantic import AnyUrl
1111
from starlette.applications import Starlette
12+
from starlette.requests import Request
1213
from starlette.responses import Response
1314
from starlette.routing import Mount, Route
1415

@@ -83,7 +84,7 @@ def make_server_app() -> Starlette:
8384
sse = SseServerTransport("/messages/")
8485
server = ServerTest()
8586

86-
async def handle_sse(request) -> None:
87+
async def handle_sse(request: Request) -> Response:
8788
async with sse.connect_sse(
8889
request.scope, request.receive, request._send
8990
) as streams:
@@ -189,7 +190,7 @@ async def connection_test() -> None:
189190

190191
@pytest.mark.anyio
191192
async def test_sse_client_basic_connection(server: None, server_url: str) -> None:
192-
async with sse_client(server_url + "/sse/") as streams:
193+
async with sse_client(server_url + "/sse") as streams:
193194
async with ClientSession(*streams) as session:
194195
# Test initialization
195196
result = await session.initialize()
@@ -205,7 +206,7 @@ async def test_sse_client_basic_connection(server: None, server_url: str) -> Non
205206
async def initialized_sse_client_session(
206207
server, server_url: str
207208
) -> AsyncGenerator[ClientSession, None]:
208-
async with sse_client(server_url + "/sse/", sse_read_timeout=0.5) as streams:
209+
async with sse_client(server_url + "/sse", sse_read_timeout=0.5) as streams:
209210
async with ClientSession(*streams) as session:
210211
await session.initialize()
211212
yield session

0 commit comments

Comments
 (0)