infra-lens-mcp
Server Quality Checklist
Latest release: v1.5.1
- Disambiguation3/5
Several tools have overlapping purposes, especially analyze_server and analyze_server_snapshot which both collect and analyze metrics with subtle differences in timing and persistence. snapshot and analyze_server_snapshot also share collection behavior, while compare_to_baseline and compare_incident_windows both perform comparisons in different contexts. Descriptions provide some clarity, but boundaries are not always obvious.
Naming Consistency4/5Most tool names follow a verb_noun pattern (analyze_server, record_baseline, compare_to_baseline, get_history, inspect_host_capabilities, plan_remediation, draft_incident_report, compare_incident_windows). However, 'snapshot' is a bare noun, and 'analyze_server_snapshot' diverges from the simpler 'analyze_server' pattern, introducing minor inconsistency.
Tool Count5/5With 10 tools, the server covers monitoring, baselining, comparison, history, remediation, and incident reporting without feeling bloated. Each tool addresses a distinct aspect of the infrastructure analysis workflow, and the count is well within the ideal range.
Completeness4/5The tool set covers the core lifecycle of server monitoring: collection, analysis, baseline recording/comparison, historical lookup, host capability checks, remediation planning, and incident reporting. Minor gaps exist, such as no explicit tools to list or delete saved baselines or snapshots, but these do not cripple the main workflows.
Average 3.4/5 across 10 of 10 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- 0 of 1 community issues answered or closed in the last 6 months
- 87 commits in the last 12 weeks
- Last stable release on
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI is passing
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses a key behavioral trait beyond the annotations: it explicitly says 'persist the completed observation', indicating a write side-effect that aligns with readOnlyHint=false and openWorldHint=true. It also mentions 'without a sampling delay', adding temporal behavior. However, it does not elaborate on other potential side effects or permissions, so it adds only moderate context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, waste-free sentence that front-loads the core action. It is concise and readable. However, it is brief to the point of omitting important context, so it earns a 4 rather than a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the presence of an output schema and annotations, the description is too thin for a tool that performs collection, analysis, and persistence via SSH. It does not explain prerequisites, the scope of analysis, or the persistence mechanism. The output schema covers return values, but other contextual elements are missing for such a complex operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter-level information. The schema covers 67% of parameters with descriptions, but the connection object itself lacks a top-level description and the tool description does not reference or explain any parameters. Since coverage is not high, the description should compensate but fails to do so.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action sequence (collect, analyze, persist) and adds a unique qualifier 'without a sampling delay'. This differentiates it from simpler sibling tools like 'snapshot' or 'analyze_server', but it does not explicitly name alternatives, so it is not a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus its siblings. The description lacks any 'use this when' language or exclusions. The only hint is the phrase 'immediate server snapshot', which implies a real-time use case but is not explicit enough to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is known. The description adds no additional behavioral details such as pagination, permission requirements, or side-effect warnings; it simply states the function without enriching beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the action, no filler. It avoids redundancy and is easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema and annotations are rich (6 described parameters, output schema, read-only hint), so the description need not explain return values. However, the lack of usage guidance makes it contextually incomplete for selecting this tool over siblings, though invocation itself is well-supported by structured fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides complete descriptions for all 6 parameters with 100% coverage, including enums and defaults. The description only mentions the metric types (CPU, memory, load), which mirrors the schema's enum, adding no new semantic meaning beyond what the schema already specifies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly specifies the tool retrieves historical CPU, memory, or load values for a server. The verb 'Get' and resource 'historical values' make the purpose unambiguous, though it does not explicitly distinguish from sibling tools like analyze_server or snapshot.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as analyze_server or snapshot. The description only states what it does, without exclusions or alternative recommendations, leaving the agent without selection context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering safety. The description adds some context by specifying 'Linux host' and 'infra-lens collection,' but it does not disclose what happens on unsupported hosts or any additional behavior beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short sentence, front-loaded, with no extraneous words. It efficiently conveys the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple purpose and the presence of an output schema, the description is minimally adequate. However, it lacks usage context, parameter semantics, and an explanation of what 'supports' means in practice, leaving some gaps for an agent selecting and invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description says nothing about the 'connection' parameter. The schema has detailed nested descriptions for host, username, etc., but the top-level parameter lacks a description and the schema description coverage is 0%. The tool description does not compensate by explaining that the parameter is an SSH connection or how to provide it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks whether a Linux host supports infra-lens collection, using a specific verb 'check' and resource. It does not explicitly distinguish from sibling tools like analyze_server or snapshot, but the purpose is distinct and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, no preconditions, and no exclusions. It simply states what it does without indicating a recommended context or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=false and destructiveHint=false, so the description carries a lower burden. It adds a notable behavioral detail—output is in 'human language'—but does not disclose potential side effects of establishing an SSH connection, resource usage, or whether any server-side modifications occur. This is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. Every word contributes to the core message, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has moderate complexity (4 parameters, nested connection object) but an output schema exists, so return values are covered. The description, however, lacks context about prerequisites (e.g., SSH credentials, network access) and doesn't differentiate from siblings. Given the rich schema and annotations, a score of 3 reflects that it is minimally viable but has clear gaps in contextual guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides no parameter-specific information. However, the schema has high coverage (75%), including descriptions for connection fields, include_network, duration_minutes, and include_processes. Since the schema does the heavy lifting, the description adds minimal value beyond it, warranting the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action ('Collect metrics') and a clear outcome ('explain any anomalies in human language'), identifying the tool's core purpose. It doesn't explicitly distinguish this from siblings like analyze_server_snapshot, but the phrasing implies live collection vs snapshot analysis, which provides some differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. There is no mention of preferred scenarios, prerequisites (e.g., SSH access), or exclusions. The description simply states what it does, leaving the agent to infer when it might be appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, establishing the tool as safe and non-mutating. The description adds 'review-first' and 'postmortem draft' to indicate the output is a non-final artifact, but it does not disclose additional behavioral details such as response format or rate limits. With annotations covering the safety profile, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It efficiently communicates the core purpose and source without unnecessary detail, earning full marks for conciseness and structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 0% schema coverage and a minimal one-sentence description, the tool is under-specified. The parameters host, hours, and limit are unexplained, and the meaning of 'persisted observations' is vague. The presence of an output schema covers return values, but input semantics and usage context remain incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters1/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not mention any of the three parameters (host, hours, limit). The agent is left to infer meaning solely from parameter names and defaults, which is insufficient for correct invocation. This is a significant gap that the description fails to compensate for.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Create), the output (a review-first incident report and postmortem draft), and the data source (persisted observations). This distinguishes it from sibling tools like analyze_server or snapshot, which focus on analysis or data collection rather than report generation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'from persisted observations' implies the tool requires prior data collection, but the description does not explicitly state when to use this tool versus alternatives like compare_incident_windows or plan_remediation. No exclusions, prerequisites, or alternative scenarios are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds that it explains differences, implying an analytical result. However, it does not disclose potential operational behavior such as live connections or credential requirements beyond the connection parameter, which is minimal additional context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler words, efficiently conveying the core action. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While an output schema exists for return values, the description lacks usage prerequisites and parameter clarification, making it only minimally complete for a 2-parameter tool. It is adequate but has clear gaps in parameter semantics and usage guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters1/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has two parameters with 0% description coverage, and the description adds no parameter semantics. It does not explain the baseline_label parameter or how connection should be provided, leaving the agent to infer from the schema alone. The description completely fails to compensate for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Compare' with the resource 'current server state to a recorded baseline' and adds the outcome 'explain the differences'. This clearly distinguishes it from sibling tools like record_baseline (which creates baselines) and snapshot (which captures state).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a baseline exists but provides no explicit guidance on when to prefer this tool over alternatives like analyze_server or how to first create a baseline with record_baseline. No exclusions are stated, so it is clear context but lacking explicit alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnlyHint=false, destructiveHint=false, openWorldHint=true). The description adds the 'without analysis' qualifier, but does not disclose where metrics are saved, whether a snapshot ID is returned, or any rate limiting. With annotations present, the added context is limited.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that is front-loaded with the core action. It is well-structured and avoids redundancy, though it omits important details that could be included without harming conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so return values are covered. However, the description lacks detail about the SSH connection required, the 'save' destination, and when to pick this over record_baseline or analyze_server_snapshot. Given the complexity of the connection parameter, the description is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the top-level parameter 'connection'. The description does not mention the parameter or explain how to construct the connection object. While the schema provides nested field descriptions, the tool description adds no value beyond the schema, so the agent gets minimal guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Collect and save current server metrics'. The verb 'collect and save' is specific, and the phrase 'without analysis' differentiates it from sibling tools like analyze_server_snapshot.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for raw metric collection without analysis, but does not explicitly state when to use this tool versus alternatives. No exclusions or explicit alternative tool references are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and destructiveHint=false, so the write nature is implied but not explicitly detailed. The description adds the behavioral context of running during normal operation and the purpose for future anomaly detection, but does not disclose whether baselines are overwritten or how they are stored.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, information-dense sentence. It front-loads the action and purpose without any wasted words, achieving high conciseness while remaining clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a nested connection object and an output schema, and the description provides adequate context for its use. It covers the main purpose and when to use it, though it could mention the SSH connection mechanism or how it fits with sibling tools like 'compare_to_baseline' for fuller completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides descriptions for the 'label' parameter and nested connection properties, covering 50% of parameters. The description adds no parameter-specific information, but the schema already conveys meanings, resulting in a neutral baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool records current metrics as a baseline for anomaly detection. It uses a specific verb and resource, and the phrase 'as baseline' distinguishes it from generic snapshots, though it doesn't explicitly differentiate from the sibling 'snapshot' tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies that it should be used 'during normal operation' for more accurate anomaly detection later, providing clear usage context. However, it does not mention when not to use it or what alternatives might be preferred, such as 'snapshot' for point-in-time captures.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering safety. The description adds the two comparison modes as behavioral context. It does not disclose additional traits like rate limits or edge cases, so it is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the action and efficiently covers both comparison modes without any waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 5 parameters and 0% schema coverage, the description provides a high-level overview but leaves ambiguity about how parameters configure the two modes (e.g., how to specify adjacent windows). The output schema and annotations cover return values and safety, but the invocation guidance is incomplete, warranting a 3.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It clarifies that host is the primary host, compare_host enables cross-host comparison, and recent_hours relates to the recent window. However, it leaves limit and end_timestamp unaddressed, relying on the schema's names and defaults. This partial compensation supports a score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Compare') and resource ('incident windows'), and distinguishes two clear usage modes: adjacent windows on one host or the same window across two hosts. This clearly differentiates it from sibling tools like compare_to_baseline and get_history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool: for comparing adjacent time windows on a single host, or comparing the same recent window across two hosts. This provides clear context without naming excluded scenarios or alternative tools, matching the 'clear context, no exclusions' level.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reinforces the annotations (readOnlyHint=true, destructiveHint=false) by reiterating 'read-only snapshot' and 'without executing changes,' and adds the behavioral nuance that remediation guidance requires approval. It does not contradict the annotations and provides context beyond what the structured annotations alone communicate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly worded sentence that front-loads the key action and outcome. Every phrase earns its place: 'current read-only snapshot' specifies state and safety, 'approval-required remediation guidance' defines the deliverable, and 'without executing changes' prevents misuse. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (which covers return values), clear annotations, and the tool's simple parameter structure, the description sufficiently covers the essential context: what the tool does, that it is read-only, and that it produces guidance rather than direct changes. The combination of description, schema, and annotations makes the tool's role and safety profile complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has only one parameter ('connection') with nested sub-properties, but top-level schema description coverage is 0%. The tool description does not explain that the connection object is required for accessing the target host, nor does it clarify how to supply SSH credentials. The nested schema fields are self-descriptive, but the description fails to bridge the gap between the 'connection' parameter and the tool's purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('collect a current read-only snapshot') and a clear deliverable ('produce approval-required remediation guidance'), with an explicit constraint ('without executing changes'). It distinguishes itself from sibling tools like 'snapshot' and 'analyze_server' by focusing on remediation planning rather than raw data collection or analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'without executing changes' clearly signals when to use this tool: for planning and guidance, not for actual remediation. It also implies that this is a non-invasive, read-only step. However, it does not explicitly name alternative tools for when changes should actually be executed or when a deeper analysis is needed, so it lacks formal exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/oaslananka/infra-lens-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server