Skip to main content
MCP Router for organizing tools, resources, and prompts into modules.

MCPRouter

from mcp_use.server.router import MCPRouter

method init

Create a new MCP router.Parameters
prefix
str
default:""
Optional prefix to add to all tool/resource names when included.
tags
list[str] | None
default:"None"
Optional tags for documentation/organization purposes.
Signature
def __init__(prefix: str = "", tags: list[str] | None = None):

method include_router

Include another router’s tools, resources, and prompts into this router.This allows for nested router organization.Parameters
router
MCPRouter
required
The router to include
prefix
str
default:""
Additional prefix to add to included items
Signature
def include_router(router: MCPRouter, prefix: str = ""):

method prompt

Decorator to register a prompt with this router.Example:
@router.prompt()
def greeting_prompt(name: str) -> str:
    return f"Hello, \{name\}! How can I help you today?"
Parameters
name
str | None
default:"None"
Prompt name (defaults to function name)
description
str | None
default:"None"
Prompt description
Returns
returns
Callable
Signature
def prompt(name: str | None = None, description: str | None = None):

property prompts

Get all pending prompts in this router.Returns
returns
list[mcp_use.server.router.PendingPrompt]
Signature
def prompts():

method resource

Decorator to register a resource with this router.Example:
@router.resource(uri="config://app")
def get_config() -> str:
    return '\{"setting": "value"\}'
Parameters
uri
str
required
Resource URI (required, e.g., “config://app” or “file://data.json”)
name
str | None
default:"None"
Human-readable name
description
str | None
default:"None"
Resource description
mime_type
str | None
default:"None"
MIME type of the resource content
Returns
returns
Callable
Signature
def resource(
uri: str,
    name: str | None = None,
    description: str | None = None,
    mime_type: str | None = None
):

property resources

Get all pending resources in this router.Returns
returns
list[mcp_use.server.router.PendingResource]
Signature
def resources():

method tool

Decorator to register a tool with this router.Example:
@router.tool()
def my_tool(arg: str) -> str:
    '''Tool description here.'''
    return f"Result: \{arg\}"
Parameters
name
str | None
default:"None"
Override the tool name (defaults to function name)
title
str | None
default:"None"
Human-readable title for the tool
description
str | None
default:"None"
Tool description (defaults to function docstring)
annotations
mcp.types.ToolAnnotations | None
default:"None"
MCP tool annotations
structured_output
bool | None
default:"None"
Whether the tool returns structured output
Returns
returns
Callable
Signature
def tool(
name: str | None = None,
    title: str | None = None,
    description: str | None = None,
    annotations: mcp.types.ToolAnnotations | None = None,
    structured_output: bool | None = None
):

property tools

Get all pending tools in this router.Returns
returns
list[mcp_use.server.router.PendingTool]
Signature
def tools():

PendingPrompt

from mcp_use.server.router import PendingPrompt

Attributes
fn
Callable
required
Parameter value
name
str | None
required
Name identifier
description
str | None
required
String value

method init

Parameters
fn
Callable
required
Parameter value
name
str | None
default:"None"
Name identifier
description
str | None
default:"None"
String value
Signature
def __init__(fn: Callable, name: str | None = None, description: str | None = None):

PendingResource

from mcp_use.server.router import PendingResource

Attributes
fn
Callable
required
Parameter value
uri
str
required
String value
name
str | None
required
Name identifier
description
str | None
required
String value
mime_type
str | None
required
String value

method init

Parameters
fn
Callable
required
Parameter value
uri
str
required
String value
name
str | None
default:"None"
Name identifier
description
str | None
default:"None"
String value
mime_type
str | None
default:"None"
String value
Signature
def __init__(fn: Callable, uri: str, name: str | None = None, description: str | None = None, mime_type: str | None = None):

PendingTool

from mcp_use.server.router import PendingTool

Attributes
fn
Callable
required
Parameter value
name
str | None
required
Name identifier
title
str | None
required
String value
description
str | None
required
String value
annotations
mcp.types.ToolAnnotations | None
required
Parameter value
structured_output
bool | None
required
Boolean flag

method init

Parameters
fn
Callable
required
Parameter value
name
str | None
default:"None"
Name identifier
title
str | None
default:"None"
String value
description
str | None
default:"None"
String value
annotations
mcp.types.ToolAnnotations | None
default:"None"
Parameter value
structured_output
bool | None
default:"None"
Boolean flag
Signature
def __init__(fn: Callable, name: str | None = None, title: str | None = None, description: str | None = None, annotations: mcp.types.ToolAnnotations | None = None, structured_output: bool | None = None):