Documentation
¶
Index ¶
- Constants
- Variables
- func EstimateTokens(s string) int
- type Connector
- type DiscoveryResult
- type MCPDiscoveryEvent
- type MCPDiscoveryStatus
- type MCPDiscoveryStatusFunc
- type RealConnector
- type ToolDef
- type Warning
- func ApplyNoiseControl(items []Warning, mode string) []Warning
- func CheckInstructions(rootDir string, threshold *int) ([]Warning, error)
- func CheckMCPServers(ctx context.Context, cfg *config.ProjectConfig, connector Connector, ...) ([]Warning, error)
- func CheckPolicy(project *config.ProjectConfig) []Warning
Constants ¶
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" CodeWarningNoiseModeInvalid = "WARNING_NOISE_MODE_INVALID" CodePolicySecretInURL = "POLICY_SECRET_IN_URL" CodePolicyCodexHeaderForm = "POLICY_CODEX_HEADER_FORM_UNSUPPORTED" CodePolicyCapabilityMismatch = "POLICY_CLIENT_CAPABILITY_MISMATCH" CodePolicyAgentSpecificOverrides = "POLICY_AGENT_SPECIFIC_OVERRIDES" CodeGeminiTrustFolderFailed = "GEMINI_TRUST_FOLDER_FAILED" )
Warning codes.
const ( SourceInternal = "internal" SourceNetwork = "network" SourceExternalDependency = "external dependency" )
Source labels where a warning originates.
const ( SeverityWarning = "warning" SeverityCritical = "critical" )
Severity labels whether a warning should be considered critical.
const ( // NoiseModeDefault keeps all warnings. NoiseModeDefault = "default" // NoiseModeReduce hides suppressible non-critical warnings. NoiseModeReduce = "reduce" // NoiseModeQuiet suppresses all warning output. NoiseModeQuiet = "quiet" )
Variables ¶
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 ¶
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 ¶
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 Warning ¶
type Warning struct {
Code string
Subject string
Message string
Fix string
Details []string
Source string
Severity string
// NoiseSuppressible marks warnings that can be hidden by conservative noise controls.
// Critical warnings are never suppressed even if this flag is true.
NoiseSuppressible bool
}
Warning represents a warning message.
func ApplyNoiseControl ¶ added in v0.8.0
ApplyNoiseControl applies a conservative noise filter to warning output. mode is the warnings.noise_mode value from config.
func CheckInstructions ¶
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 CheckPolicy ¶ added in v0.8.0
func CheckPolicy(project *config.ProjectConfig) []Warning
CheckPolicy returns static policy warnings that do not require network calls.