registry

package
v0.1.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 10, 2025 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Overview

Package registry provides access to the MCP server registry

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type EmbeddedRegistryProvider added in v0.0.43

type EmbeddedRegistryProvider struct {
	// contains filtered or unexported fields
}

EmbeddedRegistryProvider provides registry data from embedded JSON files

func NewEmbeddedRegistryProvider added in v0.0.43

func NewEmbeddedRegistryProvider() *EmbeddedRegistryProvider

NewEmbeddedRegistryProvider creates a new embedded registry provider

func (*EmbeddedRegistryProvider) GetRegistry added in v0.0.43

func (p *EmbeddedRegistryProvider) GetRegistry() (*Registry, error)

GetRegistry returns the embedded registry data

func (*EmbeddedRegistryProvider) GetServer added in v0.0.43

func (p *EmbeddedRegistryProvider) GetServer(name string) (*ImageMetadata, error)

GetServer returns a specific server by name

func (*EmbeddedRegistryProvider) ListServers added in v0.0.43

func (p *EmbeddedRegistryProvider) ListServers() ([]*ImageMetadata, error)

ListServers returns all available servers

func (*EmbeddedRegistryProvider) SearchServers added in v0.0.43

func (p *EmbeddedRegistryProvider) SearchServers(query string) ([]*ImageMetadata, error)

SearchServers searches for servers matching the query

type EnvVar

type EnvVar struct {
	// Name is the environment variable name (e.g., API_KEY)
	Name string `json:"name"`
	// Description is a human-readable explanation of the variable's purpose
	Description string `json:"description"`
	// Required indicates whether this environment variable must be provided
	// If true and not provided via command line or secrets, the user will be prompted for a value
	Required bool `json:"required"`
	// Default is the value to use if the environment variable is not explicitly provided
	// Only used for non-required variables
	Default string `json:"default,omitempty"`
	// Secret indicates whether this environment variable contains sensitive information
	// If true, the value will be stored as a secret rather than as a plain environment variable
	Secret bool `json:"secret,omitempty"`
}

EnvVar represents an environment variable for an MCP server

type ImageMetadata added in v0.0.48

type ImageMetadata struct {
	// Name is the identifier for the MCP server, used when referencing the server in commands
	// If not provided, it will be auto-generated from the image name
	Name string `json:"name,omitempty"`
	// Image is the Docker image reference for the MCP server
	Image string `json:"image"`
	// Description is a human-readable description of the server's purpose and functionality
	Description string `json:"description"`
	// Tier represents the tier classification level of the server, e.g., "official" or "community" driven
	Tier string `json:"tier"`
	// The Status indicates whether the server is currently active or deprecated
	Status string `json:"status"`
	// Transport defines the communication protocol for the server (stdio, sse, or streamable-http)
	Transport string `json:"transport"`
	// TargetPort is the port for the container to expose (only applicable to SSE and Streamable HTTP transports)
	TargetPort int `json:"target_port,omitempty"`
	// Permissions defines the security profile and access permissions for the server
	Permissions *permissions.Profile `json:"permissions"`
	// Tools is a list of tool names provided by this MCP server
	Tools []string `json:"tools"`
	// EnvVars defines environment variables that can be passed to the server
	EnvVars []*EnvVar `json:"env_vars"`
	// Args are the default command-line arguments to pass to the MCP server container.
	// These arguments will be prepended to any command-line arguments provided by the user.
	Args []string `json:"args"`
	// Metadata contains additional information about the server such as popularity metrics
	Metadata *Metadata `json:"metadata"`
	// RepositoryURL is the URL to the source code repository for the server
	RepositoryURL string `json:"repository_url,omitempty"`
	// Tags are categorization labels for the server to aid in discovery and filtering
	Tags []string `json:"tags,omitempty"`
	// DockerTags lists the available Docker tags for this server image
	DockerTags []string `json:"docker_tags,omitempty"`
	// Provenance contains verification and signing metadata
	Provenance *Provenance `json:"provenance,omitempty"`
}

