warnings

package
v0.5.7 Latest Latest
Warning

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

Go to latest
Published: Jan 30, 2026 License: MIT Imports: 19 Imported by: 0

Documentation

Index

Constants

View Source
const (
	CodeInstructionsTooLarge     = "INSTRUCTIONS_TOO_LARGE"
	CodeMCPServerUnreachable     = "MCP_SERVER_UNREACHABLE"
	CodeMCPTooManyServers        = "MCP_TOO_MANY_SERVERS_ENABLED"
	CodeMCPTooManyToolsTotal     = "MCP_TOO_MANY_TOOLS_TOTAL"
	CodeMCPServerTooManyTools    = "MCP_SERVER_TOO_MANY_TOOLS"
	CodeMCPToolSchemaBloatTotal  = "MCP_TOOL_SCHEMA_BLOAT_TOTAL"
	CodeMCPToolSchemaBloatServer = "MCP_TOOL_SCHEMA_BLOAT_SERVER"
	CodeMCPToolNameCollision     = "MCP_TOOL_NAME_COLLISION"
)

Warning codes.

Variables

View Source
var NewMCPClientFunc = func(impl *mcp.Implementation, opts *mcp.ClientOptions) mcpClientInterface {
	return &realMCPClient{client: mcp.NewClient(impl, opts)}
}

NewMCPClientFunc is a mockable function for creating MCP clients.

Functions

func EstimateTokens

func EstimateTokens(s string) int

EstimateTokens estimates the token count for a given UTF-8 string using a heuristic. Heuristic: T = max(ceil(B/3), ceil(R/4)) * 1.10 where B is the byte length and R is the rune count.

Types

type Connector

type Connector interface {
	ConnectAndDiscover(ctx context.Context, server projection.ResolvedMCPServer) DiscoveryResult
}

Connector interface for mocking.

type DiscoveryResult

type DiscoveryResult struct {
	ServerID     string
	Tools        []ToolDef
	SchemaTokens int
	Error        error
}

DiscoveryResult contains the results of discovering tools from an MCP server.

type MCPDiscoveryEvent added in v0.5.7

type MCPDiscoveryEvent struct {
	ServerID string
	Status   MCPDiscoveryStatus
	Err      error
}

MCPDiscoveryEvent describes a discovery event for a single MCP server.

type MCPDiscoveryStatus added in v0.5.7

type MCPDiscoveryStatus string

MCPDiscoveryStatus is the status of a discovery event for an MCP server.

const (
	// MCPDiscoveryStatusStart indicates a server discovery has started.
	MCPDiscoveryStatusStart MCPDiscoveryStatus = "start"
	// MCPDiscoveryStatusDone indicates a server discovery completed successfully.
	MCPDiscoveryStatusDone MCPDiscoveryStatus = "done"
	// MCPDiscoveryStatusError indicates a server discovery completed with an error.
	MCPDiscoveryStatusError MCPDiscoveryStatus = "error"
)

type MCPDiscoveryStatusFunc added in v0.5.7

type MCPDiscoveryStatusFunc func(event MCPDiscoveryEvent)

MCPDiscoveryStatusFunc handles a discovery event emitted during MCP server discovery. The function may be invoked concurrently from multiple goroutines.

type RealConnector

type RealConnector struct{}

RealConnector implements Connector using the SDK.

func (*RealConnector) ConnectAndDiscover

func (r *RealConnector) ConnectAndDiscover(ctx context.Context, server projection.ResolvedMCPServer) DiscoveryResult

ConnectAndDiscover connects to an MCP server and discovers its tools.

type ToolDef

type ToolDef struct {
	Name   string
	Tokens int
}

ToolDef represents a discovered tool from an MCP server.

type Warning

type Warning struct {
	Code    string
	Subject string
	Message string
	Fix     string
	Details []string
}

Warning represents a warning message.

func CheckInstructions

func CheckInstructions(rootDir string, threshold *int) ([]Warning, error)

CheckInstructions checks if the combined instruction payload exceeds the threshold. rootDir is the project root directory; threshold is the max token count (nil disables warnings). It returns any warnings and an error if the payload cannot be read.

func CheckMCPServers

func CheckMCPServers(ctx context.Context, cfg *config.ProjectConfig, connector Connector, statusFn MCPDiscoveryStatusFunc) ([]Warning, error)

CheckMCPServers performs discovery on enabled MCP servers and checks against warning thresholds. cfg supplies the configured thresholds; nil thresholds disable the corresponding warnings. statusFn is an optional callback invoked with discovery events; it is safe to pass nil.

func (Warning) String

func (w Warning) String() string

Jump to

Keyboard shortcuts

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