Kastell
OfficialServer Quality Checklist
Latest release: v2.3.1
- Disambiguation5/5
Each tool has a distinct purpose with detailed descriptions and cross-references. Even overlapping areas like security (audit, lock, secure) are clearly differentiated by scope and usage.
Naming Consistency5/5All 17 tools follow the consistent 'server_<action>' pattern in snake_case, making the tool set predictable and easy to navigate.
Tool Count4/517 tools cover the broad domain of server management without being excessive. While slightly above the 3-15 ideal range, each tool earns its place with well-defined functionality.
Completeness5/5The tool set covers provisioning, lifecycle management, security auditing and hardening, health monitoring, backup, logging, and fleet management. No obvious gaps for the stated purpose.
Average 4.4/5 across 17 of 17 tools scored. Lowest: 2.9/5.
See the Tool Scores section below for per-tool breakdowns.
- 2 of 2 community issues answered or closed in the last 6 months
- 409 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 Apache 2.0.
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.
This repository includes a glama.json configuration file.
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
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds significant detail beyond annotations: runs audit, creates backup, applies fixes, re-audits, dryRun default, SAFE_MODE behavior, forbidden fixes. No contradiction 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.
Conciseness2/5Is the description appropriately sized, front-loaded, and free of redundancy?
Relatively concise but includes inaccurate information about parameters, which harms trust. Structure is acceptable but flawed by the erroneous param mention.
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?
Covers key behavioral aspects but is incomplete due to the inconsistency about parameters. Output schema exists but description doesn't reference it.
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?
Input schema has no properties, yet description claims there are 'checks and category params'. This is misleading and contradicts the schema, adding no value.
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 applies safe auto-fixes to a server and outlines the process. However, it mentions 'checks and category params' that do not exist in the input schema, causing slight confusion.
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 some usage context (dryRun default, SAFE_MODE, forbidden fixes) but also incorrectly references non-existent parameters, and lacks explicit when-not-to-use guidance or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior1/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and destructiveHint=false, but the description mentions 'Run diagnose->fix chain automatically' via autoFix parameter, which implies mutation. This is a direct contradiction. Description does not clarify or reconcile this inconsistency.
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?
Description is concise (4 sentences), front-loaded with the tool's primary purpose, and includes necessary details without fluff. Every sentence adds value.
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 tool's complexity (6 parameters, enum, output schema exists), the description covers all needed context: purpose, function, output grouping, and alternative tool. It is complete for effective use.
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?
All parameters are fully described in the input schema (100% coverage). The description adds minimal additional semantics beyond the schema (e.g., caching behavior), but does not provide deeper meaning for individual parameters.
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?
Description clearly states the tool's purpose ('Run proactive health analysis on a server') and lists specific health categories (disk trending, high swap, etc.). It explicitly distinguishes from the sibling 'server_audit' tool, providing a precise scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear guidance on when to use the tool (proactive health checks) and when not (for full security audit, use server_audit). Also explains optional parameters like fresh and autoFix to control behavior.
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 adds behavioral context beyond annotations: it writes to a local directory (~/.kastell/evidence/...) and returns a manifest with SHA256 checksums. It also mentions optional Docker and sysinfo flags. This complements the annotations which lack destructive or idempotent hints.
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 three sentences long, front-loaded with the core purpose, and contains no redundant or irrelevant information. Every sentence adds value.
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?
For a tool with 6 parameters and an output schema, the description covers key aspects: what it collects, where it writes, and what it returns. It does not mention runtime considerations or prerequisites but is largely complete.
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?
Input schema coverage is 100%, so the schema already documents all parameters. The description adds minimal parameter insight beyond the schema, though it does highlight the output (manifest with checksums).
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 purpose: 'Collect forensic evidence package from a server.' It lists specific data collected (firewall rules, auth.log, etc.) and distinguishes it from siblings like server_audit or server_logs by focusing on comprehensive evidence gathering.
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 forensic evidence collection but does not explicitly state when to use this tool versus siblings such as server_audit or server_logs. No alternative tools or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint: true, and the description adds important behavioral context: SAFE_MODE blocks restore, snapshots require API token, snapshots unavailable for manually added servers, and backup methods differ by server type. No contradiction 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.
Conciseness3/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is detailed and structured with two paragraphs, but it is somewhat lengthy. It front-loads the main purpose but could be more concise without losing essential information.
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?
Given the tool's complexity (multiple actions, server types, SAFE_MODE, API tokens), the description covers most aspects. It mentions prerequisites (API token for snapshots) and limitations (SAFE_MODE blocks restore). However, it does not explain what SAFE_MODE is or where backups/snapshots are stored. With output schema present, return values are covered.
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%, so the schema already describes parameters well. The description adds some context (e.g., SAFE_MODE implications) but largely repeats information already in the schema's enum descriptions. Baseline score of 3 is appropriate.
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 it handles backup and snapshot operations for Kastell servers, with specific details on each action and differentiation between Coolify and bare servers. It is distinct from sibling tools like server_audit or server_fix, which have different purposes.
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 provides detailed guidance on which action to use for what (e.g., backup-create vs backup-restore) and notes limitations like SAFE_MODE and API token requirements. However, it does not explicitly compare with sibling tools, though the distinct purpose makes it clear when to use this tool.
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?
Annotations already indicate readOnlyHint and idempotentHint. Description adds that it returns fix tier and compliance references, and supports fuzzy matching. No contradictions. The description adds useful behavioral context 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?
Three sentences: first states purpose, second details content, third adds useful details (no SSH, matching). Every sentence adds value. No fluff, well-structured and front-loaded.
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 tool's simplicity (single parameter), rich annotations, and existence of output schema, the description fully covers what an agent needs: purpose, returned data, and special features (fuzzy matching, no SSH). No gaps.
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 100%, so the parameter is fully described in schema. Description reiterates case-insensitive and fuzzy matching (already in schema) and adds no new parameter-specific semantics. Baseline 3 is appropriate.
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?
Description clearly states it provides a deep-dive explanation of an audit check, enumerating specific return fields (what it does, why it matters, how to fix, fix tier, compliance references). It distinguishes from sibling tools like server_audit (runs audit) and server_fix (applies fix) by focusing on explanation.
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?
Description implies when to use: to get detailed explanation of an audit check. It mentions no SSH required, which is a helpful usage hint. However, it does not explicitly state when not to use or compare with alternatives, though the distinguishing purpose is clear.
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?
Description discloses caching behavior ('Uses cached snapshots when available, falls back to live SSH audit') and output modes. Annotations already provide readOnlyHint, destructiveHint, idempotentHint, so description adds valuable context beyond what annotations say.
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?
Four short, focused sentences. Front-loaded with core purpose, then specifics. No unnecessary words.
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?
Given output schema exists and annotations are rich, description covers key behaviors (caching, fallback, output modes) and prerequisite. Could mention error handling or unregistered servers, but current info is sufficient for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% so baseline 3. Description adds meaning by explaining that default output is category-level and detail enables check-level diff, which clarifies how 'detail' affects results. It also implies behavior of 'fresh' via caching mention.
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 'Compare two servers side-by-side' and specifies the resource (two servers). It distinguishes default and detail modes, and implies comparison vs sibling tools like server_audit (single server) or server_fix.
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 implies when to use: when comparing two servers. It mentions prerequisite 'Requires two registered servers'. However, it does not explicitly state when not to use or suggest alternatives among siblings.
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?
Annotations indicate read-only, idempotent, non-destructive. Description adds requirements (SSH access), limitation (no follow), and clarifies actions. No contradiction.
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?
Description is well-structured with front-loaded purpose. Each sentence provides distinct info. Slightly verbose but appropriate for the complexity of actions and server modes.
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?
Covers all parameter defaults (lines 50, containers false), actions, server types, and limitations. Output schema is present, so return values are documented elsewhere. Comprehensive for a log/metrics tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 5 parameters are described in schema (100% coverage). Description adds context: 'coolify' service only for Coolify servers, 'containers' only for monitor action. Adds value beyond schema.
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?
Description clearly states it fetches logs and system metrics from Kastell-managed servers via SSH, with specific actions 'logs' and 'monitor'. It distinguishes between Coolify and bare servers, and has no sibling overlap for logs/metrics.
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?
Provides guidance on when to use 'logs' vs 'monitor', notes live streaming not available via MCP, and explains service options for different server types. Lacks explicit mention of when not to use this tool vs alternatives, but siblings are distinct.
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?
Beyond annotations (idempotent, non-readonly, non-destructive), the description adds valuable behavioral details: which actions are blocked for bare servers, the need for specific credentials, and that snapshot is not included. This provides safety and expectation-setting without contradicting 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 remarkably concise: three sentences covering the tool's purpose, actions, constraints, prerequisites, and a cross-reference. Every sentence carries essential information, and the structure (purpose -> actions -> exclusions/requirements) is logical and front-loaded.
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?
Given the existence of an output schema (not shown), the description adequately covers the tool's behavior, prerequisites, and limitations. It omits details on synchronous vs async execution and error handling, but the output schema likely captures return values. Overall, it is sufficiently complete for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the schema already describes parameters. The description enhances the 'action' parameter by explaining each enum value's behavior and steps (e.g., 'maintain' runs 5 steps). It does not add value for 'server' or 'skipReboot', but the action enrichment is significant.
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 'Maintain Kastell servers' and enumerates three specific actions (update, restart, maintain) with detailed explanations of their scope and limitations. It distinguishes from sibling tools by mentioning the server_backup tool for snapshots, leaving no ambiguity about the tool's purpose.
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 provides explicit usage conditions: actions restricted to Coolify servers vs bare servers, prerequisites (SSH access, API tokens), and the unavailability of restart for manual servers. It also advises using server_backup for snapshots. However, it does not contrast with other sibling tools like server_doctor or server_fix, leaving some usage context implicit.
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?
Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds value by detailing the returned fields and the sort functionality, but does not cover potential concerns like pagination or data freshness.
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?
Three sentences: first outlines purpose and returns, second guides on sort usage, third provides alternative tool. Front-loaded, no redundancy, and every sentence earns its place.
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 tool's simplicity, optional parameters, existing output schema, and rich annotations, the description covers all essential aspects: what it does, what it returns, how to customize, and when to use an alternative.
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?
Input schema has 100% description coverage, so baseline is 3. The description adds 'Use sort parameter to order results' which matches the schema, and does not further explain 'categories'. No significant additional meaning.
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?
Description clearly states the tool retrieves fleet-wide health and security posture for all servers, listing specific returned fields. It distinguishes itself from the sibling tool 'server_info' by noting what server_info does instead.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises using server_info for per-server cloud status or available server sizes, providing a clear alternative. Also mentions using the sort parameter, guiding the agent on how to order results.
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?
Description aligns with annotations (idempotentHint, non-destructive). Adds behavioral context: 'start installs guard as remote cron (checks disk/RAM/CPU/audit every 5 min)', 'stop removes guard cron entry', 'status shows...threshold breaches'. 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?
Three sentences, efficient and front-loaded. First sentence states purpose, second details actions, third notes prerequisite. No fluff.
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 complexity (2 params, no nested objects, output schema exists), description covers all needed: actions, parameters, preconditions. Output schema reduces need to explain return values, but description still mentions status output details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3. Description adds value: for 'server' param it notes 'Auto-selected if only one server exists', for 'action' it repeats enum but clarifies outcomes. Provides useful context beyond schema.
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?
Clear verb 'manage' with specific resource 'autonomous security monitoring daemon'. Lists three actions: start, stop, status. Distinguishes from siblings like server_audit or server_doctor by specifying it's a cron-based guard daemon.
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?
Explicitly states 'Requires SSH access to target server' and describes each action's effect. Implicitly suggests when to use by contrast with siblings, but does not explicitly list when not to use or name alternatives.
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?
Annotations already indicate idempotent and non-destructive behavior. The description adds that SSH access is required, which is critical operational context. It does not disclose any potential side effects beyond what is implied, but the annotations carry much of the burden.
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 efficient, covering all key actions in a single paragraph without redundancy. It is front-loaded with the primary verb. A more structured layout (e.g., lists) could improve scannability, but current form is adequate.
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 description provides a comprehensive overview of available actions and prerequisites. With an output schema present, return value details are not needed. It covers operational constraints (SSH access) and alternatives, making it complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are well documented. The description adds context beyond the schema, such as 'Auto-selected if only one server exists' for server and 'Optional SSH port for secure-setup' for port, improving clarity.
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 secures Kastell servers and breaks down actions into categories (secure, firewall, domain). It distinguishes from siblings by referencing server_lock for full one-shot hardening, making the purpose specific 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 Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states that all actions require SSH access and recommends using server_lock for full hardening, providing both when-to-use and when-not-to-use guidance. This helps the agent choose correctly.
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?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint false. The description adds valuable context: scans many categories, requires SSH, supports various formats and filters. It does not contradict annotations. Minor gap: no mention of potential performance impact or rate limits.
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?
Reasonably concise for the amount of detail, with key info front-loaded. Could be slightly shorter (e.g., combine some filtering details), but still efficient.
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 10 parameters, 100% schema coverage, and presence of output schema, the description covers all relevant aspects: inputs, outputs, formats, filters, comparisons, prerequisites. It is complete for an audit tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% description coverage, but the description adds extra context beyond schema: auto-selection of server if only one exists, cap of 10 checks for explain, error on threshold failure. This enhances parameter understanding, though the schema already does a fair job.
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 purpose: running a security audit, and specifies the scope (31 categories, 449 checks) and outputs (score, per-category scores, quick wins). It also distinguishes itself from sibling tool server_doctor, avoiding redundancy.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance: requires SSH access, suggests server_doctor for health trends, explains when to use filters (compliance, category, severity), and describes snapshot compare and threshold features. This helps the agent decide when to invoke this tool over alternatives.
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?
Annotations already declare readOnlyHint=true, so the description adds value by specifying required provider tokens and rate limit warnings. Could be more explicit about error behavior if tokens are missing.
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?
Three sentences: overview, action details, prerequisites/limits, alternative tool. No redundancy, front-loaded with key info.
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?
Covers all necessary aspects: actions, parameters, prerequisites, rate limiting, and alternative tool. Output schema exists, so return values need not be described.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage, but description adds context: action summary, server required for single-server, provider+region for sizes, mode default. Baseline 3 with added value.
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 it provides server information with specific actions (list, status, health, sizes) and distinguishes from sibling tool server_fleet which offers fleet-wide health and audit scores.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly describes when to use each action, mentions required environment variables, warns against frequent calls for rate limiting, and directs to server_fleet for fleet-wide health.
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?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds useful context: install/remove are not available, and no SSH is needed. It does not contradict 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 very concise with three sentences. It front-loads the purpose, then lists actions, and finishes with important limitations and prerequisites. No unnecessary 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?
For a simple tool with two parameters, the description covers purpose, actions, limitations, and prerequisites. It is complete given the tool's complexity and the presence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, but the description adds meaning beyond the schema by explaining what 'list' and 'validate' do (e.g., 'shows check counts and status'). The 'name' parameter is explained as optional for validate.
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 'Manage kastell plugins' and enumerates the two specific actions ('list' and 'validate') with their effects. It distinguishes itself from sibling tools that manage other server aspects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says when to use this tool (list, validate) and when not to (install/remove are not available via MCP, use CLI). It also notes that no SSH connection is required, providing clear usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (destructiveHint=true), the description warns about creating a billable resource, mentions the 3-5 minute initialization delay, specifies required API tokens, and notes the blocking safe mode. This adds rich behavioral context beyond what annotations alone provide.
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, well-structured paragraph that front-loads the core purpose, then lists modes, prerequisites, warnings, and timing. Every sentence adds value; no fluff. Capitalization and colons enhance readability.
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 tool's complexity (6 parameters, enums, multiple providers, security constraints), the description covers all essential aspects: core function, default behavior, alternatives, prerequisites, risks, and timing. An output schema exists (not shown), so return values need not be explained. Complete for effective use.
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 100%, so baseline is 3. The description does not add parameter-specific details beyond the schema; it only restates defaults and modes. No extra semantic value for individual parameters is provided.
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 it provisions a new server on a cloud provider, with specific verb 'Provision' and resource 'server'. It distinguishes itself from sibling tools like server_audit, server_backup, etc., by being the creation action. The default mode and alternatives are explicitly mentioned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (provisioning a server), provides a blocking condition (KASTELL_SAFE_MODE=true), and describes alternative modes (bare, dokploy) with distinct behaviors. Also gives environment variable requirements, which serve as prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds context beyond annotations: mentions 24 hardening steps, platform-awareness (preserving Coolify/Dokploy ports), and shows audit score before/after. Annotations already indicate destructiveHint=true, which aligns.
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?
Description is a single paragraph front-loaded with main purpose, then specifics. Efficient but could be slightly more concise (e.g., '24 hardening steps' is repeated notion). Still very good.
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 tool's complexity (24 steps), the description covers purpose, usage, parameters, behavior, and prerequisites. Output schema exists so return values are handled. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3. Description enhances understanding: production as safety gate, dryRun previews and bypasses gate, force overrides hardened check. Adds meaning beyond schema.
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 hardens a server to production standard, lists specific components (SSH, fail2ban, UFW, etc.), and distinguishes from sibling tool server_secure by mentioning fine-grained changes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides when to use (full hardening) and when not (fine-grained changes, use server_secure). Also mentions prerequisites like SSH access and safety gate production=true.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=true; description adds specific behavioral details: destroy permanently deletes from cloud provider and local config, requires provider API tokens, and is blocked by safe mode. No contradictions.
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?
Description is concise (4-5 sentences), front-loaded with core purpose, then action details. Every sentence adds value with no redundancy.
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 7 parameters, 3 enums, and output schema existence, description thoroughly covers actions, prerequisites (env vars), safety mechanisms, mode options, and action-specific parameter requirements.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter descriptions. Description adds further meaning: explains mode default and values, skipVerify only for add, server required for remove/destroy, and that some params can be omitted if client supports elicitation.
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?
Description clearly states the tool manages Kastell servers with three actions: add, remove, destroy. It differentiates from sibling server_* tools by being the CRUD management tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly describes when to use each action (e.g., remove unregisters locally, destroy permanently deletes from cloud), contrasts remove vs destroy, mentions blocked when KASTELL_SAFE_MODE=true, and explains mode options.
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/kastelldev/kastell'
If you have feedback or need assistance with the MCP directory API, please join our Discord server