Skip to content

Commit fd97501

Browse files
committed
format / lint
1 parent fad836c commit fd97501

File tree

4 files changed

+23
-15
lines changed

4 files changed

+23
-15
lines changed

src/mcp/server/fastmcp/server.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
from mcp.server.lowlevel.server import LifespanResultT
3434
from mcp.server.lowlevel.server import Server as MCPServer
3535
from mcp.server.lowlevel.server import lifespan as default_lifespan
36+
from mcp.server.message_queue import MessageQueue
3637
from mcp.server.session import ServerSession, ServerSessionT
3738
from mcp.server.sse import SseServerTransport
3839
from mcp.server.stdio import stdio_server
@@ -49,7 +50,6 @@
4950
from mcp.types import Resource as MCPResource
5051
from mcp.types import ResourceTemplate as MCPResourceTemplate
5152
from mcp.types import Tool as MCPTool
52-
from mcp.server.message_queue import MessageQueue
5353

5454
logger = get_logger(__name__)
5555

@@ -78,7 +78,9 @@ class Settings(BaseSettings, Generic[LifespanResultT]):
7878
message_path: str = "/messages/"
7979

8080
# SSE message queue settings
81-
message_queue: MessageQueue | None = Field(None, description="Custom message queue instance")
81+
message_queue: MessageQueue | None = Field(
82+
None, description="Custom message queue instance"
83+
)
8284

8385
# resource settings
8486
warn_on_duplicate_resources: bool = True
@@ -488,6 +490,7 @@ def sse_app(self) -> Starlette:
488490
# If no message queue is provided, create an in-memory queue as default
489491
if message_queue is None:
490492
from mcp.server.message_queue import InMemoryMessageQueue
493+
491494
message_queue = InMemoryMessageQueue()
492495
logger.info("Using default in-memory message queue")
493496

src/mcp/server/message_queue/base.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import logging
2-
from typing import Protocol, runtime_checkable, Callable, Awaitable
3-
from uuid import UUID
2+
from collections.abc import Awaitable, Callable
43
from contextlib import asynccontextmanager
4+
from typing import Protocol, runtime_checkable
5+
from uuid import UUID
56

67
import mcp.types as types
78

@@ -35,7 +36,7 @@ async def publish_message(
3536
@asynccontextmanager
3637
async def active_for_request(self, session_id: UUID, callback: MessageCallback):
3738
"""Request-scoped context manager that ensures the listener is active.
38-
39+
3940
Args:
4041
session_id: The UUID of the session to activate
4142
callback: Async callback function to handle messages for this session
@@ -57,7 +58,8 @@ async def session_exists(self, session_id: UUID) -> bool:
5758
class InMemoryMessageQueue:
5859
"""Default in-memory implementation of the MessageQueue interface.
5960
60-
This implementation immediately calls registered callbacks when messages are received.
61+
This implementation immediately calls registered callbacks when messages
62+
are received.
6163
"""
6264

6365
def __init__(self) -> None:
@@ -78,7 +80,7 @@ async def publish_message(
7880
logger.debug(f"Called callback for session {session_id}")
7981
else:
8082
logger.warning(f"No callback registered for session {session_id}")
81-
83+
8284
return True
8385

8486
@asynccontextmanager
@@ -87,7 +89,7 @@ async def active_for_request(self, session_id: UUID, callback: MessageCallback):
8789
self._active_sessions.add(session_id)
8890
self._callbacks[session_id] = callback
8991
logger.debug(f"Registered session {session_id} with callback")
90-
92+
9193
try:
9294
yield
9395
finally:

src/mcp/server/message_queue/redis.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@
66

77
import anyio
88
from anyio import CapacityLimiter
9+
910
import mcp.types as types
1011
from mcp.server.message_queue.base import MessageCallback
1112

12-
1313
try:
1414
import redis.asyncio as redis
1515
except ImportError:
@@ -56,7 +56,7 @@ async def active_for_request(self, session_id: UUID, callback: MessageCallback):
5656
self._callbacks[session_id] = callback
5757
channel = self._session_channel(session_id)
5858
await self._pubsub.subscribe(channel) # type: ignore
59-
59+
6060
logger.debug(f"Registered session {session_id} in Redis with callback")
6161
async with anyio.create_task_group() as tg:
6262
tg.start_soon(self._listen_for_messages)
@@ -74,11 +74,12 @@ async def _listen_for_messages(self) -> None:
7474
async with self._limiter:
7575
while True:
7676
message: None | dict[str, Any] = await self._pubsub.get_message( # type: ignore
77-
ignore_subscribe_messages=True, timeout=None # type: ignore
77+
ignore_subscribe_messages=True,
78+
timeout=None, # type: ignore
7879
)
7980
if message is None:
8081
continue
81-
82+
8283
# Extract session ID from channel name
8384
channel: str = cast(str, message["channel"])
8485
if not channel.startswith(self._prefix):

src/mcp/server/sse.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -101,12 +101,12 @@ async def connect_sse(self, scope: Scope, receive: Receive, send: Send):
101101

102102
session_id = uuid4()
103103
session_uri = f"{quote(self._endpoint)}?session_id={session_id.hex}"
104-
104+
105105
async def message_callback(message: types.JSONRPCMessage | Exception) -> None:
106106
"""Callback that receives messages from the message queue"""
107107
logger.debug(f"Got message from queue for session {session_id}")
108108
await read_stream_writer.send(message)
109-
109+
110110
logger.debug(f"Created new session with ID: {session_id}")
111111

112112
sse_stream_writer, sse_stream_reader = anyio.create_memory_object_stream[
@@ -137,7 +137,9 @@ async def sse_writer():
137137
logger.debug("Starting SSE response task")
138138
tg.start_soon(response, scope, receive, send)
139139

140-
async with self._message_queue.active_for_request(session_id, message_callback):
140+
async with self._message_queue.active_for_request(
141+
session_id, message_callback
142+
):
141143
try:
142144
logger.debug("Yielding read and write streams")
143145
yield (read_stream, write_stream)

0 commit comments

Comments
 (0)