Files
mcp-python-sdk/mcp_python/server/__main__.py
David Soria Parra cc342a05ad Allow passing initialization options to a session
We need a way for servers to pass initialization options to the session.
This is the beginning of this.
2024-10-11 16:06:54 +01:00

39 lines
1.2 KiB
Python

import logging
import sys
import importlib.metadata
import anyio
from mcp_python.server.session import ServerSession
from mcp_python.server.types import InitializationOptions
from mcp_python.server.stdio import stdio_server
from mcp_python.types import ServerCapabilities
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():
version = importlib.metadata.version("mcp_python")
async with stdio_server() as (read_stream, write_stream):
async with ServerSession(read_stream, write_stream, InitializationOptions(server_name="mcp_python", server_version=version, capabilities=ServerCapabilities())) as session, write_stream:
await receive_loop(session)
if __name__ == "__main__":
anyio.run(main, backend="trio")