Tools
Everything homelab-infra-mcp exposes to your AI client: tools, resources and prompts.
Tool docs quality: C — 25 tools graded
Average 63/100 for how clearly each description tells an AI client what the tool does, what it needs, and what it changes. It is not a security audit.
- Grade A: 2
- Grade B: 6
- Grade C: 14
- Grade D: 3
- Grade F: 0
diagnose_servicetoolRead only. Checks each hop from a domain to its service, one row per hop. Returns the first failing hop and its fix.
Description quality grade B, 70/100 · 2 to fix
- Has a description: passed20/20
The tool has a description an AI client can read.
- Sensible length: passed20/20
Length is in a useful range.
- Starts with what it does: passed15/15
Opens with an action verb.
- Mentions its inputs: not passed0/20
Say what the tool needs, for example “by issue number” or “takes a file path”.
- Explains side effects: passed15/15
Marked read-only.
- Gives usage guidance: not passed0/10
Add when to use it, what it requires, or what to use instead.
Paged query log (AdGuard Home, read only)
Description quality grade C, 65/100 · 3 to fix
- Has a description: passed20/20
The tool has a description an AI client can read.
- Sensible length: not passed10/20
A bit terse. One more clause about inputs or results would help.
- Starts with what it does: not passed0/15
Open with an action verb, for example “Search issues…” or “Creates a label…”.
- Mentions its inputs: passed20/20
The description mentions what the tool takes.
- Explains side effects: passed15/15
Marked read-only.
- Gives usage guidance: not passed0/10
Add when to use it, what it requires, or what to use instead.
dns_filter_rulestoollist blocked services and custom rules; add, remove need approval (AdGuard Home)
Description quality grade B, 70/100 · 2 to fix
- Has a description: passed20/20
The tool has a description an AI client can read.
- Sensible length: passed20/20
Length is in a useful range.
- Starts with what it does: passed15/15
Opens with an action verb.
- Mentions its inputs: not passed0/20
Say what the tool needs, for example “by issue number” or “takes a file path”.
- Explains side effects: passed15/15
Looks read-only, so no disclosure is required. Saying “read-only” still helps.
- Gives usage guidance: not passed0/10
Add when to use it, what it requires, or what to use instead.
Filter status and query and block totals (AdGuard Home, read only)
Description quality grade A, 90/100 · 1 to fix
- Has a description: passed20/20
The tool has a description an AI client can read.
- Sensible length: passed20/20
Length is in a useful range.
- Starts with what it does: passed15/15
Opens with an action verb.
- Mentions its inputs: passed20/20
The description mentions what the tool takes.
- Explains side effects: passed15/15
Marked read-only.
- Gives usage guidance: not passed0/10
Add when to use it, what it requires, or what to use instead.
dns_recordstoollist, get, create, update, delete records
Description quality grade C, 60/100 · 3 to fix
- Has a description: passed20/20
The tool has a description an AI client can read.
- Sensible length: not passed10/20
A bit terse. One more clause about inputs or results would help.
- Starts with what it does: passed15/15
Opens with an action verb.
- Mentions its inputs: not passed0/20
Say what the tool needs, for example “by issue number” or “takes a file path”.
- Explains side effects: passed15/15
Looks read-only, so no disclosure is required. Saying “read-only” still helps.
- Gives usage guidance: not passed0/10
Add when to use it, what it requires, or what to use instead.
dns_zonestoollist zones, or export one in BIND format
Description quality grade C, 60/100 · 3 to fix
- Has a description: passed20/20
The tool has a description an AI client can read.
- Sensible length: not passed10/20
A bit terse. One more clause about inputs or results would help.
- Starts with what it does: passed15/15
Opens with an action verb.
- Mentions its inputs: not passed0/20
Say what the tool needs, for example “by issue number” or “takes a file path”.
- Explains side effects: passed15/15
Looks read-only, so no disclosure is required. Saying “read-only” still helps.
- Gives usage guidance: not passed0/10
Add when to use it, what it requires, or what to use instead.
list, get, start, stop, restart, remove, logs, stats, prune
Description quality grade C, 60/100 · 3 to fix
- Has a description: passed20/20
The tool has a description an AI client can read.
- Sensible length: not passed10/20
A bit terse. One more clause about inputs or results would help.
- Starts with what it does: passed15/15
Opens with an action verb.
- Mentions its inputs: not passed0/20
Say what the tool needs, for example “by issue number” or “takes a file path”.
- Explains side effects: passed15/15
Looks read-only, so no disclosure is required. Saying “read-only” still helps.
- Gives usage guidance: not passed0/10
Add when to use it, what it requires, or what to use instead.
docker_imagestoollist, pull, remove, prune
Description quality grade D, 50/100 · 3 to fix
- Has a description: passed20/20
The tool has a description an AI client can read.
- Sensible length: not passed0/20
Only 4 words. Say what the tool needs and what it returns.
- Starts with what it does: passed15/15
Opens with an action verb.
- Mentions its inputs: not passed0/20
Say what the tool needs, for example “by issue number” or “takes a file path”.
- Explains side effects: passed15/15
Looks read-only, so no disclosure is required. Saying “read-only” still helps.
- Gives usage guidance: not passed0/10
Add when to use it, what it requires, or what to use instead.
docker_inventorytoolvolumes, networks, or Portainer stacks (with a stack's compose file)
Description quality grade C, 55/100 · 3 to fix
- Has a description: passed20/20
The tool has a description an AI client can read.
- Sensible length: passed20/20
Length is in a useful range.
- Starts with what it does: not passed0/15
Open with an action verb, for example “Search issues…” or “Creates a label…”.
- Mentions its inputs: not passed0/20
Say what the tool needs, for example “by issue number” or “takes a file path”.
- Explains side effects: passed15/15
Looks read-only, so no disclosure is required. Saying “read-only” still helps.
- Gives usage guidance: not passed0/10
Add when to use it, what it requires, or what to use instead.
expose_servicetoolCheck a container, add a DNS record (optional), add a proxy host. One approved plan.
Description quality grade A, 90/100 · 1 to fix
- Has a description: passed20/20
The tool has a description an AI client can read.
- Sensible length: passed20/20
Length is in a useful range.
- Starts with what it does: passed15/15
Opens with an action verb.
- Mentions its inputs: passed20/20
The description mentions what the tool takes.
- Explains side effects: passed15/15
Looks read-only, so no disclosure is required. Saying “read-only” still helps.
- Gives usage guidance: not passed0/10
Add when to use it, what it requires, or what to use instead.
ha_automationstoollist, trigger, reload automations or scripts; create previews automation YAML (Home Assistant)
Description quality grade B, 70/100 · 2 to fix
- Has a description: passed20/20
The tool has a description an AI client can read.
- Sensible length: passed20/20
Length is in a useful range.
- Starts with what it does: passed15/15
Opens with an action verb.
- Mentions its inputs: not passed0/20
Say what the tool needs, for example “by issue number” or “takes a file path”.
- Explains side effects: passed15/15
Looks read-only, so no disclosure is required. Saying “read-only” still helps.
- Gives usage guidance: not passed0/10
Add when to use it, what it requires, or what to use instead.
ha_entitiestoollist, get, search; callservice, turnon, turnoff, toggle (Home Assistant)
Description quality grade C, 60/100 · 3 to fix
- Has a description: passed20/20
The tool has a description an AI client can read.
- Sensible length: not passed10/20
A bit terse. One more clause about inputs or results would help.
- Starts with what it does: passed15/15
Opens with an action verb.
- Mentions its inputs: not passed0/20
Say what the tool needs, for example “by issue number” or “takes a file path”.
- Explains side effects: passed15/15
Looks read-only, so no disclosure is required. Saying “read-only” still helps.
- Gives usage guidance: not passed0/10
Add when to use it, what it requires, or what to use instead.
ha_systemtoolConfig, available services, checkconfig (Home Assistant)
Description quality grade D, 45/100 · 4 to fix
- Has a description: passed20/20
The tool has a description an AI client can read.
- Sensible length: not passed10/20
A bit terse. One more clause about inputs or results would help.
- Starts with what it does: not passed0/15
Open with an action verb, for example “Search issues…” or “Creates a label…”.
- Mentions its inputs: not passed0/20
Say what the tool needs, for example “by issue number” or “takes a file path”.
- Explains side effects: passed15/15
Looks read-only, so no disclosure is required. Saying “read-only” still helps.
- Gives usage guidance: not passed0/10
Add when to use it, what it requires, or what to use instead.
homelab_healthtoolConnectivity and version for every enabled module
Description quality grade D, 45/100 · 4 to fix
- Has a description: passed20/20
The tool has a description an AI client can read.
- Sensible length: not passed10/20
A bit terse. One more clause about inputs or results would help.
- Starts with what it does: not passed0/15
Open with an action verb, for example “Search issues…” or “Creates a label…”.
- Mentions its inputs: not passed0/20
Say what the tool needs, for example “by issue number” or “takes a file path”.
- Explains side effects: passed15/15
Looks read-only, so no disclosure is required. Saying “read-only” still helps.
- Gives usage guidance: not passed0/10
Add when to use it, what it requires, or what to use instead.
homelab_modulestoolWhich modules are on, which settings are missing, and what each tool does. Call this first.
Description quality grade C, 55/100 · 3 to fix
- Has a description: passed20/20
The tool has a description an AI client can read.
- Sensible length: passed20/20
Length is in a useful range.
- Starts with what it does: not passed0/15
Open with an action verb, for example “Search issues…” or “Creates a label…”.
- Mentions its inputs: not passed0/20
Say what the tool needs, for example “by issue number” or “takes a file path”.
- Explains side effects: passed15/15
Looks read-only, so no disclosure is required. Saying “read-only” still helps.
- Gives usage guidance: not passed0/10
Add when to use it, what it requires, or what to use instead.
Counts across Docker, the proxy and DNS
Description quality grade C, 60/100 · 3 to fix
- Has a description: passed20/20
The tool has a description an AI client can read.
- Sensible length: not passed10/20
A bit terse. One more clause about inputs or results would help.
- Starts with what it does: passed15/15
Opens with an action verb.
- Mentions its inputs: not passed0/20
Say what the tool needs, for example “by issue number” or “takes a file path”.
- Explains side effects: passed15/15
Looks read-only, so no disclosure is required. Saying “read-only” still helps.
- Gives usage guidance: not passed0/10
Add when to use it, what it requires, or what to use instead.
list, create, delete IP access lists
Description quality grade C, 60/100 · 3 to fix
- Has a description: passed20/20
The tool has a description an AI client can read.
- Sensible length: not passed10/20
A bit terse. One more clause about inputs or results would help.
- Starts with what it does: passed15/15
Opens with an action verb.
- Mentions its inputs: not passed0/20
Say what the tool needs, for example “by issue number” or “takes a file path”.
- Explains side effects: passed15/15
Looks read-only, so no disclosure is required. Saying “read-only” still helps.
- Gives usage guidance: not passed0/10
Add when to use it, what it requires, or what to use instead.
list, request a Let's Encrypt certificate
Description quality grade C, 60/100 · 3 to fix
- Has a description: passed20/20
The tool has a description an AI client can read.
- Sensible length: not passed10/20
A bit terse. One more clause about inputs or results would help.
- Starts with what it does: passed15/15
Opens with an action verb.
- Mentions its inputs: not passed0/20
Say what the tool needs, for example “by issue number” or “takes a file path”.
- Explains side effects: passed15/15
Looks read-only, so no disclosure is required. Saying “read-only” still helps.
- Gives usage guidance: not passed0/10
Add when to use it, what it requires, or what to use instead.
proxy_hoststoollist, get, create, update, delete proxy hosts
Description quality grade C, 60/100 · 3 to fix
- Has a description: passed20/20
The tool has a description an AI client can read.
- Sensible length: not passed10/20
A bit terse. One more clause about inputs or results would help.
- Starts with what it does: passed15/15
Opens with an action verb.
- Mentions its inputs: not passed0/20
Say what the tool needs, for example “by issue number” or “takes a file path”.
- Explains side effects: passed15/15
Looks read-only, so no disclosure is required. Saying “read-only” still helps.
- Gives usage guidance: not passed0/10
Add when to use it, what it requires, or what to use instead.
list, create, delete HTTP redirections
Description quality grade C, 60/100 · 3 to fix
- Has a description: passed20/20
The tool has a description an AI client can read.
- Sensible length: not passed10/20
A bit terse. One more clause about inputs or results would help.
- Starts with what it does: passed15/15
Opens with an action verb.
- Mentions its inputs: not passed0/20
Say what the tool needs, for example “by issue number” or “takes a file path”.
- Explains side effects: passed15/15
Looks read-only, so no disclosure is required. Saying “read-only” still helps.
- Gives usage guidance: not passed0/10
Add when to use it, what it requires, or what to use instead.
service_statustoolOne view of a service: container, proxy hosts, DNS records
Description quality grade C, 55/100 · 3 to fix
- Has a description: passed20/20
The tool has a description an AI client can read.
- Sensible length: passed20/20
Length is in a useful range.
- Starts with what it does: not passed0/15
Open with an action verb, for example “Search issues…” or “Creates a label…”.
- Mentions its inputs: not passed0/20
Say what the tool needs, for example “by issue number” or “takes a file path”.
- Explains side effects: passed15/15
Looks read-only, so no disclosure is required. Saying “read-only” still helps.
- Gives usage guidance: not passed0/10
Add when to use it, what it requires, or what to use instead.
sso_applicationstoollist; create makes a proxy provider and an application for one host, and needs approval (Authentik)
Description quality grade B, 70/100 · 2 to fix
- Has a description: passed20/20
The tool has a description an AI client can read.
- Sensible length: passed20/20
Length is in a useful range.
- Starts with what it does: passed15/15
Opens with an action verb.
- Mentions its inputs: not passed0/20
Say what the tool needs, for example “by issue number” or “takes a file path”.
- Explains side effects: passed15/15
Looks read-only, so no disclosure is required. Saying “read-only” still helps.
- Gives usage guidance: not passed0/10
Add when to use it, what it requires, or what to use instead.
teardown_servicetoolRemove a service's proxy host and optional DNS record. One approved plan.
Description quality grade B, 75/100 · 2 to fix
- Has a description: passed20/20
The tool has a description an AI client can read.
- Sensible length: passed20/20
Length is in a useful range.
- Starts with what it does: passed15/15
Opens with an action verb.
- Mentions its inputs: passed20/20
The description mentions what the tool takes.
- Explains side effects: not passed0/15
This looks like a write action. Say what changes, and whether it can be undone.
- Gives usage guidance: not passed0/10
Add when to use it, what it requires, or what to use instead.
tunnel_routestoollist; add, remove need approval (Cloudflare Tunnel)
Description quality grade C, 60/100 · 3 to fix
- Has a description: passed20/20
The tool has a description an AI client can read.
- Sensible length: not passed10/20
A bit terse. One more clause about inputs or results would help.
- Starts with what it does: passed15/15
Opens with an action verb.
- Mentions its inputs: not passed0/20
Say what the tool needs, for example “by issue number” or “takes a file path”.
- Explains side effects: passed15/15
Looks read-only, so no disclosure is required. Saying “read-only” still helps.
- Gives usage guidance: not passed0/10
Add when to use it, what it requires, or what to use instead.
uptime_monitorstoollist, get: read only (Uptime Kuma). Pause and resume are not in 2.1.
Description quality grade B, 70/100 · 2 to fix
- Has a description: passed20/20
The tool has a description an AI client can read.
- Sensible length: passed20/20
Length is in a useful range.
- Starts with what it does: passed15/15
Opens with an action verb.
- Mentions its inputs: not passed0/20
Say what the tool needs, for example “by issue number” or “takes a file path”.
- Explains side effects: passed15/15
Marked read-only.
- Gives usage guidance: not passed0/10
Add when to use it, what it requires, or what to use instead.