tools

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Jul 13, 2026 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Overview

Package tools defines the MCP tools exposed by the server and their shared registration, validation, and error-handling helpers.

Index

Constants

View Source
const (
	ToolNameManageEntities    = "manage-entities"
	ToolNameExecuteAutomation = "execute-automation"
	ToolNameGetResource       = "get-resource"
	ToolNameSearchEntities    = "search-entities"
)

Tool name constants identify the MCP tools exposed by the server.

Variables

This section is empty.

Functions

func NewDateAwareHandler added in v0.3.1

func NewDateAwareHandler[TParams, TResult any](handler func(ctx context.Context, req mcp.CallToolRequest, args TParams) (TResult, error), wrapUntrusted bool) server.ToolHandlerFunc

NewDateAwareHandler date-processes the result; when wrapUntrusted is true, user-generated fields are wrapped in boundary tags.

func WithValidation added in v0.3.1

func WithValidation[TParams, TResult any](tool Tool[TParams, TResult]) server.ToolHandlerFunc

WithValidation runs ValidateParams then ValidatePermissions before Handle, then date-processes the result.

Types

type BaseTool added in v0.3.1

type BaseTool interface {
	Name() string
	Definition() mcp.Tool
	Handler() server.ToolHandlerFunc
}

BaseTool is the non-generic interface for tool registration

type Registry

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

Registry manages tool registration

func NewRegistry

func NewRegistry() *Registry

NewRegistry creates an empty tool registry.

func (*Registry) Register

func (r *Registry) Register(tool BaseTool)

Register adds a tool to the registry.

func (*Registry) RegisterAll

func (r *Registry) RegisterAll(s *server.MCPServer)

RegisterAll registers every tool in the registry with the given MCP server.

type Tool

type Tool[TParams, TResult any] interface {
	BaseTool
	Handle(ctx context.Context, request mcp.CallToolRequest, params TParams) (TResult, error)
	ValidateParams(params *TParams) error
	ValidatePermissions(ctx context.Context, params TParams) error
}

Tool represents an MCP tool with typed parameters

type ToolError added in v0.3.1

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

ToolError represents a tool error with optional context.

func NewToolError added in v0.3.1

func NewToolError(message string) *ToolError

NewToolError creates a new tool error.

func NewToolErrorf added in v0.3.1

func NewToolErrorf(format string, args ...any) *ToolError

NewToolErrorf creates a new tool error with formatting.

func (*ToolError) API added in v0.3.1

func (e *ToolError) API(resp *http.Response) *ToolError

API attaches resp's body to the error; consumes and closes it.

func (*ToolError) Cause added in v0.3.1

func (e *ToolError) Cause(err error) *ToolError

Cause adds the underlying error

func (*ToolError) Error added in v0.3.1

func (e *ToolError) Error() string

Error implements the error interface

func (*ToolError) Hint added in v0.3.1

func (e *ToolError) Hint(hint string) *ToolError

Hint adds a hint message

func (*ToolError) Hintf added in v0.3.1

func (e *ToolError) Hintf(format string, args ...any) *ToolError

Hintf adds a formatted hint message

func (*ToolError) Schema added in v0.3.1

func (e *ToolError) Schema(entityType, operation string) *ToolError

Schema adds a hint pointing to the schema resource

func (*ToolError) ToMap added in v0.3.1

func (e *ToolError) ToMap() map[string]any

ToMap returns the error as a structured map for JSON serialization

func (*ToolError) Unwrap added in v0.3.1

func (e *ToolError) Unwrap() error

Unwrap returns the underlying cause for errors.Is/As support

type UntrustedDataReporter added in v1.0.0

type UntrustedDataReporter interface {
	HasUntrustedData() bool
}

UntrustedDataReporter is an optional interface implemented by tools whose responses carry user-generated data from external systems (e.g. TheHive). When implemented and returning true, the middleware wraps designated fields in [UNTRUSTED_DATA] boundary tags so LLM clients can distinguish data from instructions.

Directories

Path Synopsis
Package execute_automation implements the execute-automation MCP tool for running Cortex analyzers and responders and reading their execution status.
Package execute_automation implements the execute-automation MCP tool for running Cortex analyzers and responders and reading their execution status.
Package manage implements the manage-entities MCP tool, exposing CRUD and workflow operations (create, update, delete, comment, promote, merge, apply-template) over TheHive entities.
Package manage implements the manage-entities MCP tool, exposing CRUD and workflow operations (create, update, delete, comment, promote, merge, apply-template) over TheHive entities.
Package resource implements the get-resource MCP tool that exposes TheHive's hierarchical resources (schemas, metadata, docs, config) to clients.
Package resource implements the get-resource MCP tool that exposes TheHive's hierarchical resources (schemas, metadata, docs, config) to clients.
Package search implements the MCP search tool that queries TheHive entities using the TheHive filter DSL.
Package search implements the MCP search tool that queries TheHive entities using the TheHive filter DSL.

Jump to

Keyboard shortcuts

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