mcp

package
v0.1.15-rc.1 Latest Latest
Warning

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

Go to latest
Published: Jan 14, 2026 License: Apache-2.0 Imports: 29 Imported by: 0

Documentation

Overview

Package mcp contains core MCP server integrations and tools.

Index

Constants

View Source
const (
	// HTTP represents the HTTP package URL scheme.
	HTTP = "http"
	// FILE represents the file package URL scheme.
	FILE = "file"
	// BUILTIN represents the builtin package scheme.
	BUILTIN = "builtin"

	// FUNCTION represents a function package type.
	FUNCTION = "function"
	// SINK represents a sink package type.
	SINK = "sink"
	// SOURCE represents a source package type.
	SOURCE = "source"

	// PublicTenant is the default public tenant name.
	PublicTenant = "public"
	// DefaultNamespace is the default namespace name.
	DefaultNamespace = "default"
)
View Source
const DefaultKafkaPort = 9093

DefaultKafkaPort is the default Kafka port for StreamNative Cloud.

View Source
const (
	// DefaultPulsarPort is the default Pulsar protocol port.
	DefaultPulsarPort = 6651
)

Variables

View Source
var (
	// ServerlessPoolMemberList defines the supported serverless pools.
	ServerlessPoolMemberList = []ServerlessPoolMember{
		{
			Provider:  "azure",
			Namespace: "streamnative",
			Pool:      "shared-azure",
			Location:  "eastus",
		},
		{
			Provider:  "aws",
			Namespace: "streamnative",
			Pool:      "shared-aws",
			Location:  "us-east-2",
		},
	}
	// AvailableProviders lists supported cloud providers.
	AvailableProviders = []string{"azure", "aws", "gcloud"}
)
View Source
var FunctionConnectorList = []string{"sink", "source", "function", "kafka-connect"}

FunctionConnectorList lists supported log components.

Functions

func AddOpts added in v0.1.11

func AddOpts(opts ...server.ServerOption) []server.ServerOption

AddOpts merges default server options with custom options.

func GetExternalKafkaServerInstructions

func GetExternalKafkaServerInstructions(bootstrapServers string) string

GetExternalKafkaServerInstructions renders instructions for external Kafka.

func GetExternalPulsarServerInstructions

func GetExternalPulsarServerInstructions(webServiceURL string) string

GetExternalPulsarServerInstructions renders instructions for external Pulsar.

func GetKafkaSession added in v0.1.11

func GetKafkaSession(ctx context.Context) *kafka.Session

GetKafkaSession gets the Kafka session from the context

func GetPulsarSession added in v0.1.11

func GetPulsarSession(ctx context.Context) *pulsar.Session

GetPulsarSession gets the Pulsar session from the context

func GetSNCloudCluster added in v0.1.11

func GetSNCloudCluster(ctx context.Context) string

GetSNCloudCluster gets the SNCloud cluster from the context

func GetSNCloudInstance added in v0.1.11

func GetSNCloudInstance(ctx context.Context) string

GetSNCloudInstance gets the SNCloud instance from the context

func GetSNCloudOrganization added in v0.1.11

func GetSNCloudOrganization(ctx context.Context) string

GetSNCloudOrganization gets the SNCloud organization from the context

func GetSNCloudSession added in v0.1.11

func GetSNCloudSession(ctx context.Context) *config.Session

GetSNCloudSession gets the SNCloud session from the context

func GetStreamNativeCloudServerInstructions

func GetStreamNativeCloudServerInstructions(userName string, snConfig *config.SnConfig) string

GetStreamNativeCloudServerInstructions renders instructions for StreamNative Cloud.

func HandleListPulsarClusters added in v0.1.11

func HandleListPulsarClusters(ctx context.Context, _ mcp.GetPromptRequest) (*mcp.GetPromptResult, error)

HandleListPulsarClusters handles listing StreamNative Cloud clusters.

func IsPackageURLSupported added in v0.1.4

func IsPackageURLSupported(functionPkgURL string) bool