ImageMetadata represents the metadata for an MCP server image stored in our registry.

type Metadata

type Metadata struct {
	// Stars represents the popularity rating or number of stars for the server
	Stars int `json:"stars"`
	// Pulls indicates how many times the server image has been downloaded
	Pulls int `json:"pulls"`
	// LastUpdated is the timestamp when the server was last updated, in RFC3339 format
	LastUpdated string `json:"last_updated"`
}

Metadata represents metadata about an MCP server

func (*Metadata) ParsedTime

func (m *Metadata) ParsedTime() (time.Time, error)

ParsedTime returns the LastUpdated field as a time.Time

type Provenance added in v0.0.35

type Provenance struct {
	SigstoreURL       string               `json:"sigstore_url"`
	RepositoryURI     string               `json:"repository_uri"`
	RepositoryRef     string               `json:"repository_ref"`
	SignerIdentity    string               `json:"signer_identity"`
	RunnerEnvironment string               `json:"runner_environment"`
	CertIssuer        string               `json:"cert_issuer"`
	Attestation       *VerifiedAttestation `json:"attestation,omitempty"`
}

Provenance contains metadata about the image's provenance and signing status

type Provider added in v0.0.43

type Provider interface {
	// GetRegistry returns the complete registry data
	GetRegistry() (*Registry, error)

	// GetServer returns a specific server by name
	GetServer(name string) (*ImageMetadata, error)

	// SearchServers searches for servers matching the query
	SearchServers(query string) ([]*ImageMetadata, error)

	// ListServers returns all available servers
	ListServers() ([]*ImageMetadata, error)
}

Provider defines the interface for registry storage implementations

func GetDefaultProvider added in v0.0.43

func GetDefaultProvider() (Provider, error)

GetDefaultProvider returns the default registry provider instance This maintains backward compatibility with the existing singleton pattern

func NewRegistryProvider added in v0.0.43

func NewRegistryProvider(cfg *config.Config) Provider

NewRegistryProvider creates a new registry provider based on the configuration

type Registry

type Registry struct {
	// Version is the schema version of the registry
	Version string `json:"version"`
	// LastUpdated is the timestamp when the registry was last updated, in RFC3339 format
	LastUpdated string `json:"last_updated"`
	// Servers is a map of server names to their corresponding server definitions
	Servers map[string]*ImageMetadata `json:"servers"`
}

Registry represents the top-level structure of the MCP registry

type RemoteRegistryProvider added in v0.0.43

type RemoteRegistryProvider struct {
	// contains filtered or unexported fields
}

RemoteRegistryProvider provides registry data from a remote HTTP endpoint

func NewRemoteRegistryProvider added in v0.0.43

func NewRemoteRegistryProvider(registryURL string, allowPrivateIp bool) *RemoteRegistryProvider

NewRemoteRegistryProvider creates a new remote registry provider

func (*RemoteRegistryProvider) GetRegistry added in v0.0.43

func (p *RemoteRegistryProvider) GetRegistry() (*Registry, error)

GetRegistry returns the remote registry data

func (*RemoteRegistryProvider) GetServer added in v0.0.43

func (p *RemoteRegistryProvider) GetServer(name string) (*ImageMetadata, error)

GetServer returns a specific server by name

func (*RemoteRegistryProvider) ListServers added in v0.0.43

func (p *RemoteRegistryProvider) ListServers() ([]*ImageMetadata, error)

ListServers returns all available servers

func (*RemoteRegistryProvider) SearchServers added in v0.0.43

func (p *RemoteRegistryProvider) SearchServers(query string) ([]*ImageMetadata, error)

SearchServers searches for servers matching the query

type VerifiedAttestation added in v0.0.35

type VerifiedAttestation struct {
	PredicateType string `json:"predicate_type,omitempty"`
	Predicate     any    `json:"predicate,omitempty"`
}

VerifiedAttestation represents the verified attestation information

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL