Server and secret guardrails
Server Details
Local checks for sudo, systemd, sshd, ufw, and secret leaks before an agent applies them.
- Status
- Healthy
- Uptime
- 100.0% over 22 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 4 tools
Each tool has a fairly distinct target: install_local returns install artifacts/config, list_checks enumerates available checks, products returns kit URLs, and sample_findings shows fixture finding ids. There is mild overlap between install_local and products (both surface install/URL info), but the descriptions' explicit scope caveats keep them separable.
The set mixes conventions: install_local and list_checks use a verb_noun pattern, while products and sample_findings are bare nouns. It remains readable but does not follow a single predictable scheme.
Four tools is thin for a guardrails server whose apparent purpose is auditing servers and secrets. Two tools are purely informational (install_local, products), leaving only list_checks and sample_findings tied to the core domain.
The server names concrete checks (audit_server_snippet, scan_secret_leak, rewrite_safe_curl) but provides no tool to actually run them on input; list_checks explicitly cannot execute checks and sample_findings only reads static fixtures. This leaves the central guardrail workflow unreachable, a significant gap.
Available Tools
4 toolsinstall_localReturn the local installBRead-onlyIdempotentInspect
Return the local install file, its sha256, and client config. Optional client: claude-desktop, claude-code, cursor, gemini, codex.
| Name | Required | Description | Default |
|---|---|---|---|
| client | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds the returned payload contents (file, sha256, client config), which is genuinely useful given there is no output schema. It says nothing about authentication requirements, rate limits, or what happens when the install file is unavailable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the return payload followed by the parameter note; nothing is padded. The trailing enum list is mildly redundant with the schema but does let an agent pick a valid value without opening the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single optional-parameter, read-only tool with a rich annotation set, the description covers the essentials — output contents and the optional selector. It falls short on the default behavior when 'client' is omitted and on any precondition for the install file existing, which an agent would need in edge cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the load; it does state that 'client' is optional and enumerates the accepted values, though those values are already in the schema enum and the restatement is partly redundant. The critical semantic gap is what omitting 'client' actually does — return a generic install, no client config, or all configs — which is never explained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Return') and the concrete payload: the local install file, its sha256, and client config. That is enough for an agent to know this is a retrieval tool for an install artifact. It doesn't reference any sibling, but the sibling list (list_checks, products, sample_findings) is unrelated enough that differentiation is not a real burden here.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus alternatives, no prerequisites (auth, repository state), and no when-not condition. The only implied guidance is that a client value can be supplied, which is parameter information rather than usage context. An agent gets no help deciding whether this call is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_checksList local checksARead-onlyIdempotentInspect
List the local checks (audit_server_snippet, scan_secret_leak, rewrite_safe_curl). This endpoint cannot run them on text you send.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds genuinely new behavioral context by delimiting capability: it lists the checks but explicitly states it cannot execute them on supplied text.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero filler, with the enumeration front-loaded and the capability caveat immediately after. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only listing tool with no output schema, the description covers what is returned (the three check names) and what the tool will not do. It could say slightly more about the response shape (e.g., whether names alone or with metadata), but nothing critical for invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters and schema coverage is 100%, so there is nothing for the description to compensate for. Baseline 4 applies; the description correctly does not invent parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('List') and resource ('local checks'), and enumerates the three concrete check names the caller will receive, which makes the scope unambiguous. It does not distinguish itself from siblings (install_local, products, sample_findings), so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The negative clause 'This endpoint cannot run them on text you send' usefully rules out a misuse (expecting execution), implying this is a discovery step before install/run. However, it names no alternative tool or explicit when-to-use condition, so guidance remains implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
productsKit and registry linksARead-onlyIdempotentInspect
Return the $19 and $39 kit URLs, the install page, and the registry remote. This endpoint does not read files.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world behavior, so the safety profile is covered. The description's only added behavioral note is that it does not read files, which is useful scoping but modest given how much the annotations already carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with what is returned and closing with the one behavioral caveat. Every clause carries information; no filler or restatement of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description enumerates the return contents (kit URLs, install page, registry remote), which is what an agent needs from a zero-parameter lookup tool. It could note the response shape or stability of the URLs, but nothing essential is missing for a call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so per the rubric the baseline is 4. Nothing in the description is needed to disambiguate inputs, and none is claimed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb ('Return') plus concrete resources: the $19/$39 kit URLs, install page, and registry remote. The name 'products' is uninformative on its own, but the title and description together make the payload unambiguous and the 'does not read files' clause separates it from install_local.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The negative statement 'This endpoint does not read files' implicitly routes the agent away from install_local, but no explicit when-to-use condition or alternative is named. Usage must be inferred from the returned-content list rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sample_findingsShow sample findingsARead-onlyIdempotentInspect
Show finding ids from built-in public fixtures. Does not read the request.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so safety is covered. The description adds two genuinely useful traits beyond that: the data comes from built-in public fixtures (static, not live) and it 'does not read the request' (output is independent of any input state), which materially changes how an agent should treat the result.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero waste, with the identity of the tool front-loaded and the no-input caveat immediately after. Nothing is padded or redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-param, no-output-schema fixture dump, the description covers what is returned (finding ids), where it comes from (built-in public fixtures), and that it ignores input. Annotations carry the safety profile, so only the absence of any usage routing keeps it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so the baseline is 4. The description correctly adds nothing about arguments because none exist, and the 'does not read the request' note reinforces that no input influences the result.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Show) and resource (finding ids) with a clear scope qualifier: 'from built-in public fixtures'. The fixture source implicitly separates it from siblings like list_checks, though no sibling is named explicitly, so it falls short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to use this versus list_checks, install_local, or products, and no exclusions or prerequisites. The demo/sample nature is inferable from 'built-in public fixtures' but the agent is given no routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- First observed
install_local - First observed
list_checks - First observed
products - First observed
sample_findings
Related MCP Connectors
Stop your agent before it runs rm -rf /etc or emails your .env. Deterministic preflight checks.
Lets coding agents check their own code for leaked secrets, risky dependencies and AI-code mistakes
Independent agent preflight: verify change, mandates, evidence, and exact execution.
Verify before you act: deps-check, x402-preflight, json-repair & url-read for agents.
Related MCP Servers
- AlicenseAqualityCmaintenanceSafety checks an agent runs before it acts — flags malicious packages, destructive shell commands, secret leaks, and web-backend holes before execution.8MIT
- AlicenseBqualityCmaintenanceEnables local privacy scanning and masking of secrets and PII, verifies test-suite integrity to prevent silent fake success, and inspects or blocks destructive terminal and SQL commands before execution.4Apache 2.0
- AlicenseNot gradedqualityDmaintenanceLocal-first security check for AI coding agents — finds hardcoded secrets, exposed .env files, git-history leaks and vulnerable dependencies (OSV), entirely on your machine. Ask your agent "is this safe to ship?" and get a Launch Readiness score with a fix for every finding.MIT
- AlicenseNot gradedqualityCmaintenanceProvides security checks for AI agents, including secret scanning, CVE lookup, and dependency vulnerability scanning, all running locally except for CVE lookups.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.