builtin

package
v1.2.0 Latest Latest
Warning

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

Go to latest
Published: May 24, 2026 License: MIT Imports: 14 Imported by: 0

Documentation

Overview

Package builtin provides ready-to-register MCP tools and resources.

The pure tools (Calculator, FileRead, ListDirectory) and the pure resources (Config, Metrics, System) have no dependency on the HyperServe server. Server-aware tools and resources live in server_tools.go and server_resources.go; they need *server.Server.

File tools are always sandboxed: NewFileReadTool and NewListDirectoryTool require a non-empty rootDir and return an error otherwise. There is no unsandboxed fallback. Callers that enable WithMCPBuiltinTools(true) without configuring WithMCPFileToolRoot will see a warn-log and the file tools will not be registered.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CalculatorTool

type CalculatorTool struct{}

CalculatorTool implements an MCP tool for basic arithmetic.

func NewCalculatorTool

func NewCalculatorTool() *CalculatorTool

NewCalculatorTool returns a CalculatorTool.

func (*CalculatorTool) Description

func (t *CalculatorTool) Description() string

func (*CalculatorTool) Execute

func (t *CalculatorTool) Execute(params map[string]any) (any, error)

func (*CalculatorTool) Name

func (t *CalculatorTool) Name() string

func (*CalculatorTool) Schema

func (t *CalculatorTool) Schema() map[string]any

type ConfigResource

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

ConfigResource wraps a *server.ServerOptions for read-only exposure.

func NewConfigResource

func NewConfigResource(options *server.ServerOptions) *ConfigResource

NewConfigResource creates a ConfigResource.

func (*ConfigResource) Description

func (r *ConfigResource) Description() string

func (*ConfigResource) List

func (r *ConfigResource) List() ([]string, error)

func (*ConfigResource) MimeType

func (r *ConfigResource) MimeType() string

func (*ConfigResource) Name

func (r *ConfigResource) Name() string

func (*ConfigResource) Read

func (r *ConfigResource) Read() (any, error)

func (*ConfigResource) URI

func (r *ConfigResource) URI() string

type DevGuideTool

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

DevGuideTool surfaces a short reference about the available developer tools.

func NewDevGuideTool

func NewDevGuideTool(srv *server.Server) *DevGuideTool

NewDevGuideTool creates a DevGuideTool.

func (*DevGuideTool) Description

func (t *DevGuideTool) Description() string

func (*DevGuideTool) Execute

func (t *DevGuideTool) Execute(params map[string]any) (any, error)

func (*DevGuideTool) Name

func (t *DevGuideTool) Name() string

func (*DevGuideTool) Schema

func (t *DevGuideTool) Schema() map[string]any

type FileReadTool

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

FileReadTool implements an MCP tool that reads files from a sandboxed root.

func NewFileReadTool

func NewFileReadTool(rootDir string) (*FileReadTool, error)

NewFileReadTool creates a FileReadTool sandboxed to rootDir. Returns an error when rootDir is empty: the unsandboxed fallback that previously existed allowed arbitrary file reads with the process UID and is intentionally not reachable.

func (*FileReadTool) Description

func (t *FileReadTool) Description() string

func (*FileReadTool) Execute

func (t *FileReadTool) Execute(params map[string]any) (any, error)

func (*FileReadTool) Name

func (t *FileReadTool) Name() string

func (*FileReadTool) Schema

func (t *FileReadTool) Schema() map[string]any

type ListDirectoryTool

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

ListDirectoryTool implements an MCP tool that lists directory contents within a sandboxed root.

func NewListDirectoryTool

func NewListDirectoryTool(rootDir string) (*ListDirectoryTool, error)

NewListDirectoryTool creates a ListDirectoryTool sandboxed to rootDir. Returns an error when rootDir is empty (see NewFileReadTool).

func (*ListDirectoryTool) Description

func (t *ListDirectoryTool) Description() string

func (*ListDirectoryTool) Execute

func (t *ListDirectoryTool) Execute(params map[string]any) (any, error)

func (*ListDirectoryTool) Name

func (t *ListDirectoryTool) Name() string

func (*ListDirectoryTool) Schema

func (t *ListDirectoryTool) Schema() map[string]any

type MetricsResource

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

MetricsResource exposes server metrics as JSON.

func NewMetricsResource

func NewMetricsResource(srv *server.Server) *MetricsResource

NewMetricsResource creates a MetricsResource.

func (*MetricsResource) Description

func (r *MetricsResource) Description() string

func (*MetricsResource) List

func (r *MetricsResource) List() ([]string, error)

func (*MetricsResource) MimeType

func (r *MetricsResource) MimeType() string

func (*MetricsResource) Name

func (r *MetricsResource) Name() string

func (*MetricsResource) Read

func (r *MetricsResource) Read() (any, error)

func (*MetricsResource) URI

func (r *MetricsResource) URI() string

type RouteInspectorTool

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

RouteInspectorTool provides route introspection for development.

func NewRouteInspectorTool

func NewRouteInspectorTool(srv *server.Server) *RouteInspectorTool

NewRouteInspectorTool creates a RouteInspectorTool.

func (*RouteInspectorTool) Description

func (t *RouteInspectorTool) Description() string

func (*RouteInspectorTool) Execute

func (t *RouteInspectorTool) Execute(params map[string]any) (any, error)

func (*RouteInspectorTool) Name

func (t *RouteInspectorTool) Name() string

func (*RouteInspectorTool) Schema

