forked from modelcontextprotocol/python-sdk
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path__main__.py
More file actions
35 lines (23 loc) · 895 Bytes
/
__main__.py
File metadata and controls
35 lines (23 loc) · 895 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import logging
import sys
import anyio
from mcp_python.server.session import ServerSession
from mcp_python.server.stdio import stdio_server
if not sys.warnoptions:
import warnings
warnings.simplefilter("ignore")
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger("server")
async def receive_loop(session: ServerSession):
logger.info("Starting receive loop")
async for message in session.incoming_messages:
if isinstance(message, Exception):
logger.error("Error: %s", message)
continue
logger.info("Received message from client: %s", message)
async def main():
async with stdio_server() as (read_stream, write_stream):
async with ServerSession(read_stream, write_stream) as session, write_stream:
await receive_loop(session)
if __name__ == "__main__":
anyio.run(main, backend="trio")