MCPcopy Index your code
hub / github.com/modelcontextprotocol/registry / validatePackageField

Function validatePackageField

internal/validators/validators.go:295–331  ·  view source on GitHub ↗
(ctx *ValidationContext, obj *model.Package)

Source from the content-addressed store, hash-verified

293}
294
295func validatePackageField(ctx *ValidationContext, obj *model.Package) *ValidationResult {
296 result := &ValidationResult{Valid: true, Issues: []ValidationIssue{}}
297
298 // Validate identifier has no spaces
299 if !HasNoSpaces(obj.Identifier) {
300 issue := NewValidationIssueFromError(
301 ValidationIssueTypeSemantic,
302 ctx.Field("identifier").String(),
303 ErrPackageNameHasSpaces,
304 "package-name-has-spaces",
305 )
306 result.AddIssue(issue)
307 }
308
309 // Validate version string
310 versionResult := validateVersion(ctx.Field("version"), obj.Version)
311 result.Merge(versionResult)
312
313 // Validate runtime arguments
314 for i, arg := range obj.RuntimeArguments {
315 argResult := validateArgument(ctx.Field("runtimeArguments").Index(i), &arg)
316 result.Merge(argResult)
317 }
318
319 // Validate package arguments
320 for i, arg := range obj.PackageArguments {
321 argResult := validateArgument(ctx.Field("packageArguments").Index(i), &arg)
322 result.Merge(argResult)
323 }
324
325 // Validate transport with template variable support
326 availableVariables := collectAvailableVariables(obj)
327 transportResult := validatePackageTransport(ctx.Field("transport"), &obj.Transport, availableVariables)
328 result.Merge(transportResult)
329
330 return result
331}
332
333// validateVersion validates the version string.
334// NB: we decided that we would not enforce strict semver for version strings

Callers 1

ValidateServerJSONFunction · 0.85

Calls 11

AddIssueMethod · 0.95
MergeMethod · 0.95
HasNoSpacesFunction · 0.85
validateVersionFunction · 0.85
validateArgumentFunction · 0.85
validatePackageTransportFunction · 0.85
FieldMethod · 0.80
IndexMethod · 0.80
StringMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…