IsPackageURLSupported reports whether the package URL scheme is supported.

func KafkaAdminAddGroupsTools

func KafkaAdminAddGroupsTools(s *server.MCPServer, readOnly bool, features []string)

KafkaAdminAddGroupsTools registers Kafka admin group tools.

func KafkaAdminAddKafkaConnectTools

func KafkaAdminAddKafkaConnectTools(s *server.MCPServer, readOnly bool, features []string)

KafkaAdminAddKafkaConnectTools registers Kafka Connect admin tools.

func KafkaAdminAddPartitionsTools

func KafkaAdminAddPartitionsTools(s *server.MCPServer, readOnly bool, features []string)

KafkaAdminAddPartitionsTools registers Kafka admin partition tools.

func KafkaAdminAddSchemaRegistryTools

func KafkaAdminAddSchemaRegistryTools(s *server.MCPServer, readOnly bool, features []string)

KafkaAdminAddSchemaRegistryTools registers Kafka Schema Registry tools.

func KafkaAdminAddTopicTools

func KafkaAdminAddTopicTools(s *server.MCPServer, readOnly bool, features []string)

KafkaAdminAddTopicTools registers Kafka admin topic tools.

func KafkaClientAddConsumeTools

func KafkaClientAddConsumeTools(s *server.MCPServer, _ bool, logrusLogger *logrus.Logger, features []string)

KafkaClientAddConsumeTools adds Kafka client consume tools to the MCP server

func KafkaClientAddProduceTools

func KafkaClientAddProduceTools(s *server.MCPServer, readOnly bool, features []string)

KafkaClientAddProduceTools adds Kafka client produce tools to the MCP server

func PulsarAdminAddBrokerStatsTools

func PulsarAdminAddBrokerStatsTools(s *server.MCPServer, readOnly bool, features []string)

PulsarAdminAddBrokerStatsTools adds broker-stats related tools to the MCP server

func PulsarAdminAddBrokersTools

func PulsarAdminAddBrokersTools(s *server.MCPServer, readOnly bool, features []string)

PulsarAdminAddBrokersTools adds broker-related tools to the MCP server

func PulsarAdminAddClusterTools

func PulsarAdminAddClusterTools(s *server.MCPServer, readOnly bool, features []string)

PulsarAdminAddClusterTools adds cluster-related tools to the MCP server

func PulsarAdminAddFunctionsTools

func PulsarAdminAddFunctionsTools(s *server.MCPServer, readOnly bool, features []string)

PulsarAdminAddFunctionsTools adds a unified function-related tool to the MCP server

func PulsarAdminAddFunctionsWorkerTools

func PulsarAdminAddFunctionsWorkerTools(s *server.MCPServer, readOnly bool, features []string)

PulsarAdminAddFunctionsWorkerTools adds functions worker-related tools to the MCP server

func PulsarAdminAddNamespacePolicyTools

func PulsarAdminAddNamespacePolicyTools(s *server.MCPServer, readOnly bool, features []string)

PulsarAdminAddNamespacePolicyTools adds namespace policy-related tools to the MCP server

func PulsarAdminAddNamespaceTools

func PulsarAdminAddNamespaceTools(s *server.MCPServer, readOnly bool, features []string)

PulsarAdminAddNamespaceTools adds namespace-related tools to the MCP server

func PulsarAdminAddNsIsolationPolicyTools

func PulsarAdminAddNsIsolationPolicyTools(s *server.MCPServer, readOnly bool, features []string)

PulsarAdminAddNsIsolationPolicyTools adds namespace isolation policy related tools to the MCP server

func PulsarAdminAddPackagesTools

func PulsarAdminAddPackagesTools(s *server.MCPServer, readOnly bool, features []string)

PulsarAdminAddPackagesTools adds package-related tools to the MCP server

func PulsarAdminAddResourceQuotasTools

func PulsarAdminAddResourceQuotasTools(s *server.MCPServer, readOnly bool, features []string)

PulsarAdminAddResourceQuotasTools adds resource quotas-related tools to the MCP server

