MCP Infra Lens
Server Quality Checklist
- Disambiguation4/5
Tools are mostly distinct, though analyze_server and compare_to_baseline both perform explanatory analysis of deviations, which could cause brief hesitation. snapshot vs analyze_server clearly separates raw collection from analysis.
Naming Consistency4/5Four tools follow a clear verb_noun pattern (analyze_server, get_history, record_baseline, compare_to_baseline). snapshot stands alone without a verb prefix, though it functions as a verb in context—minor deviation but readable.
Tool Count5/5Five tools is ideal for this focused scope: baseline lifecycle (record, compare), historical retrieval, real-time analysis, and raw capture. Each serves a specific step in the monitoring workflow without bloat.
Completeness4/5Covers the core monitoring lifecycle: establishing baselines, recording current state, historical lookup, and comparative analysis. Minor gaps exist (no list_baselines or delete_baseline), but agents can work around these.
Average 3.2/5 across 4 of 5 tools scored.
See the tool scores section below for per-tool breakdowns.
This repository includes a README.md file.
This repository includes a LICENSE file.
Latest release: v1.0.1
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.
- This server provides 5 tools. View schema
No known security issues or vulnerabilities reported.
This server has been verified by its author.
Add related servers to improve discoverability.
Tool Scores
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds that it 'explain[s] the differences' (interpretive behavior not in annotations). However, despite openWorldHint=true and SSH connection parameters in schema, description fails to disclose remote server access requirements or network dependencies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness3/5Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is front-loaded and concise, but severely underspecified for a complex tool with nested objects and multiple authentication options.
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?
Inadequate for complexity: SSH connectivity, nested credential object, and comparison logic require elaboration. No output schema compounds the incompleteness—description should indicate what 'explaining differences' entails (format, scope).
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 has 0% top-level description coverage (connection, baseline_label lack descriptions). Description adds zero parameter context—does not mention SSH, credentials, or that baseline_label selects which saved snapshot to compare against.
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?
Clear verb 'Compare' and resources 'current server state' vs 'recorded baseline'. Implicitly distinguishes from sibling 'record_baseline' by referencing pre-existing recorded baselines.
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 explicit guidance on when to use versus siblings (analyze_server), nor prerequisites that a baseline must first exist via record_baseline. Only clue is 'recorded baseline' implying prior creation.
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. The description adds that metrics are 'saved' (persisted) and clarifies the lack of analysis, but omits details about the SSH-based interaction implied by openWorldHint=true or where data is stored.
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 single-sentence description is front-loaded and efficient, avoiding redundancy. However, given the tool's complexity (SSH connections, multiple auth methods), it may be overly terse—sacrificing necessary detail for brevity.
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?
For a tool requiring SSH authentication to external servers (openWorldHint=true) with no output schema, the description is incomplete. It omits the transport mechanism (SSH), credential requirements, and the destination/format of the saved snapshot.
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?
With schema coverage at 0%, the description must carry the burden of explaining the complex SSH connection object (host, port, auth credentials). The description mentions 'server' but provides no guidance on the nested connection parameters, authentication methods (password vs. key), or required vs. optional fields.
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 collects and saves server metrics, using specific verbs. It effectively distinguishes from the sibling 'analyze_server' by explicitly stating it operates 'without analysis', clarifying its scope.
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 'without analysis' implies this is not for analysis use cases, providing implied guidance. However, it fails to explicitly name 'analyze_server' as the alternative or state prerequisites like when to use this vs. 'record_baseline'.
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 establish read-only/non-destructive safety. The description adds the specific metric domain (CPU/memory/load) and temporal nature ('historical'), but omits details on data granularity, aggregation methods, rate limits, or return format that would help the agent understand the data volume or structure.
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?
Single efficient sentence with action-oriented front-loading. No wasted words; every term serves to specify the resource type or scope. Appropriate length for the tool's simplicity.
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?
Adequate for basic invocation but misses important workflow context: it fails to mention the baseline/snapshot ecosystem evident in sibling tools ('record_baseline', 'compare_to_baseline') and the 'label' parameter description, which would help the agent understand this tool's role in a metrics collection workflow. No output schema exists, yet the description doesn't hint at the return structure (time-series vs. single values).
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 coverage is 100%, providing complete documentation for all four parameters including the 'label' filter for baseline sessions. The description lists the three metric types (CPU/memory/load) reinforcing the enum, but adds no additional syntax guidance, validation rules, or format constraints beyond what the schema already provides.
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?
Clear verb 'Get' with specific resource (historical CPU, memory, load values) and scope (for a server). Distinction from siblings like 'analyze_server' or 'snapshot' is implied by the focus on historical metrics, though not explicitly contrasted.
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?
Provides no explicit guidance on when to use this versus 'snapshot' or 'analyze_server', nor does it indicate that this retrieves raw historical data while 'compare_to_baseline' performs analysis. The relationship to the baseline workflow (implied by the 'label' parameter) is unexplained.
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 correctly indicate this is a non-destructive write (readOnlyHint: false, destructiveHint: false) that accesses external resources (openWorldHint: true). The description adds domain context about establishing baselines for anomaly detection but omits behavioral specifics like whether it overwrites existing baselines with the same label or that it requires SSH authentication.
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?
Single, efficient sentence with zero redundancy. Action and purpose are front-loaded, making it easy to parse quickly.
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?
Explains the baseline concept adequately for anomaly detection workflows, but omits critical technical context given the tool's complexity: it does not mention SSH connectivity, remote server monitoring, or the authentication methods (password vs key) available in the schema.
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?
With only 50% schema description coverage (the nested 'connection' object lacks a top-level description), the description fails to compensate by explaining the SSH connection requirement or the purpose of the 'label' parameter for organizing baselines. No mention of parameters despite their complexity.
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?
Specific verb 'Record' and clear resource 'metrics as baseline'. The phrase 'during normal operation' and 'for anomaly detection later' effectively distinguishes this from sibling 'compare_to_baseline' (which would compare) and 'analyze_server' (which analyzes current state). Could be improved by mentioning the remote server aspect implied by the parameters.
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?
Provides implicit usage guidance with 'during normal operation' indicating when to invoke, but lacks explicit when-NOT-to-use conditions or comparison to siblings like 'snapshot' or 'analyze_server' which might also record state.
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?
Adds valuable context that output is 'human language' explanations (natural language prose rather than structured data) and focuses on 'anomalies'. Aligns with readOnlyHint=true and destructiveHint=false. No contradictions with 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?
Single 11-word sentence efficiently conveys dual purpose: data collection and natural language analysis. No redundancy, front-loaded with primary action, every clause earns its place.
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?
Adequate for a diagnostic tool with openWorldHint covering external connectivity. Captures output format (human language) which compensates for missing output schema. Could mention SSH/connectivity requirement explicitly given security implications, but schema covers connection details sufficiently.
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 coverage is 75% with all leaf parameters (host, port, duration, toggles) well-documented. Description implies metric collection but doesn't add parameter-specific semantics or authentication requirements beyond the schema. Baseline 3 appropriate for high-coverage schemas.
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?
Clear verbs 'Collect' and 'explain' with specific resource 'metrics' and scope 'anomalies'. Distinguishes from siblings like 'get_history' via focus on anomaly explanation, though could more explicitly contrast with 'compare_to_baseline' 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?
Provides no guidance on when to use this diagnostic tool versus siblings like 'compare_to_baseline', 'record_baseline', or 'get_history'. No mention of SSH prerequisites or when live analysis is preferred over historical comparison.
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:
How to claim the server?
If you are the author of the server, you simply need to authenticate using GitHub.
However, if the MCP server belongs to an organization, you need to first add glama.json to the root of your repository.
{
"$schema": "https://glama.ai/mcp/schemas/server.json",
"maintainers": [
"your-github-username"
]
}Then, authenticate using GitHub.
Browse examples.
How to make a release?
A "release" on Glama is not the same as a GitHub release. To create a Glama release:
- Claim the server if you haven't already.
- Go to the Dockerfile admin page, configure the build spec, and click Deploy.
- Once the build test succeeds, click Make Release, enter a version, and publish.
This process allows Glama to run security checks on your server and enables users to deploy it.
How to add a LICENSE?
Please follow the instructions in the GitHub documentation.
Once GitHub recognizes the license, the system will automatically detect it within a few hours.
If the license does not appear on the server after some time, you can manually trigger a new scan using the MCP server admin interface.
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.
Latest Blog Posts
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/mcp-infra-lens'
If you have feedback or need assistance with the MCP directory API, please join our Discord server