github/github-mcp-server · error
path must not contain control characters
Error message
path must not contain control characters
What it means
Error "path must not contain control characters" thrown in github/github-mcp-server.
Source
Thrown at pkg/github/repositories.go:2460
}
} `graphql:"blame(path: $path)"`
}
// validateBlamePath rejects empty, leading-slash, traversal-laden, or
// control-character paths before any network call is made.
func validateBlamePath(p string) error {
if strings.TrimSpace(p) == "" {
return fmt.Errorf("path must not be empty")
}
if strings.HasPrefix(p, "/") {
return fmt.Errorf("path must be relative to the repository root (no leading '/')")
}
if slices.Contains(strings.Split(p, "/"), "..") {
return fmt.Errorf("path must not contain '..' segments")
}
for _, r := range p {
if r < 0x20 || r == 0x7f {
return fmt.Errorf("path must not contain control characters")
}
}
return nil
}
func GetFileBlame(t translations.TranslationHelperFunc) inventory.ServerTool {
st := NewTool(
ToolsetMetadataRepos,
mcp.Tool{
Name: "get_file_blame",
Description: t("TOOL_GET_FILE_BLAME_DESCRIPTION",
"Get git blame information for a file, showing the commit that last modified each line. "+
"Ranges share commit metadata via the top-level 'commits' map keyed by SHA. "+
"Use 'start_line'/'end_line' to restrict the result to a window of the file, and "+
"'perPage'/'after' to cursor-page through returned ranges. Matching ranges are capped at "+
"1000; when the cap is hit 'truncated' is set to true and 'total_ranges' reports the pre-cap match count.",
),
Annotations: &mcp.ToolAnnotations{View on GitHub (pinned to 0ea1f775a7)
When it happens
Trigger: Thrown at pkg/github/repositories.go:2460 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of github/github-mcp-server@0ea1f775a7 (2026-08-15).
Data as JSON: /api/errors/f07a4f2194e05878.
Report an issue: GitHub.