stackkitmcp

package
v0.46.1 Latest Latest
Warning

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

Go to latest
Published: Sep 24, 2026 License: Apache-2.0 Imports: 40 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MCPTokenEnv     = "STACKKIT_MCP_TOKEN"
	MCPTokenFileEnv = "STACKKIT_MCP_TOKEN_FILE"
)

Dedicated MCP credential sources. The token file lets an installer mint the credential without placing it on a command line or in a process listing.

View Source
const DefaultLocalServerURL = "http://localhost:8082"

DefaultLocalServerURL is the loopback-only default for a local stackkit-server when STACKKITS_SERVER_URL and --server-url are unset. Standard Mode binds MCP and the API to the developer machine; it is not a hosted production origin.

Variables

This section is empty.

Functions

func EnvBoolValue

func EnvBoolValue(value string) bool

EnvBoolValue parses common truthy environment values.

func FirstNonEmpty

func FirstNonEmpty(values ...string) string

FirstNonEmpty returns the first non-empty value after trimming whitespace.

func IsLoopbackListenAddr

func IsLoopbackListenAddr(addr string) bool

IsLoopbackListenAddr reports whether an HTTP listen address is loopback-only.

func JSONResult

func JSONResult(value any) *mcp.CallToolResult

func NewHTTPServer

func NewHTTPServer(addr string, handler http.Handler) *http.Server

NewHTTPServer creates a hardened Streamable HTTP server. WriteTimeout stays disabled because MCP Streamable HTTP may keep responses open.

func ParseModes

func ParseModes(raw string) map[string]bool

ParseModes parses a comma-separated MCP mode list.

func RequireMCPToken

func RequireMCPToken(token string, next http.Handler) http.Handler

RequireMCPToken admits only requests that present the configured MCP token as a bearer credential or X-StackKit-MCP-Token value. It fails closed: with no configured token every request is denied with configuration guidance.

func ResolveMCPToken added in v0.45.0

func ResolveMCPToken(flagValue string) (string, error)

ResolveMCPToken returns the dedicated MCP token from the explicit flag value, STACKKIT_MCP_TOKEN, or the file named by STACKKIT_MCP_TOKEN_FILE, in that order. An empty result means no token is configured. A configured token file that cannot be read or is empty is an error, never a silent fallback.

func ShellQuote

func ShellQuote(value string) string

func SiblingStackkitBinary

func SiblingStackkitBinary() (string, error)

SiblingStackkitBinary returns the packaged CLI beside stackkit-server or stackkit-mcp, through the shared exact-build local process binding.

func StringMapValue

func StringMapValue(values map[string]any, key string) string

func TextResult

func TextResult(text string) *mcp.CallToolResult

Types

type App

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

App owns the StackKits MCP registration shared by stackkit-mcp and stackkit-server.

func New

func New(opts Options) *App

New creates a configured StackKits MCP app.

func (*App) OpenMCP

func (a *App) OpenMCP() map[string]any

OpenMCP returns agent-native discovery metadata for the local MCP surface.

func (*App) OpenMCPJSON

func (a *App) OpenMCPJSON() []byte

OpenMCPJSON returns pretty JSON discovery metadata.

func (*App) ProtectedStreamableHTTPHandler

func (a *App) ProtectedStreamableHTTPHandler() http.Handler

ProtectedStreamableHTTPHandler requires the dedicated MCP token on every request. Without a configured token it denies every request; it never falls back to an open endpoint or to another credential.

func (*App) Server

func (a *App) Server() *mcp.Server

Server builds a Model Context Protocol server with the configured modes.

func (*App) StreamableHTTPHandler

func (a *App) StreamableHTTPHandler() http.Handler

StreamableHTTPHandler returns the stateless MCP 2026-07-28 Streamable HTTP handler. Each POST is served from that request alone: the SDK issues no Mcp-Session-Id, ignores one a client sends, and answers GET and DELETE with 405. Clients on older protocol versions are still served, one request at a time, with SDK-synthesized initialization defaults.

type Options

type Options struct {
	Modes      map[string]bool
	ServerURL  string
	APIKey     string
	Transport  string
	MCPToken   string
	AllowWrite bool
	BaseDir    string
	// PinBaseDir confines every tool to BaseDir. A remote caller then cannot
	// point base_dir at other paths of the host or container.
	PinBaseDir bool
	Binary     string
	Version    string
	GitCommit  string
}

Options configures the StackKits MCP server surface.

Jump to

Keyboard shortcuts

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