func PulsarAdminAddSchemasTools

func PulsarAdminAddSchemasTools(s *server.MCPServer, readOnly bool, features []string)

PulsarAdminAddSchemasTools adds schema-related tools to the MCP server

func PulsarAdminAddSinksTools

func PulsarAdminAddSinksTools(s *server.MCPServer, readOnly bool, features []string)

PulsarAdminAddSinksTools adds a unified sink-related tool to the MCP server

func PulsarAdminAddSourcesTools

func PulsarAdminAddSourcesTools(s *server.MCPServer, readOnly bool, features []string)

PulsarAdminAddSourcesTools adds a unified source-related tool to the MCP server

func PulsarAdminAddSubscriptionTools

func PulsarAdminAddSubscriptionTools(s *server.MCPServer, readOnly bool, features []string)

PulsarAdminAddSubscriptionTools adds subscription-related tools to the MCP server

func PulsarAdminAddTenantTools

func PulsarAdminAddTenantTools(s *server.MCPServer, readOnly bool, features []string)

PulsarAdminAddTenantTools registers Pulsar admin tenant tools.

func PulsarAdminAddTopicPolicyTools

func PulsarAdminAddTopicPolicyTools(s *server.MCPServer, readOnly bool, features []string)

PulsarAdminAddTopicPolicyTools adds topic policy-related tools to the MCP server

func PulsarAdminAddTopicTools

func PulsarAdminAddTopicTools(s *server.MCPServer, readOnly bool, features []string)

PulsarAdminAddTopicTools adds topic-related tools to the MCP server

func PulsarAdminClusterTools added in v0.1.11

func PulsarAdminClusterTools(readOnly bool, features []string) []server.ServerTool

PulsarAdminClusterTools creates Pulsar Admin Cluster tool list using the new builder pattern

func PulsarAdminFunctionsWorkerTools added in v0.1.11

func PulsarAdminFunctionsWorkerTools(readOnly bool, features []string) []server.ServerTool

PulsarAdminFunctionsWorkerTools creates Pulsar Admin Functions Worker tool list using the new builder pattern

func PulsarAdminNamespaceTools added in v0.1.11

func PulsarAdminNamespaceTools(readOnly bool, features []string) []server.ServerTool

PulsarAdminNamespaceTools creates Pulsar Admin Namespace tool list using the new builder pattern

func PulsarAdminSchemaTools added in v0.1.11

func PulsarAdminSchemaTools(readOnly bool, features []string) []server.ServerTool

PulsarAdminSchemaTools creates Pulsar Admin Schema tool list using the new builder pattern

func PulsarAdminSubscriptionTools added in v0.1.11

func PulsarAdminSubscriptionTools(readOnly bool, features []string) []server.ServerTool

PulsarAdminSubscriptionTools creates Pulsar Admin Subscription tool list using the new builder pattern

func PulsarAdminTopicTools added in v0.1.11

func PulsarAdminTopicTools(readOnly bool, features []string) []server.ServerTool

PulsarAdminTopicTools creates Pulsar Admin Topic tool list using the new builder pattern

func PulsarClientAddConsumerTools

func PulsarClientAddConsumerTools(s *server.MCPServer, readOnly bool, features []string)

PulsarClientAddConsumerTools adds Pulsar client consumer tools to the MCP server

func PulsarClientAddProducerTools

func PulsarClientAddProducerTools(s *server.MCPServer, readOnly bool, features []string)

PulsarClientAddProducerTools adds Pulsar client producer tools to the MCP server

func PulsarClientConsumeTools added in v0.1.11

func PulsarClientConsumeTools(readOnly bool, features []string) []server.ServerTool

PulsarClientConsumeTools creates Pulsar Client Consumer tool list using the new builder pattern

func PulsarClientProduceTools added in v0.1.11

func PulsarClientProduceTools(readOnly bool, features []string) []server.ServerTool

PulsarClientProduceTools creates Pulsar Client Producer tool list using the new builder pattern

func RegisterContextTools

