tool_name_validation
Tool name validation utilities according to SEP-986.
Tool names SHOULD be between 1 and 128 characters in length (inclusive). Tool names are case-sensitive. Allowed characters: uppercase and lowercase ASCII letters (A-Z, a-z), digits (0-9), underscore (_), dash (-), and dot (.). Tool names SHOULD NOT contain spaces, commas, or other special characters.
See: https://modelcontextprotocol.io/specification/2025-11-25/server/tools#tool-names
ToolNameValidationResult
dataclass
Result of tool name validation.
Attributes:
| Name | Type | Description |
|---|---|---|
is_valid |
bool
|
Whether the tool name conforms to SEP-986 requirements. |
warnings |
list[str]
|
List of warning messages for non-conforming aspects. |
Source code in src/mcp/shared/tool_name_validation.py
27 28 29 30 31 32 33 34 35 36 37 | |
validate_tool_name
validate_tool_name(name: str) -> ToolNameValidationResult
Validate a tool name according to the SEP-986 specification.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
name
|
str
|
The tool name to validate. |
required |
Returns:
| Type | Description |
|---|---|
ToolNameValidationResult
|
ToolNameValidationResult containing validation status and any warnings. |
Source code in src/mcp/shared/tool_name_validation.py
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 | |
issue_tool_name_warning
Log warnings for non-conforming tool names.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
name
|
str
|
The tool name that triggered the warnings. |
required |
warnings
|
list[str]
|
List of warning messages to log. |
required |
Source code in src/mcp/shared/tool_name_validation.py
97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 | |
validate_and_warn_tool_name
Validate a tool name and issue warnings for non-conforming names.
This is the primary entry point for tool name validation. It validates the name and logs any warnings via the logging module.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
name
|
str
|
The tool name to validate. |
required |
Returns:
| Type | Description |
|---|---|
bool
|
True if the name is valid, False otherwise. |
Source code in src/mcp/shared/tool_name_validation.py
115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 | |