Skip to main content

MCPServer

from mcp_use.server.server import MCPServer

method init

Initialize an MCP server.Parameters
name
str | None
default:"None"
Server name for identification
version
str | None
default:"None"
Server version string
instructions
str | None
default:"None"
Instructions for the AI model using this server
middleware
list[Middleware] | None
default:"None"
List of middleware to apply to requests
debug
bool
default:"False"
Enable debug mode (adds /docs, /inspector, /openmcp.json endpoints)
mcp_path
str
default:"/mcp"
Path for MCP endpoint (default: “/mcp”)
docs_path
str
default:"/docs"
Path for documentation endpoint (default: “/docs”)
inspector_path
str
default:"/inspector"
Path for inspector UI (default: “/inspector”)
openmcp_path
str
default:"/openmcp.json"
Path for OpenMCP metadata (default: “/openmcp.json”)
show_inspector_logs
bool
default:"False"
Show inspector-related logs
pretty_print_jsonrpc
bool
default:"False"
Pretty print JSON-RPC messages in logs
host
str
default:"0.0.0.0"
Default host for server binding. Also controls DNS rebinding protection:
port
int
default:"8000"
Default port for server binding (default: 8000). Can be overridden in run().
Signature
def __init__(name: str | None = None, version: str | None = None, instructions: str | None = None, middleware: list[Middleware] | None = None, debug: bool = False, mcp_path: str = "/mcp", docs_path: str = "/docs", inspector_path: str = "/inspector", openmcp_path: str = "/openmcp.json", show_inspector_logs: bool = False, pretty_print_jsonrpc: bool = False, host: str = "0.0.0.0", port: int = 8000):

property debug

Whether debug mode is enabled.Returns
returns
bool
Signature
def debug():

method include_router

Include a router’s tools, resources, and prompts into this server.Similar to FastAPI’s include_router, this allows you to organize your MCP server into multiple files/modules.Example:
from mcp_use.server import MCPServer, MCPRouter

# In routes/math.py
router = MCPRouter()

@router.tool()
def add(a: int, b: int) -> int:
    return a + b

# In main.py
server = MCPServer(name="my-server")
server.include_router(router, prefix="math")  # Tool becomes "math_add"
server.include_router(other_router, enabled=False)  # Skip this router
Parameters
router
MCPRouter
required
The MCPRouter instance to include
prefix
str
default:""
Optional prefix to add to all tool names (e.g., “math” -> “math_add”)
enabled
bool
default:"True"
Whether to enable this router (default True). Set to False to skip registration.
Signature
def include_router(router: MCPRouter, prefix: str = "", enabled: bool = True):