func RegisterContextTools(s *server.MCPServer, features []string, skipContextTools bool)

RegisterContextTools registers context-related tools on the server.

func RegisterPrompts

func RegisterPrompts(s *server.MCPServer)

RegisterPrompts registers prompt handlers on the server.

func SetContext

func SetContext(ctx context.Context, options *config.Options, instanceName, clusterName string) error

SetContext resolves and stores StreamNative Cloud context in memory.

func StopAllPulsarFunctionManagers added in v0.1.9

func StopAllPulsarFunctionManagers()

StopAllPulsarFunctionManagers stops and removes all function managers.

func StreamNativeAddLogTools

func StreamNativeAddLogTools(s *server.MCPServer, _ bool, features []string)

StreamNativeAddLogTools adds log tools

func StreamNativeAddResourceTools added in v0.1.4

func StreamNativeAddResourceTools(s *server.MCPServer, readOnly bool, features []string)

StreamNativeAddResourceTools adds StreamNative resources tools

func WithKafkaSession added in v0.1.11

func WithKafkaSession(ctx context.Context, session *kafka.Session) context.Context

WithKafkaSession sets the Kafka session in the context

func WithPulsarSession added in v0.1.11

func WithPulsarSession(ctx context.Context, session *pulsar.Session) context.Context

WithPulsarSession sets the Pulsar session in the context

func WithSNCloudCluster added in v0.1.11

func WithSNCloudCluster(ctx context.Context, cluster string) context.Context

WithSNCloudCluster sets the SNCloud cluster in the context

func WithSNCloudInstance added in v0.1.11

func WithSNCloudInstance(ctx context.Context, instance string) context.Context

WithSNCloudInstance sets the SNCloud instance in the context

func WithSNCloudOrganization added in v0.1.11

func WithSNCloudOrganization(ctx context.Context, organization string) context.Context

WithSNCloudOrganization sets the SNCloud organization in the context

func WithSNCloudSession added in v0.1.11

func WithSNCloudSession(ctx context.Context, session *config.Session) context.Context

WithSNCloudSession sets the SNCloud session in the context

Types

type Feature

type Feature string

Feature represents a named capability flag for MCP tools.

const (
	FeatureAll                          Feature = "all"
	FeatureAllKafka                     Feature = "all-kafka"
	FeatureAllPulsar                    Feature = "all-pulsar"
	FeatureKafkaClient                  Feature = "kafka-client"
	FeatureKafkaAdmin                   Feature = "kafka-admin"
	FeatureKafkaAdminSchemaRegistry     Feature = "kafka-admin-schema-registry"
	FeatureKafkaAdminKafkaConnect       Feature = "kafka-admin-kafka-connect"
	FeaturePulsarAdmin                  Feature = "pulsar-admin"
	FeaturePulsarAdminBrokersStatus     Feature = "pulsar-admin-brokers-status"
	FeaturePulsarAdminBrokers           Feature = "pulsar-admin-brokers"
	FeaturePulsarAdminClusters          Feature = "pulsar-admin-clusters"
	FeaturePulsarAdminFunctions         Feature = "pulsar-admin-functions"
	FeaturePulsarAdminNamespaces        Feature = "pulsar-admin-namespaces"
	FeaturePulsarAdminTenants           Feature = "pulsar-admin-tenants"
	FeaturePulsarAdminTopics            Feature = "pulsar-admin-topics"
	FeaturePulsarAdminFunctionsWorker   Feature = "pulsar-admin-functions-worker"
	FeaturePulsarAdminSinks             Feature = "pulsar-admin-sinks"
	FeaturePulsarAdminSources           Feature = "pulsar-admin-sources"
	FeaturePulsarAdminNamespacePolicy   Feature = "pulsar-admin-namespace-policy"
	FeaturePulsarAdminNsIsolationPolicy Feature = "pulsar-admin-ns-isolation-policy"
	FeaturePulsarAdminPackages          Feature = "pulsar-admin-packages"
	FeaturePulsarAdminResourceQuotas    Feature = "pulsar-admin-resource-quotas"
	FeaturePulsarAdminSchemas           Feature = "pulsar-admin-schemas"
	FeaturePulsarAdminSubscriptions     Feature = "pulsar-admin-subscriptions"
	FeaturePulsarAdminTopicPolicy       Feature = "pulsar-admin-topic-policy"
	FeaturePulsarClient                 Feature = "pulsar-client"
	FeatureStreamNativeCloud            Feature = "streamnative-cloud"
	FeatureFunctionsAsTools             Feature = "functions-as-tools"
)

