session

package
v0.3.7 Latest Latest
Warning

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

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

Documentation

Overview

Package session tracks active MCP client sessions for the bound database.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ClientMeta

type ClientMeta struct {
	Name     string `json:"name"`
	Title    string `json:"title,omitempty"`
	Version  string `json:"version"`
	Protocol string `json:"protocol"`
}

type Option added in v0.3.6

type Option func(*options)

func WithLedger added in v0.3.6

func WithLedger(l *ledger.Ledger) Option

func WithListen added in v0.3.6

func WithListen(addr string) Option

func WithLogger added in v0.3.6

func WithLogger(l *slog.Logger) Option

func WithTransport added in v0.3.6

func WithTransport(t string) Option

type Registry

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

func NewRegistry

func NewRegistry(srv *gomcp.Server, opts ...Option) *Registry

NewRegistry tracks live sessions; the ledger (may be nil) persists their metrics.

func (*Registry) Flush added in v0.3.5

func (r *Registry) Flush(now int64)

Flush appends a checkpoint line for every live session.

func (*Registry) Middleware

func (r *Registry) Middleware(next gomcp.MethodHandler) gomcp.MethodHandler

Middleware records connect/activity/tool-call signals on each inbound request.

func (*Registry) Run added in v0.3.5

func (r *Registry) Run(ctx context.Context, interval time.Duration)

Run flushes the ledger on a ticker and once more on shutdown.

func (*Registry) Snapshot

func (r *Registry) Snapshot() []SessionInfo

Snapshot returns one SessionInfo per live SDK session, pruning stale entries.

type SessionInfo

type SessionInfo struct {
	ID             string     `json:"id"`
	Client         ClientMeta `json:"client_meta"`
	Transport      string     `json:"transport"`
	Listen         string     `json:"listen,omitempty"`
	ConnectedAt    int64      `json:"connected_at"`
	LastActivity   int64      `json:"last_activity"`
	CountToolCalls int64      `json:"count_tool_calls"`
}

Jump to

Keyboard shortcuts

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