Skip to main content
Glama
BearstOzawa

@bearst/lucky-mcp-server

by BearstOzawa

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
LUCKY_DEBUGNoLog request paths to stderr; tokens are not logged
LUCKY_BASE_URLYesLucky admin base URL
LUCKY_OPEN_TOKENYesOpenToken
LUCKY_TIMEOUT_MSNoRequest timeout in milliseconds15000
LUCKY_TLS_VERIFYNoVerify Lucky's TLS certificate. Set `false` for self-signed certstrue
LUCKY_DEFAULT_RULE_KEYNoDefault web listener key for `lucky_expose_service`
LUCKY_DEFAULT_LISTEN_PORTNoDefault web listener port for `lucky_expose_service`
LUCKY_ALLOWED_DOMAIN_SUFFIXNoComma-separated suffixes allowed for writes

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
lucky_statusA

Probe Lucky connectivity, version, modules, and MCP settings. OpenToken is never returned.

lucky_list_web_rulesA

List Lucky web listeners and their reverse-proxy routes in compact form (port, TLS, domains, backends). Use this before exposing a service.

lucky_get_web_ruleB

Get a compact view of one Lucky web listener and its routes by rule key.

lucky_expose_serviceA

Idempotently attach a hostname to an existing Lucky HTTPS/HTTP listener and reverse-proxy it to a backend URL. Reuses the current TLS listener; does not create a new listen port. Domain should be a hostname without http://. Backend should be a full URL such as http://127.0.0.1:3000. If the domain already exists, only the backend (and optional name/auth) is updated.

lucky_unexpose_serviceA

Remove the reverse-proxy route for a hostname from its Lucky listener. The listener itself is not deleted.

lucky_set_route_enabledA

Enable or disable the reverse-proxy route for a hostname without deleting it.

lucky_web_logsB

Read recent access logs for a hostname, a route, or the whole web module. Useful for 502 debugging.

lucky_list_certsA

List SSL certificates in compact form (name, domains, expiry). PEM material is never returned.

lucky_get_certA

Get compact certificate metadata by key. Private keys are not returned.

lucky_bind_certA

Attach an existing Lucky certificate to a web listener and enable TLS. Select the listener with rule_key, listen_port, or a hostname already on that listener.

lucky_add_custom_certA

Upload a custom certificate and private key to Lucky. Prefer lucky_bind_cert for Let's Encrypt certs that already exist in Lucky.

lucky_sync_certA

Trigger ACME/manual sync for an existing certificate key.

lucky_list_port_forwardsA

List port-forward rules in compact form (listen port, target, protocol).

lucky_upsert_port_forwardA

Idempotently map an external listen port to an internal ip:port. Matching is by listen_port + protocol unless key is provided. Does not send Lucky's full native object.

lucky_delete_port_forwardB

Delete a port-forward rule by key.

lucky_set_port_forward_enabledD
lucky_port_forward_logsD
lucky_list_ddnsA

List DDNS tasks in compact form (provider, domains, last IP). Provider secrets are redacted. Creating a new provider task is provider-specific; use lucky_api_call only if you already have a native payload.

lucky_get_ddnsD
lucky_set_ddns_enabledD
lucky_sync_ddnsC

Force one DDNS task to update now.

lucky_ddns_logsD
lucky_list_stun_rulesA

List STUN/NAT mapping rules (name, listen port, public address when known).

lucky_set_stun_enabledD
lucky_stun_logsD
lucky_list_wol_devicesD
lucky_wakeB

Send a Wake-on-LAN packet. Identify the device by key, name, or MAC.

lucky_add_wol_deviceD
lucky_list_cron_jobsD
lucky_upsert_cron_jobA

Idempotent by name (or key). expression is a cron spec; command is the shell/http payload Lucky should run.

lucky_delete_cron_jobD
lucky_set_cron_enabledD
lucky_run_cron_jobD
lucky_cron_logsD
lucky_get_ftpD
lucky_update_ftpB

Merge a partial patch into the FTP configure object. Secrets in the response are redacted.

lucky_ftp_logsD
lucky_get_webdavD
lucky_update_webdavA

Merge a partial patch into the WebDAV configure object. Secrets in the response are redacted.

lucky_webdav_logsD
lucky_list_dockerA

List Docker containers, images, volumes, and compose projects visible to Lucky. Read-only.

lucky_list_ip_filtersD
lucky_get_ip_filterD
lucky_list_blocked_ipsD
lucky_unblock_ipD
lucky_ip_filter_logsD
lucky_list_security_groupsA

List security groups, grants, and users. Passwords are redacted. Creating users with passwords is not exposed as a dedicated tool.

lucky_list_auth_providersD
lucky_logs_statsD
lucky_query_logsC

Query centralized logs. Pass Lucky's native query object; common fields are search, limit, and location.

lucky_list_storageD
lucky_set_storage_enabledD
lucky_list_local_pathsA

List filesystem roots, or files under a path, as Lucky sees them.

lucky_host_statusA

Host overview, connections, processes, module overview, and network interfaces. Process kill is not available.

lucky_list_tunnelsB

Cloudflared tunnels plus Coraza WAF instances.

lucky_query_ipD
lucky_list_terminal_connectionsA

Passwords and private keys are redacted. SFTP file operations are not exposed.

lucky_upsert_terminal_connectionA

Idempotent by name. Stores host/user/port; password is optional and will be redacted in responses.

lucky_get_settingsA

Read Lucky base settings. Passwords, OpenToken, and other secrets are redacted. Updating admin account, password, or OpenToken is not available.

lucky_api_catalogA

List Lucky API prefixes this MCP is willing to call via lucky_api_call.

lucky_api_callA

Escape hatch for allowlisted Lucky APIs. Login, admin password, OpenToken, 2FA, restore, reboot, OAuth login, and process kill are blocked. Prefer dedicated tools when one exists.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

C2.2/5.0

Scored across 61 tools

Disambiguation4/5

Most tools follow a clear pattern of module plus action (e.g., list_web_rules, upsert_cron_job), making them distinguishable. A few pairs like list_storage vs list_local_paths or logs_stats vs query_logs could be confused, but overall the boundaries are mostly clear.

Naming Consistency5/5

All tools share the lucky_ prefix and use lowercase snake_case with consistent action verbs: list, get, upsert, set, delete, run, sync, wake. Minor deviations like cron_logs instead of get_cron_logs do not break the predictable pattern.

Tool Count1/5

61 tools is well beyond the 50+ threshold and imposes a huge cognitive load on agents. Even though the tools span multiple modules, the sheer number makes the set feel excessive and hard to navigate.

Completeness2/5

The surface is uneven: some modules have full CRUD (cron, port forwards), but many lack common operations such as deleting WoL devices, creating/removing DDNS tasks, deleting certificates, or managing security groups. The generic api_call escape hatch is restricted and cannot fully compensate.

Maintenance

ActivityMaintained
ResponsivenessNo issues