hopmcp

package
v1.7.0 Latest Latest
Warning

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

Go to latest
Published: May 5, 2026 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MaxBytesPerHost    = 64 * 1024 // 64KB per host output
	MaxHostsPerRequest = 50
)

Output limits

Variables

This section is empty.

Functions

func NewHopServer

func NewHopServer(version, cfgPath string, allowExec bool) *mcp.Server

NewHopServer creates and configures an MCP server with all hop tools and resources.

Types

type BuildSSHCommandInput

type BuildSSHCommandInput struct {
	ID       string `json:"id" jsonschema:"Connection ID"`
	Command  string `json:"command,omitempty" jsonschema:"Remote command to include in the SSH command"`
	ForceTTY bool   `json:"force_tty,omitempty" jsonschema:"Force TTY allocation (-t flag)"`
}

BuildSSHCommandInput builds an SSH command string.

type ConnectionInfo

type ConnectionInfo struct {
	ID           string            `json:"id"`
	Host         string            `json:"host"`
	User         string            `json:"user,omitempty"`
	Port         int               `json:"port"`
	Project      string            `json:"project,omitempty"`
	Env          string            `json:"env,omitempty"`
	ProxyJump    string            `json:"proxy_jump,omitempty"`
	ForwardAgent bool              `json:"forward_agent,omitempty"`
	Tags         []string          `json:"tags,omitempty"`
	Options      map[string]string `json:"options,omitempty"`
}

ConnectionInfo is the output representation of a connection. IdentityFile is intentionally omitted for security.

type ExecCommandInput

type ExecCommandInput struct {
	Target   string `json:"target" jsonschema:"Target pattern (group name, project-env, glob, or fuzzy match)"`
	Command  string `json:"command" jsonschema:"Shell command to execute on remote hosts"`
	Tag      string `json:"tag,omitempty" jsonschema:"Filter matched connections by tag"`
	Parallel int    `json:"parallel,omitempty" jsonschema:"Max concurrent connections (default: 10)"`
	Timeout  string `json:"timeout,omitempty" jsonschema:"Command timeout (e.g. 30s, 5m)"`
}

ExecCommandInput executes a command on matched connections.

type GetConnectionInput

type GetConnectionInput struct {
	ID string `json:"id" jsonschema:"Connection ID"`
}

GetConnectionInput retrieves a single connection by ID.

type GetHistoryInput

type GetHistoryInput struct {
	Limit  int    `json:"limit,omitempty" jsonschema:"Maximum entries to return (default: 10)"`
	SortBy string `json:"sort_by,omitempty" jsonschema:"Sort order: recent (default) or frequent"`
}

GetHistoryInput retrieves connection usage history.

type ListConnectionsInput

type ListConnectionsInput struct {
	Project string `json:"project,omitempty" jsonschema:"Filter by project name"`
	Env     string `json:"env,omitempty" jsonschema:"Filter by environment (e.g. prod, staging, dev)"`
	Tag     string `json:"tag,omitempty" jsonschema:"Filter by tag"`
}

ListConnectionsInput filters connections by project, env, or tag.

type ListGroupsInput

type ListGroupsInput struct{}

ListGroupsInput lists all defined groups (no params needed).

type ResolveTargetInput

type ResolveTargetInput struct {
	Target string `json:"target" jsonschema:"Target pattern to resolve (group name, project-env, glob, or fuzzy match)"`
	Tag    string `json:"tag,omitempty" jsonschema:"Filter resolved connections by tag"`
}

ResolveTargetInput resolves a target to connections.

type SearchConnectionsInput

type SearchConnectionsInput struct {
	Query string `json:"query" jsonschema:"Search query (fuzzy matched against IDs, hosts, tags, projects)"`
}

SearchConnectionsInput searches connections by fuzzy query.

Jump to

Keyboard shortcuts

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