Documentation
¶
Index ¶
- func NewClient(implementer protoclient.Operations, options *ClientOptions) (*client.Client, error)
- func NewServer(NewServer protoserver.NewServer, options *ServerOptions) (*server.Server, error)
- type ClientAuth
- type ClientOptions
- type ClientTransport
- type ClientTransportHTTP
- type ClientTransportStdio
- type ServerOptionAuth
- type ServerOptions
- type ServerTransport
- type ServerTransportOptions
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewClient ¶
func NewClient(implementer protoclient.Operations, options *ClientOptions) (*client.Client, error)
NewClient creates an MCP client with transport and authorization configured via ClientOptions.
func NewServer ¶
func NewServer(NewServer protoserver.NewServer, options *ServerOptions) (*server.Server, error)
NewServer creates a new MCP server with the given implementer and options.
Types ¶
type ClientAuth ¶
type ClientAuth struct {
OAuth2ConfigURL []string `yaml:"oauth2ConfigURL" json:"oauth2ConfigURL" short:"c" long:"config" description:"oauth2 config file"`
EncryptionKey string `yaml:"encryptionKey" json:"encryptionKey" short:"k" long:"key" description:"encryption key"`
UseIdToken bool `yaml:"useIdToken" json:"useIdToken"`
BackendForFrontend bool `` /* 129-byte string literal not displayed */
}
ClientAuth defines authentication options for an MCP client.
type ClientOptions ¶
type ClientOptions struct {
Name string `yaml:"name" json:"name" short:"n" long:"name" description:"mcp name"`
Version string `yaml:"version" json:"version" short:"v" long:"version" description:"mcp version"`
ProtocolVersion string `yaml:"protocol" json:"protocol" short:"p" long:"protocol" description:"mcp protocol"`
Namespace string `yaml:"namespace" json:"namespace" short:"N" long:"namespace" description:"mcp namespace"`
Transport ClientTransport `yaml:"transport" json:"transport" short:"t" long:"transport" description:"mcp transport options"`
Auth *ClientAuth `yaml:"auth" json:"auth" short:"a" long:"auth" description:"mcp auth options"`
}
ClientOptions defines options for configuring an MCP client.
func (*ClientOptions) Init ¶
func (c *ClientOptions) Init()
func (*ClientOptions) Options ¶
func (c *ClientOptions) Options(authRT *authtransport.RoundTripper) []client.Option
Options builds client options (metadata and auth interceptor) based on ClientOptions.Auth and Namespace.
type ClientTransport ¶
type ClientTransport struct {
Type string `` /* 165-byte string literal not displayed */
ClientTransportStdio `yaml:",inline"`
ClientTransportHTTP `yaml:",inline"`
}
ClientTransport defines transport options for an MCP client.
type ClientTransportHTTP ¶
type ClientTransportHTTP struct {
URL string `yaml:"url" json:"url" short:"u" long:"url" description:"mcp url"`
}
ClientTransportHTTP defines options for a server-sent events transport for an MCP client.
type ClientTransportStdio ¶
type ClientTransportStdio struct {
Command string `yaml:"command" json:"command" short:"C" long:"command" description:"mcp command"`
Arguments []string `yaml:"arguments" json:"arguments" short:"A" long:"arguments" description:"mcp command arguments"`
}
ClientTransportStdio defines options for a standard input/output transport for an MCP client.
type ServerOptionAuth ¶
type ServerOptionAuth struct {
ProtectedResourcesHandler http.HandlerFunc
Authorizer server.Middleware
JRPCAuthorizer auth.JRPCAuthorizer //experimental
UseJRPCAuthorizer bool // if true, JRPCAuthorizer will be used for JSON-RPC requests
//Optional metadata for protected resources
Policy *authorization.Policy
}
type ServerOptions ¶
type ServerOptions struct {
Name string `yaml:"name" json:"name"`
Version string `yaml:"version" json:"version"`
ProtocolVersion string `yaml:"protocol" json:"protocol" short:"p" long:"protocol" description:"mcp protocol"`
LoggerName string `yaml:"loggerName" json:"loggerName"`
Transport *ServerTransport `yaml:"transport" json:"transport"`
}
ServerOptions defines options for configuring an MCP server.
type ServerTransport ¶
type ServerTransport struct {
Type string `yaml:"type" json:"type"`
Options *ServerTransportOptions `yaml:"options" json:"options"`
Auth *ServerOptionAuth `yaml:"-" json:"-"`
CustomHandlers map[string]http.HandlerFunc `yaml:"-" json:"-"`
}