diff --git a/tests/test_tool_definition_invariants.py b/tests/test_tool_definition_invariants.py new file mode 100644 index 0000000000..b1255d2f4c --- /dev/null +++ b/tests/test_tool_definition_invariants.py @@ -0,0 +1,17 @@ +import re +import pytest + +def validate_mcp_tool_name(name: str) -> bool: + if not name or not (1 <= len(name) <= 64): + return False + return bool(re.match(r"^[a-zA-Z0-9_-]+$", name)) + +def test_valid_mcp_tool_names(): + assert validate_mcp_tool_name("query_database") is True + assert validate_mcp_tool_name("fetch-api-v2") is True + assert validate_mcp_tool_name("search123") is True + +def test_invalid_mcp_tool_names(): + assert validate_mcp_tool_name("") is False + assert validate_mcp_tool_name("tool with spaces") is False + assert validate_mcp_tool_name("tool.with.dots") is False