func (t *RouteInspectorTool) Schema() map[string]any

type RouteListResource

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

RouteListResource provides a structured list of registered routes.

func NewRouteListResource

func NewRouteListResource(srv *server.Server) *RouteListResource

NewRouteListResource creates a RouteListResource.

func (*RouteListResource) Description

func (r *RouteListResource) Description() string

func (*RouteListResource) List

func (r *RouteListResource) List() ([]string, error)

func (*RouteListResource) MimeType

func (r *RouteListResource) MimeType() string

func (*RouteListResource) Name

func (r *RouteListResource) Name() string

func (*RouteListResource) Read

func (r *RouteListResource) Read() (any, error)

func (*RouteListResource) URI

func (r *RouteListResource) URI() string

type ServerConfigResource

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

ServerConfigResource exposes a sanitized snapshot of server configuration.

func NewServerConfigResource

func NewServerConfigResource(srv *server.Server) *ServerConfigResource

NewServerConfigResource creates a ServerConfigResource.

func (*ServerConfigResource) Description

func (r *ServerConfigResource) Description() string

func (*ServerConfigResource) List

func (r *ServerConfigResource) List() ([]string, error)

func (*ServerConfigResource) MimeType

func (r *ServerConfigResource) MimeType() string

func (*ServerConfigResource) Name

func (r *ServerConfigResource) Name() string

func (*ServerConfigResource) Read

func (r *ServerConfigResource) Read() (any, error)

func (*ServerConfigResource) URI

func (r *ServerConfigResource) URI() string

type ServerControlTool

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

ServerControlTool provides server lifecycle management for development.

func NewServerControlTool

func NewServerControlTool(srv *server.Server) *ServerControlTool

NewServerControlTool creates a ServerControlTool.

func (*ServerControlTool) Description

func (t *ServerControlTool) Description() string

func (*ServerControlTool) Execute

func (t *ServerControlTool) Execute(params map[string]any) (any, error)

func (*ServerControlTool) Name

func (t *ServerControlTool) Name() string

func (*ServerControlTool) Schema

func (t *ServerControlTool) Schema() map[string]any

type ServerHealthResource

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

ServerHealthResource exposes a snapshot of server health.

func NewServerHealthResource

func NewServerHealthResource(srv *server.Server) *ServerHealthResource

NewServerHealthResource creates a ServerHealthResource.

func (*ServerHealthResource) Description

func (r *ServerHealthResource) Description() string

func (*ServerHealthResource) List

func (r *ServerHealthResource) List() ([]string, error)

func (*ServerHealthResource) MimeType

func (r *ServerHealthResource) MimeType() string

func (*ServerHealthResource) Name

func (r *ServerHealthResource) Name() string

func (*ServerHealthResource) Read

func (r *ServerHealthResource) Read() (any, error)

func (*ServerHealthResource) URI

func (r *ServerHealthResource) URI() string

type ServerLogResource

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

ServerLogResource buffers recent log entries for retrieval via MCP. It implements slog.Handler so it can be slotted into the logging chain.

func NewServerLogResource

func NewServerLogResource(maxSize int) *ServerLogResource

NewServerLogResource creates a ServerLogResource with the given buffer size. A non-positive size defaults to 100.

func (*ServerLogResource) Description

func (r *ServerLogResource) Description() string

func (*ServerLogResource) Enabled

func (r *ServerLogResource) Enabled(ctx context.Context, level slog.Level) bool

func (*ServerLogResource) Handle

func (r *ServerLogResource) Handle(ctx context.Context, record slog.Record) error

Handle implements slog.Handler so the resource can capture log records.

func (*ServerLogResource) List

func (r *ServerLogResource) List() ([]string, error)

func (*ServerLogResource) MimeType

func (r *ServerLogResource) MimeType() string

func (*ServerLogResource) Name

func (r *ServerLogResource) Name() string

func (*ServerLogResource) Read

func (r *ServerLogResource) Read() (any, error)

func (*ServerLogResource) URI

func (r *ServerLogResource) URI() string

func (*ServerLogResource) WithAttrs

func (r *ServerLogResource) WithAttrs(attrs []slog.Attr) slog.Handler

func (*ServerLogResource) WithGroup

func (r *ServerLogResource) WithGroup(name string) slog.Handler

type StreamingLogResource

type StreamingLogResource struct {
	*ServerLogResource
}

StreamingLogResource is a ServerLogResource exposed at a different URI to distinguish "stream" semantics (intended for the dev workflow) from the generic "recent" view.

func (*StreamingLogResource) Description

func (r *StreamingLogResource) Description() string

func (*StreamingLogResource) Name

func (r *StreamingLogResource) Name() string

func (*StreamingLogResource) URI

func (r *StreamingLogResource) URI() string

type SystemResource

type SystemResource struct{}

SystemResource exposes Go runtime information (no server dependency).

func NewSystemResource

func NewSystemResource() *SystemResource

NewSystemResource creates a SystemResource.

func (*SystemResource) Description

func (r *SystemResource) Description() string

func (*SystemResource) List

func (r *SystemResource) List() ([]string, error)

func (*SystemResource) MimeType

func (r *SystemResource) MimeType() string

func (*SystemResource) Name

func (r *SystemResource) Name() string

func (*SystemResource) Read

func (r *SystemResource) Read() (any, error)

func (*SystemResource) URI

func (r *SystemResource) URI() string

Jump to

Keyboard shortcuts

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