Skip to main content
Glama

get_fix_recommendations

Read-onlyIdempotent

Returns copy-paste-ready fix recommendations (nginx, Apache, DNS, shell) for the issues found on a domain the caller has already paid for — either an active Monitor/Compliance subscription covering the domain, OR a purchased one-off Report for the domain. Each recommendation carries a stable issue_id, a priority (high/medium/low), a title, prose instructions, one or more config snippets with the target domain already interpolated, a verify command, and a category tag.

Use this when the user asks how to fix an issue, wants the exact config to apply, or needs to verify a fix worked. Pass the optional issue_id to scope the response to one specific finding. The response is read-only — this tool NEVER triggers a fresh scan; fixes are computed from the most recent stored scan (including the Report-included re-scan if that was used).

Do NOT use this for domains the caller hasn't purchased coverage for — you'll get an upgrade_required error that links to the pricing page. Do NOT use this to run or trigger a scan; call scan_domain for anonymous checks. Requires a valid API key.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
domainYes
issue_idNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
domainYes
sourceYesWhich purchased product backed this response — 'monitor' for a subscription, 'report' for a one-off Report.
scanned_atYesTimestamp of the underlying scan the fixes were computed from.
recommendationsYesPriority-sorted list of actionable fixes.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint and idempotentHint annotations, the description adds critical behavioral context: it NEVER triggers a fresh scan and always computes from the most recent stored scan. It also mentions the API key requirement, adding value beyond structured annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is somewhat long but well-structured: it leads with the core value proposition, then details usage, exclusions, and behavior. Each sentence carries useful information, and the length is appropriate for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers eligibility (paid coverage), usage context, exclusions, behavioral guarantees, and alternatives. With an output schema present, the lack of return-value detail is acceptable. It is complete for effective tool selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description compensates by explaining domain as the target and issue_id as an optional scoping parameter. It clarifies that issue_id scopes to a specific finding, which is meaningful. However, it doesn't specify domain format or constraints, leaving some gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns copy-paste-ready fix recommendations for specific issue types (nginx, Apache, DNS, shell) on a paid-for domain. This distinguishes it from siblings like scan_domain, which triggers scans, and get_domain_status, which reports status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use (user asks how to fix an issue, wants config to apply, or needs to verify a fix) and when not to (unpaid domains, triggering scans). It names scan_domain as the alternative for anonymous checks, providing clear decision criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.9/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: listing monitored domains, checking current status, reviewing drift history, getting fix recommendations, and scanning unmonitored domains. The descriptions explicitly cross-reference and warn against misuse, making selection unambiguous.

Naming Consistency5/5

All tool names follow a predictable verb_noun pattern: get_domain_status, get_drift_events, get_fix_recommendations, list_monitored_domains, and scan_domain. The use of 'list_' for the collection and 'scan_' for the action is consistent and intuitive.

Tool Count5/5

The five tools are well-scoped for a security monitoring API, covering inventory, current state, change history, remediation, and one-off scanning. Each tool earns its place without unnecessary bloat.

Completeness4/5

The tool set covers the primary read-side and scanning workflows, but lacks an explicit tool to add a domain to continuous monitoring, which is a natural next step from scan_domain. This is a minor lifecycle gap that agents can work around by directing users to the website.