config.toml
This page provides a comprehensive reference for the config.toml configuration file used by the Wassette MCP server. This file is optional and provides defaults for server behavior, including component storage locations, secrets directory, and environment variables.
Location
- Linux/macOS:
$XDG_CONFIG_HOME/wassette/config.toml(typically~/.config/wassette/config.toml) - Windows:
%APPDATA%\wassette\config.toml - Custom: Set via
WASSETTE_CONFIG_FILEenvironment variable
Configuration Priority
Configuration values are merged with the following precedence (highest to lowest):
- Command-line options (e.g.,
--plugin-dir) - Environment variables prefixed with
WASSETTE_ - Configuration file (
config.toml)
Schema
# Directory where WebAssembly components are stored
# Default: $XDG_DATA_HOME/wassette/components (~/.local/share/wassette/components)
plugin_dir = "/path/to/components"
# Directory where secrets are stored (API keys, credentials, etc.)
# Default: $XDG_CONFIG_HOME/wassette/secrets (~/.config/wassette/secrets)
secrets_dir = "/path/to/secrets"
# Bind address for HTTP-based transports (SSE and StreamableHttp)
# Default: 127.0.0.1:9001
bind_address = "0.0.0.0:8080"
# Environment variables to be made available to components
# These are global defaults and can be overridden per-component in policy files
[environment_vars]
API_KEY = "your_api_key"
LOG_LEVEL = "info"
DATABASE_URL = "postgresql://localhost/mydb"
Fields
plugin_dir
- Type: String (path)
- Default: Platform-specific data directory
- Description: Directory where loaded WebAssembly components are stored. Components loaded via
wassette component loador the MCP interface are saved here.
secrets_dir
- Type: String (path)
- Default: Platform-specific config directory
- Description: Directory for storing sensitive data like API keys and credentials. This directory should have restricted permissions (e.g.,
chmod 600).
bind_address
- Type: String
- Default:
127.0.0.1:9001 - Description: Bind address for HTTP-based transports (SSE and StreamableHttp). The address should be in the format
host:port. Use0.0.0.0to bind to all network interfaces, or a specific IP address to bind to a particular interface. This setting is ignored when using stdio transport.
environment_vars
- Type: Table/Map
- Default: Empty
- Description: Key-value pairs of environment variables to make available to components. Note that components must explicitly request access to environment variables via their policy files. See the Environment Variables reference for detailed usage patterns and examples.
Example Configurations
Minimal Configuration:
# Use all defaults
Development Configuration:
plugin_dir = "./dev-components"
secrets_dir = "./dev-secrets"
bind_address = "127.0.0.1:9001"
[environment_vars]
LOG_LEVEL = "debug"
RUST_LOG = "trace"
Production Configuration:
plugin_dir = "/opt/wassette/components"
secrets_dir = "/opt/wassette/secrets"
bind_address = "0.0.0.0:8080"
[environment_vars]
LOG_LEVEL = "info"
NODE_ENV = "production"
Environment Variables
You can override any configuration value using environment variables with the WASSETTE_ prefix:
# Override plugin directory
export WASSETTE_PLUGIN_DIR=/custom/components
# Override bind address
export WASSETTE_BIND_ADDRESS=0.0.0.0:8080
# Override config file location
export WASSETTE_CONFIG_FILE=/etc/wassette/config.toml
# Start server
wassette serve --sse
See Also
- CLI Reference - Command-line usage and options
- Permissions Guide - Working with permissions
- Docker Deployment - Detailed Docker setup