{"record":{"id":"e27f7bcf15bff5d3","repo":"googleapis/mcp-toolbox","slug":"invalid-character-for-resource-name-only-uppercas","errorCode":null,"errorMessage":"invalid character for resource name; only uppercase and lowercase ASCII letters (A-Z, a-z), digits (0-9), underscore (_), hyphen (-), and dot (.) is allowed","messagePattern":"invalid character for resource name; only uppercase and lowercase ASCII letters \\(A-Z, a-z\\), digits \\(0-9\\), underscore \\(_\\), hyphen \\(-\\), and dot \\(\\.\\) is allowed","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"internal/server/config.go","lineNumber":619,"sourceCode":"\treturn promptCfg, nil\n}\n\n// Tools naming validation is added in the MCP v2025-11-25, but we'll be\n// implementing it across Toolbox\n// Tool names SHOULD be between 1 and 128 characters in length (inclusive).\n// Tool names SHOULD be considered case-sensitive.\n// The following SHOULD be the only allowed characters: uppercase and lowercase ASCII letters (A-Z, a-z), digits (0-9), underscore (_), hyphen (-), and dot (.)\n// Tool names SHOULD NOT contain spaces, commas, or other special characters.\n// Tool names SHOULD be unique within a server.\nfunc NameValidation(name string) error {\n\tstrLen := len(name)\n\tif strLen < 1 || strLen > 128 {\n\t\treturn fmt.Errorf(\"resource name SHOULD be between 1 and 128 characters in length (inclusive)\")\n\t}\n\tvalidChars := regexp.MustCompile(\"^[a-zA-Z0-9_.-]+$\")\n\tisValid := validChars.MatchString(name)\n\tif !isValid {\n\t\treturn fmt.Errorf(\"invalid character for resource name; only uppercase and lowercase ASCII letters (A-Z, a-z), digits (0-9), underscore (_), hyphen (-), and dot (.) is allowed\")\n\t}\n\treturn nil\n}\n\nfunc formatDocLocation(docIndex int, keyToken *token.Token, body ast.Node) string {\n\tline, column := 0, 0\n\tif keyToken != nil {\n\t\tline = keyToken.Position.Line\n\t\tcolumn = keyToken.Position.Column\n\t} else if body != nil && body.GetToken() != nil {\n\t\tline = body.GetToken().Position.Line\n\t\tcolumn = body.GetToken().Position.Column\n\t}\n\tif line > 0 && column > 0 {\n\t\treturn fmt.Sprintf(\"document %d (line %d, column %d):\", docIndex, line, column)\n\t}\n\treturn fmt.Sprintf(\"document %d:\", docIndex)\n}","sourceCodeStart":601,"sourceCodeEnd":637,"githubUrl":"https://github.com/googleapis/mcp-toolbox/blob/8cc6e09de2ad7b8bffc77751799585a1401a48eb/internal/server/config.go#L601-L637","documentation":"Error \"invalid character for resource name; only uppercase and lowercase ASCII letters (A-Z, a-z), digits (0-9), underscore (_), hyphen (-), and dot (.) is allowed\" thrown in googleapis/mcp-toolbox.","triggerScenarios":"Thrown at internal/server/config.go:619 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"8cc6e09de2ad7b8bffc77751799585a1401a48eb","analyzedAt":"2026-09-05T01:10:36.887Z","contentChangedAt":"2026-09-05T01:10:36.887Z","schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}