toolhive

module
v0.3.2 Latest Latest
Warning

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

Go to latest
Published: Sep 17, 2025 License: Apache-2.0

README ΒΆ

ToolHive Studio logo ToolHive wordmark ToolHive mascot

Release Build status Coverage Status Star on GitHub Discord

ToolHive - simplify and secure MCP servers

Run any Model Context Protocol (MCP) server β€” securely, instantly, anywhere.

ToolHive is the easiest way to discover, deploy, and manage MCP servers. Launch any MCP server in a locked-down container with a single command. No manual setup, no security headaches, no runtime hassles.

ToolHive diagram

Why ToolHive?

  • Instant deployment: Start any MCP server with one click or command, using Docker or Kubernetes.
  • Secure by default: Every server runs in an isolated container with only the permissions it needs. Secrets are managed securely, never in plaintext.
  • Works everywhere: Use the UI and CLI for local development, or the Kubernetes Operator for production and scale.
  • Seamless integration: ToolHive auto-configures popular clients like GitHub Copilot, Cursor, and more.

ToolHive is available as a GUI desktop app, CLI, and Kubernetes Operator.


ToolHive sources diagram

Contributing

We welcome contributions and feedback from the community!

If you have ideas, suggestions, or want to get involved, check out our contributing guide or open an issue. Join us in making ToolHive even better!

Contribute to the CLI, API, and Kubernetes Operator:

Contribute to the desktop UI:

Contribute to the documentation:


License

This project is licensed under the Apache 2.0 License.

Directories ΒΆ

