pub struct McpConfig {
pub name: Option<String>,
pub title: Option<String>,
pub description: Option<String>,
pub homepage: Option<String>,
pub packages: Vec<McpPackage>,
pub transports: Vec<McpTransport>,
pub skip: Option<StringOrBool>,
pub repository: McpRepository,
pub auth: McpAuth,
pub registry: Option<String>,
}Expand description
MCP server registry publisher configuration.
Publishes an apiv0.ServerJSON document to the MCP registry
(https://registry.modelcontextprotocol.io/v0/publish by default).
Mirrors GoReleaser config.MCP + config.MCPDetails flattened.
Fields§
§name: Option<String>Server name in reverse-DNS format (e.g. io.github.user/weather).
Must contain exactly one forward slash separating namespace from
server name. An empty / unset value skips the publisher entirely.
title: Option<String>Optional human-readable title shown in registry UIs (max 100 chars).
Templated; supports {{ .ProjectName | title }}, {{ .Version }}, etc.
description: Option<String>Clear human-readable description of server functionality (max 100 chars).
homepage: Option<String>Optional URL to the server’s homepage, documentation, or project
website. Serialized as websiteUrl in the registry payload.
packages: Vec<McpPackage>Distribution packages — one entry per package registry (npm, pypi, nuget, oci, mcpb).
transports: Vec<McpTransport>Top-level transports list. Intentional GoReleaser config-portability
shim: McpConfig carries deny_unknown_fields, so a migrated
.goreleaser.yaml containing transports: would fail to parse if
the field were absent. The list is accepted and discarded — the
current MCP server schema derives transports per-package via
packages[].transport, so the top-level list is never read after
deserialization and is intentionally not emitted to the registry.
skip: Option<StringOrBool>Skip this publisher when the expression evaluates truthy. Accepts a
bool or a Tera template that renders to "true"/"false" (e.g.
"{{ if .IsSnapshot }}true{{ endif }}"). Accepts the legacy
disable: spelling via serde alias for back-compat with imported
GoReleaser configs (GR’s MCP config field is pkg/config/config.go
MCP.Disable string).
repository: McpRepositoryOptional source repository metadata. Emitted as the repository
object in the registry payload — omitted entirely when url is empty.
auth: McpAuthAuthentication method for the registry’s /v0/publish endpoint.
Defaults to none (anonymous publish, allowed for development /
staging registries).
registry: Option<String>Override the registry endpoint (for staging or a private mirror).
Defaults to https://registry.modelcontextprotocol.io when unset.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for McpConfig
impl<'de> Deserialize<'de> for McpConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for McpConfig
impl JsonSchema for McpConfig
Source§fn schema_name() -> String
fn schema_name() -> String
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn is_referenceable() -> bool
fn is_referenceable() -> bool
$ref keyword. Read more