Feature flags used to register MCP tools.

type LogContent

type LogContent struct {
	Message  string `json:"message"`
	Position int64  `json:"position"`
	Record   int64  `json:"record"`
}

LogContent represents a single log entry.

type LogOptions

type LogOptions struct {
	ServiceURL      string
	Organization    string
	Instance        string
	Cluster         string
	Component       string
	Name            string
	PulsarTenant    string
	PulsarNamespace string
	Size            string
	Since           string
	Timestamp       string
	Follow          bool

	Previous                     bool
	InsecureSkipTLSVerifyBackend bool
	// contains filtered or unexported fields
}

LogOptions captures parameters for StreamNative log queries.

type LogResult

type LogResult struct {
	Total int          `json:"total"`
	Data  []LogContent `json:"data"`
}

LogResult represents a log query response.

type Metadata added in v0.1.4

type Metadata struct {
	Name      string            `json:"name" yaml:"name"`
	Namespace string            `json:"namespace" yaml:"namespace"`
	Labels    map[string]string `json:"labels" yaml:"labels"`
}

Metadata holds standard resource metadata.

type Resource added in v0.1.4

type Resource struct {
	APIVersion string                 `json:"apiVersion" yaml:"apiVersion"`
	Kind       string                 `json:"kind" yaml:"kind"`
	Metadata   Metadata               `json:"metadata" yaml:"metadata"`
	Spec       map[string]interface{} `json:"spec" yaml:"spec"`
}

Resource represents a StreamNative resource manifest.

type Server added in v0.1.11

type Server struct {
	MCPServer      *server.MCPServer
	KafkaSession   *kafka.Session
	PulsarSession  *pulsar.Session
	SNCloudSession *config.Session
	// contains filtered or unexported fields
}

Server wraps MCP server state and StreamNative sessions.

func CreateSNCloudMCPServer added in v0.1.11

func CreateSNCloudMCPServer(s *server.MCPServer, logger *logrus.Logger) *Server

CreateSNCloudMCPServer constructs a Server wrapper for StreamNative Cloud.

func NewServer added in v0.1.11

func NewServer(name, version string, logger *logrus.Logger, opts ...server.ServerOption) *Server

NewServer creates a new MCP server with StreamNative integrations.

func (*Server) PulsarFunctionManagedMcpTools added in v0.1.11

func (s *Server) PulsarFunctionManagedMcpTools(readOnly bool, features []string, sessionID string)

PulsarFunctionManagedMcpTools registers Pulsar Functions-as-tools handlers.

type ServerlessPoolMember added in v0.1.4

type ServerlessPoolMember struct {
	Provider  string
	Namespace string
	Pool      string
	Location  string
}

ServerlessPoolMember describes a serverless pool option.

Directories

Path Synopsis
Package builders provides common interfaces and helpers for MCP tool builders.
Package builders provides common interfaces and helpers for MCP tool builders.
kafka
Package kafka provides Kafka MCP tool builders.
Package kafka provides Kafka MCP tool builders.
pulsar
Package pulsar provides MCP tool builders for Pulsar admin operations.
Package pulsar provides MCP tool builders for Pulsar admin operations.
internal
context
Package context provides internal context helpers for MCP sessions.
Package context provides internal context helpers for MCP sessions.
Package pftools provides Pulsar Functions tooling for MCP.
Package pftools provides Pulsar Functions tooling for MCP.
Package session provides context helpers for MCP session management.
Package session provides context helpers for MCP session management.

Jump to

Keyboard shortcuts

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