Path Synopsis
cmd
help command
Package main is the entry point for the ToolHive CLI Doc Generator.
Package main is the entry point for the ToolHive CLI Doc Generator.
regup command
Package main is the entry point for the regup command
Package main is the entry point for the regup command
regup/app
Package app provides the entry point for the regup command-line application.
Package app provides the entry point for the regup command-line application.
thv command
Package main is the entry point for the ToolHive CLI.
Package main is the entry point for the ToolHive CLI.
thv-operator command
Package main is the entry point for the ToolHive Kubernetes Operator.
Package main is the entry point for the ToolHive Kubernetes Operator.
thv-operator/api/v1alpha1
Package v1alpha1 contains API Schema definitions for the toolhive v1alpha1 API group +kubebuilder:object:generate=true +groupName=toolhive.stacklok.dev
Package v1alpha1 contains API Schema definitions for the toolhive v1alpha1 API group +kubebuilder:object:generate=true +groupName=toolhive.stacklok.dev
thv-operator/controllers
Package controllers contains the reconciliation logic for the MCPServer custom resource.
Package controllers contains the reconciliation logic for the MCPServer custom resource.
thv-operator/pkg/filtering
Package filtering provides server filtering capabilities for MCPRegistry resources.
Package filtering provides server filtering capabilities for MCPRegistry resources.
thv-operator/pkg/sources
Package sources provides interfaces and implementations for retrieving MCP registry data from various external sources.
Package sources provides interfaces and implementations for retrieving MCP registry data from various external sources.
thv-operator/pkg/sync
Package sync provides synchronization management interfaces and implementations for MCPRegistry resources in the ToolHive operator.
Package sync provides synchronization management interfaces and implementations for MCPRegistry resources in the ToolHive operator.
thv-proxyrunner command
Package main is the entry point for the ToolHive ProxyRunner.
Package main is the entry point for the ToolHive ProxyRunner.
thv-proxyrunner/app
Package app provides the entry point for the toolhive command-line application.
Package app provides the entry point for the toolhive command-line application.
thv-registry-api command
Package docs provides OpenAPI documentation for the ToolHive Registry API
Package docs provides OpenAPI documentation for the ToolHive Registry API
thv-registry-api/api/v1
Package v1 provides the REST API handlers for MCP Registry access.
Package v1 provides the REST API handlers for MCP Registry access.
thv-registry-api/app
Package app provides the entry point for the ToolHive Registry API application.
Package app provides the entry point for the ToolHive Registry API application.
thv-registry-api/internal/service
Package service provides the business logic for the MCP registry API
Package service provides the business logic for the MCP registry API
thv-registry-api/internal/service/mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
thv/app
Package app provides the entry point for the toolhive command-line application.
Package app provides the entry point for the toolhive command-line application.
thv/app/inspector
Package inspector contains definitions for the inspector command.
Package inspector contains definitions for the inspector command.
thv/app/ui
Package ui provides terminal UI helpers for the ToolHive CLI.
Package ui provides terminal UI helpers for the ToolHive CLI.
docs
pkg
api
Package api contains the REST API for ToolHive.
Package api contains the REST API for ToolHive.
api/v1
Package v1 contains the V1 API for ToolHive.
Package v1 contains the V1 API for ToolHive.
audit
Package audit provides audit logging functionality for ToolHive.
Package audit provides audit logging functionality for ToolHive.
auth
Package auth provides authentication and authorization utilities.
Package auth provides authentication and authorization utilities.
auth/discovery
Package discovery provides authentication discovery utilities for detecting authentication requirements from remote servers.
Package discovery provides authentication discovery utilities for detecting authentication requirements from remote servers.
auth/oauth
Package oauth provides OAuth 2.0 and OIDC authentication functionality.
Package oauth provides OAuth 2.0 and OIDC authentication functionality.
authz
Package authz provides authorization utilities using Cedar policies.
Package authz provides authorization utilities using Cedar policies.
certs
Package certs provides utilities for certificate validation and handling.
Package certs provides utilities for certificate validation and handling.
cli
Package cli provides utility functions specific to the CLI that we want to test more thoroughly.
Package cli provides utility functions specific to the CLI that we want to test more thoroughly.
client
Package client provides utilities for managing client configurations and interacting with MCP servers.
Package client provides utilities for managing client configurations and interacting with MCP servers.
client/mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
config
Package config contains the definition of the application config structure and logic required to load and update it.
Package config contains the definition of the application config structure and logic required to load and update it.
config/mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
container
Package container provides utilities for managing containers, including creating, starting, stopping, and monitoring containers.
Package container provides utilities for managing containers, including creating, starting, stopping, and monitoring containers.
container/docker
Package docker provides Docker-specific implementation of container runtime, including creating, starting, stopping, and monitoring containers.
Package docker provides Docker-specific implementation of container runtime, including creating, starting, stopping, and monitoring containers.
container/docker/sdk
Package sdk provides a factory method for creating a Docker client.
Package sdk provides a factory method for creating a Docker client.
container/images
Package images handles container image management operations.
Package images handles container image management operations.
container/kubernetes
Package kubernetes provides a client for the Kubernetes runtime including creating, starting, stopping, and retrieving container information.
Package kubernetes provides a client for the Kubernetes runtime including creating, starting, stopping, and retrieving container information.
container/kubernetes/mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
container/runtime
Package runtime provides interfaces and types for container runtimes, including creating, starting, stopping, and monitoring containers.
Package runtime provides interfaces and types for container runtimes, including creating, starting, stopping, and monitoring containers.
container/runtime/mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
container/templates
Package templates provides utilities for generating Dockerfile templates based on different transport types (uvx, npx).
Package templates provides utilities for generating Dockerfile templates based on different transport types (uvx, npx).
container/verifier
Package verifier provides a client for verifying artifacts using sigstore
Package verifier provides a client for verifying artifacts using sigstore
core
Package core provides the core domain model for the ToolHive system.
Package core provides the core domain model for the ToolHive system.
env
Package env provides abstractions for environment variable access to enable dependency injection and testing isolation.
Package env provides abstractions for environment variable access to enable dependency injection and testing isolation.
env/mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
environment
Package environment provides utilities for handling environment variables and environment-related operations for containers.
Package environment provides utilities for handling environment variables and environment-related operations for containers.
errors
Package errors provides error types and utilities for the toolhive application.
Package errors provides error types and utilities for the toolhive application.
groups
Package groups provides functionality for managing logical groupings of MCP servers.
Package groups provides functionality for managing logical groupings of MCP servers.
groups/mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
healthcheck
Package healthcheck provides common healthcheck functionality for ToolHive proxies.
Package healthcheck provides common healthcheck functionality for ToolHive proxies.
ignore
Package ignore provides functionality for processing .thvignore files to filter bind mount contents using tmpfs overlays.
Package ignore provides functionality for processing .thvignore files to filter bind mount contents using tmpfs overlays.
labels
Package labels provides utilities for managing container labels used by the toolhive application.
Package labels provides utilities for managing container labels used by the toolhive application.
lockfile
Package lockfile provides utilities for managing file locks and cleanup.
Package lockfile provides utilities for managing file locks and cleanup.
logger
Package logger provides a logging capability for toolhive for running locally as a CLI and in Kubernetes
Package logger provides a logging capability for toolhive for running locally as a CLI and in Kubernetes
mcp
Package mcp provides MCP (Model Context Protocol) parsing utilities and middleware.
Package mcp provides MCP (Model Context Protocol) parsing utilities and middleware.
mcp/server
Package server provides the MCP (Model Context Protocol) server implementation for ToolHive.
Package server provides the MCP (Model Context Protocol) server implementation for ToolHive.
migration
Package migration handles any migrations needed to maintain compatibility
Package migration handles any migrations needed to maintain compatibility
networking
Package networking provides utilities for network operations, such as finding available ports and checking network connectivity.
Package networking provides utilities for network operations, such as finding available ports and checking network connectivity.
operator/accessors
Package accessors provides accessor functions for the ToolHive operator
Package accessors provides accessor functions for the ToolHive operator
operator/telemetry
Package telemetry provides telemetry functionality for the ToolHive operator.
Package telemetry provides telemetry functionality for the ToolHive operator.
permissions
Package permissions provides utilities for managing container permissions and permission profiles for the toolhive application.
Package permissions provides utilities for managing container permissions and permission profiles for the toolhive application.
process
Package process provides utilities for managing process-related operations, such as PID file handling and process management.
Package process provides utilities for managing process-related operations, such as PID file handling and process management.
registry
Package registry provides access to the MCP server registry
Package registry provides access to the MCP server registry
registry/mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
runner
Package runner provides functionality for running MCP servers
Package runner provides functionality for running MCP servers
runner/retriever
Package retriever contains logic for fetching or building MCP servers.
Package retriever contains logic for fetching or building MCP servers.
secrets
Package secrets contains the secrets management logic for ToolHive.
Package secrets contains the secrets management logic for ToolHive.
secrets/aes
Package aes contains functions for encrypting and decrypting data using AES-GCM
Package aes contains functions for encrypting and decrypting data using AES-GCM
secrets/clients
Package clients contains code for connecting to secret provider APIs.
Package clients contains code for connecting to secret provider APIs.
secrets/clients/mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
secrets/keyring
Package keyring provides a composite keyring provider that supports multiple backends.
Package keyring provides a composite keyring provider that supports multiple backends.
secrets/mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
state
Package state provides functionality for storing and retrieving runner state across different environments (local filesystem, Kubernetes, etc.)
Package state provides functionality for storing and retrieving runner state across different environments (local filesystem, Kubernetes, etc.)
state/mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
telemetry
Package telemetry provides OpenTelemetry instrumentation for ToolHive MCP server proxies.
Package telemetry provides OpenTelemetry instrumentation for ToolHive MCP server proxies.
telemetry/providers
Package providers contains telemetry provider implementations and builder logic
Package providers contains telemetry provider implementations and builder logic
telemetry/providers/otlp
Package otlp provides OpenTelemetry Protocol (OTLP) provider implementations
Package otlp provides OpenTelemetry Protocol (OTLP) provider implementations
telemetry/providers/prometheus
Package prometheus provides Prometheus metric exporter implementation
Package prometheus provides Prometheus metric exporter implementation
transport
Package transport provides utilities for handling different transport modes for communication between the client and MCP server.
Package transport provides utilities for handling different transport modes for communication between the client and MCP server.
transport/errors
Package errors provides error types and constants for the transport package.
Package errors provides error types and constants for the transport package.
transport/proxy
Package proxy contains code for managing proxy processes.
Package proxy contains code for managing proxy processes.
transport/proxy/httpsse
Package httpsse provides an HTTP proxy implementation for Server-Sent Events (SSE) used in communication between the client and MCP server.
Package httpsse provides an HTTP proxy implementation for Server-Sent Events (SSE) used in communication between the client and MCP server.
transport/proxy/streamable
Package streamable provides a streamable HTTP proxy for MCP servers.
Package streamable provides a streamable HTTP proxy for MCP servers.
transport/proxy/transparent
Package transparent provides MCP ping functionality for transparent proxies.
Package transparent provides MCP ping functionality for transparent proxies.
transport/session
Package session provides a session manager with TTL cleanup.
Package session provides a session manager with TTL cleanup.
transport/ssecommon
Package ssecommon provides common types and utilities for Server-Sent Events (SSE) used in communication between the client and MCP server.
Package ssecommon provides common types and utilities for Server-Sent Events (SSE) used in communication between the client and MCP server.
transport/streamable
Package streamable provides common types and utilities for Streamable HTTP connections used in communication between the client and MCP server.
Package streamable provides common types and utilities for Streamable HTTP connections used in communication between the client and MCP server.
transport/tunnel/ngrok
Package ngrok provides an implementation of the TunnelProvider interface using ngrok.
Package ngrok provides an implementation of the TunnelProvider interface using ngrok.
transport/types
Package types provides common types and interfaces for the transport package used in communication between the client and MCP server.
Package types provides common types and interfaces for the transport package used in communication between the client and MCP server.
transport/types/mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
updates
Package updates contains logic for checking if an update is available for ToolHive.
Package updates contains logic for checking if an update is available for ToolHive.
validation
Package validation provides functions for validating input data.
Package validation provides functions for validating input data.
versions
Package versions provides version information for the ToolHive application.
Package versions provides version information for the ToolHive application.
workloads
Package workloads contains high-level logic for managing the lifecycle of ToolHive-managed containers.
Package workloads contains high-level logic for managing the lifecycle of ToolHive-managed containers.
workloads/mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
workloads/statuses
Package statuses provides an interface and implementation for managing workload statuses.
Package statuses provides an interface and implementation for managing workload statuses.
workloads/statuses/mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
workloads/types
Package types contains types and validation functions for workloads in ToolHive.
Package types contains types and validation functions for workloads in ToolHive.
test
e2e
Package e2e provides end-to-end testing utilities for ToolHive.
Package e2e provides end-to-end testing utilities for ToolHive.

Jump to

Keyboard shortcuts

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