Skip to main content
Server runner for different transport types.

ServerRunner

from mcp_use.server.runner import ServerRunner

method init

Parameters
server
MCPServer
required
Server name or configuration
Signature
def __init__(server: MCPServer):

method run

Run the MCP server.Parameters
transport
Literal
default:"streamable-http"
Transport protocol to use (“stdio”, “streamable-http” or “sse”)
host
str
default:"127.0.0.1"
Host to bind to
port
int
default:"8000"
Port to bind to
reload
bool
default:"False"
Whether to enable auto-reload
debug
bool
default:"False"
Whether to enable debug mode
Signature
def run(
transport: Literal = "streamable-http",
    host: str = "127.0.0.1",
    port: int = 8000,
    reload: bool = False,
    debug: bool = False
):

method run_sse_async

Run the server using SSE transport.Parameters
host
str
default:"127.0.0.1"
String value
port
int
default:"8000"
Integer value
reload
bool
default:"False"
Boolean flag
Signature
def run_sse_async(host: str = "127.0.0.1", port: int = 8000, reload: bool = False):

method run_streamable_http_async

Run the server using StreamableHTTP transport.Parameters
host
str
default:"127.0.0.1"
String value
port
int
default:"8000"
Integer value
reload
bool
default:"False"
Boolean flag
Signature
def run_streamable_http_async(host: str = "127.0.0.1", port: int = 8000, reload: bool = False):

method serve_starlette_app

Parameters
starlette_app
starlette.applications.Starlette
required
Parameter value
host
str
default:"127.0.0.1"
String value
port
int
default:"8000"
Integer value
transport
Literal | None
default:"None"
Parameter value
reload
bool
default:"False"
Boolean flag
Signature
def serve_starlette_app(
starlette_app: starlette.applications.Starlette,
    host: str = "127.0.0.1",
    port: int = 8000,
    transport: Literal | None = None,
    reload: bool = False
):