mcp-cloudron
Provides tools for managing a Cloudron instance, including listing installed applications, retrieving detailed app information and health status, checking system version and provider information, and performing administrative tasks like backup and user management.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-cloudronlist my apps and check if they are all healthy"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-cloudron
MCP server for Cloudron instance management. List apps, get status, and manage your self-hosted applications through the Model Context Protocol.
Features
List Applications: Get all installed apps with status, health, and memory usage
Get App Details: Retrieve detailed information about specific applications
Instance Status: Check Cloudron version, provider, and configuration
Related MCP server: MCP Beget
Installation
npm install @serenichron/mcp-cloudronOr run directly with npx:
npx @serenichron/mcp-cloudronConfiguration
Environment Variables
Variable | Required | Description |
| Yes | Your Cloudron instance URL (e.g., |
| Yes | API token from Cloudron Admin Panel |
Getting an API Token
Log in to your Cloudron Admin Panel
Go to Settings → API Tokens
Click Create API Token
Give it a name (e.g., "MCP Server")
Copy the generated token
Usage with Claude Desktop
Add to your Claude Desktop configuration (claude_desktop_config.json):
{
"mcpServers": {
"cloudron": {
"command": "npx",
"args": ["@serenichron/mcp-cloudron"],
"env": {
"CLOUDRON_BASE_URL": "https://your-cloudron-instance.com",
"CLOUDRON_API_TOKEN": "your-api-token"
}
}
}
}Usage with Docker MCP Gateway
Add to your Docker MCP config (~/.docker/mcp/config.yaml):
mcpServers:
cloudron:
command: npx
args: ["@serenichron/mcp-cloudron"]
env:
CLOUDRON_BASE_URL: "https://your-cloudron-instance.com"
CLOUDRON_API_TOKEN: "your-api-token"Available Tools
cloudron_list_apps
List all installed applications on the Cloudron instance.
Parameters: None
Returns: List of apps with name, domain, ID, state, health, and memory usage.
Example output:
Found 3 apps:
WordPress (blog.example.com)
ID: abc123-def456
State: installed
Health: healthy
Memory: 512 MB
GitLab (git.example.com)
ID: xyz789-uvw012
State: installed
Health: healthy
Memory: 4096 MBcloudron_get_app
Get detailed information about a specific application.
Parameters:
Name | Type | Required | Description |
| string | Yes | The unique identifier of the application |
Returns: App details including name, domain, state, health, and memory.
cloudron_get_status
Get the current status and configuration of the Cloudron instance.
Parameters: None
Returns: Instance information including name, version, admin URL, provider, and demo mode status.
Example output:
Cloudron Status:
Name: My Cloudron
Version: 9.0.13
Admin URL: my.cloudron.io
Provider: digitalocean
Demo Mode: falseDevelopment
Setup
git clone https://github.com/serenichron/mcp-cloudron.git
cd mcp-cloudron
npm installBuild
npm run buildRun locally
export CLOUDRON_BASE_URL="https://your-instance.com"
export CLOUDRON_API_TOKEN="your-token"
npm startTest
npm testAPI Reference
The server uses the Cloudron REST API. Currently implemented endpoints:
GET /api/v1/apps- List all applicationsGET /api/v1/apps/:id- Get application by IDGET /api/v1/cloudron/status- Get instance status
Changelog
v0.2.0 (2025-12-26)
New Features:
15 new MCP tools across app management, backups, users, infrastructure
Pre-flight validation for destructive operations (F37)
Storage checks before data creation (F36)
Async task tracking and cancellation (F34, F35)
Critical Bug Fixes:
F23b: Corrected endpoint path and added required domain parameter
F04: Fixed HTTP method (DELETE → POST) for uninstall operation
Both bugs discovered via real API testing (mock tests validated nothing)
Testing:
Real Cloudron API integration testing
Validated against live instance
All 16 tools tested with actual API calls
Roadmap
Future versions may include:
Domain configuration
App installation from App Store
Community
💬 Cloudron Forum - Discussion and support
🐛 Issue Tracker - Report bugs
💡 Feature Requests - Suggest improvements
Related Projects
Model Context Protocol - MCP documentation
Cloudron - Self-hosted app platform
License
MIT - See LICENSE for details.
Contributing
Contributions welcome! Please open an issue or submit a pull request.
Related
Available Tools
19 toolscloudron_cancel_taskA
Cancel a running async operation (kill switch). Returns updated task status with state "cancelled". Already completed tasks cannot be cancelled. Cancelled tasks cleanup resources (e.g., partial backups deleted).
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | The unique identifier of the task to cancel |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: it returns updated task status with state 'cancelled', cannot cancel completed tasks, and performs resource cleanup (e.g., partial backups deleted). This covers mutation effects and constraints beyond basic functionality.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded: the first sentence states the core purpose, followed by key behavioral details. Every sentence adds value with no wasted words, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description compensates well by explaining return values ('updated task status with state "cancelled"') and cleanup behavior. However, it could mention error cases or permissions, leaving minor gaps for a mutation tool with full context burden.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (taskId is well-described in schema), so the baseline is 3. The description does not add meaning beyond the schema, as it doesn't elaborate on taskId format or examples. It relies on the schema for parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Cancel a running async operation') and resource ('task'), distinguishing it from sibling tools like cloudron_task_status (which checks status) and cloudron_control_app (which controls apps). The 'kill switch' metaphor reinforces the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use it ('running async operation') and when not to ('Already completed tasks cannot be cancelled'), but does not explicitly mention alternatives like cloudron_task_status for checking status or other task-related tools. This is helpful but lacks explicit sibling differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cloudron_check_storageA
Check available disk space before operations that create data (backup, install). Returns available/total/used disk space in MB, plus warning and critical threshold alerts.
| Name | Required | Description | Default |
|---|---|---|---|
| requiredMB | No | Optional: Required disk space in MB. If provided, checks if available >= requiredMB |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: it's a read-only check (implied by 'check' and no mutation terms), returns specific data (available/total/used disk space in MB), and includes threshold alerts (warning and critical). However, it doesn't cover potential errors, rate limits, or authentication needs, leaving some gaps in full transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise and well-structured, consisting of two sentences that front-load the purpose and context, followed by output details. Every sentence adds essential information without redundancy, making it efficient and easy to parse for an AI agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (1 optional parameter, no output schema, no annotations), the description is mostly complete. It covers purpose, usage context, output format, and parameter semantics. However, it lacks details on error handling or exact output structure, which could be beneficial for full completeness, but it's adequate for the tool's scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the baseline is 3. The description adds value by explaining the parameter's purpose ('checks if available >= requiredMB') and context ('Optional: Required disk space in MB'), which clarifies the semantics beyond the schema's basic description. This enhances understanding but doesn't fully compensate for missing output schema details, warranting a score above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('check available disk space') and resources ('disk space in MB'), distinguishing it from siblings like backup or install tools by focusing on pre-operation verification. It explicitly mentions the context ('before operations that create data') and output format ('available/total/used disk space in MB'), making the purpose unambiguous and distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool ('before operations that create data (backup, install)'), offering a clear context for its application. It also implies alternatives by specifying it's for pre-checking, suggesting other tools (e.g., cloudron_create_backup) should be used for the actual operations, though it doesn't name specific alternatives, the context is sufficient for effective decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cloudron_configure_appB
Update application configuration including environment variables, memory limits, and access control settings. Returns 200 OK with updated app config and restart requirement flag.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The unique identifier of the application to configure | |
| config | Yes | Configuration object with env vars, memoryLimit, and/or accessRestriction |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It indicates this is a mutation operation ('Update'), mentions the return format ('Returns 200 OK with updated app config and restart requirement flag'), and hints at side effects (restart requirement). However, it lacks details on permissions, rate limits, or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized with two sentences: one stating the purpose and one describing the return value. It's front-loaded with the core functionality and avoids unnecessary details, though it could be slightly more structured by separating behavioral aspects.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is moderately complete. It covers the action and return format but lacks details on error handling, permissions, or side effects beyond the restart flag. Given the complexity of updating app configuration, more behavioral context would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description adds minimal value by listing configuration aspects ('environment variables, memory limits, and access control settings'), which aligns with the schema but doesn't provide additional syntax or format details beyond what's already in the structured fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Update application configuration') and resources involved ('environment variables, memory limits, and access control settings'), distinguishing it from sibling tools like cloudron_get_app (read-only) or cloudron_control_app (start/stop operations). It provides a comprehensive overview of what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like cloudron_control_app or cloudron_get_app, nor does it mention prerequisites or exclusions. It simply states what the tool does without contextual usage information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cloudron_control_appA
Control app lifecycle (start, stop, restart). Returns 202 Accepted with task ID for async operation tracking via cloudron_task_status.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The unique identifier of the application to control | |
| action | Yes | Action to perform on the app |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: it's a mutation tool (control lifecycle), returns 202 Accepted (async operation), provides a task ID, and mentions tracking via cloudron_task_status. It doesn't cover permissions, rate limits, or error cases, but gives substantial operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, followed by critical behavioral details (return code and async tracking). Both sentences earn their place with zero waste, making it highly efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description compensates well by explaining the async nature and task tracking. For a mutation tool with 2 parameters, it provides sufficient context for an agent to use it correctly, though it could mention error handling or prerequisites.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents both parameters (appId and action with enum). The description adds no parameter-specific semantics beyond what's in the schema, maintaining the baseline score of 3 for adequate coverage without extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('control app lifecycle') and resources ('app'), with explicit verbs (start, stop, restart) in parentheses. It distinguishes from siblings like cloudron_get_app (read-only) and cloudron_install_app (installation rather than lifecycle control).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for app lifecycle control but doesn't explicitly state when to use this vs. alternatives like cloudron_get_status (for status checks) or cloudron_task_status (for tracking). It mentions async operation tracking via cloudron_task_status, providing some context but not explicit when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cloudron_create_backupA
Create a new backup of the Cloudron instance. Performs F36 pre-flight storage check (requires 5GB minimum). Returns task ID for tracking backup progress via cloudron_task_status (F34).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: it performs a pre-flight check (F36) with a storage requirement (5GB minimum), and it returns a task ID for progress tracking. This covers safety and operational aspects well, though it could mention potential impacts like system load or backup size limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, followed by essential details (pre-flight check, storage requirement, task ID usage). Every sentence adds critical information without redundancy, making it highly efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (a backup operation with pre-flight checks), no annotations, and no output schema, the description is largely complete. It explains what the tool does, prerequisites, and how to handle the output (track via cloudron_task_status). A minor gap is the lack of details on error conditions or backup retention, but it covers the essentials effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description adds value by explaining the tool's behavior (pre-flight check, task ID return) beyond the schema, justifying a score above the baseline of 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Create a new backup') and resource ('Cloudron instance'), distinguishing it from sibling tools like cloudron_list_backups (which lists backups) and cloudron_task_status (which tracks progress). It uses precise verbs and identifies the exact target.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when to use this tool (for creating backups) and when not to use it (by mentioning prerequisites like the F36 pre-flight storage check requiring 5GB minimum). It also provides a clear alternative for tracking progress via cloudron_task_status, directly naming the sibling tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cloudron_create_userA
Create a new user on the Cloudron instance with role assignment (atomic operation). Password must be at least 8 characters long and contain at least 1 uppercase letter and 1 number. Returns 201 Created with user object.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | User email address (must be valid format) | ||
| password | Yes | User password (8+ characters, 1 uppercase, 1 number) | |
| role | Yes | User role: admin (full access), user (standard access), or guest (limited access) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that this is a write operation ('Create'), specifies password requirements (length and character types), indicates it's atomic, and states the return behavior ('Returns 201 Created with user object'). However, it lacks details on error conditions, authentication needs, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, followed by password rules and return behavior in a single, efficient sentence. Every element (atomic operation, password specs, return code) serves a clear purpose without redundancy, 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description partially compensates by covering the write operation, password rules, and return code. However, it lacks details on permissions, error handling, or the structure of the returned user object, leaving gaps for a mutation tool with 3 required parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters (email, password, role) with descriptions and enum values. The description adds minimal value by restating password requirements and hinting at role assignment, but doesn't provide additional context beyond what's in the schema, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Create a new user'), the target resource ('on the Cloudron instance'), and includes the key feature 'with role assignment (atomic operation)'. It distinguishes from sibling tools like cloudron_list_users (which lists users) and cloudron_get_status (which checks status), making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. While it implies usage for creating users, it doesn't mention prerequisites (e.g., admin permissions), when not to use it (e.g., for updating existing users), or refer to sibling tools like cloudron_list_users for checking existing users first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cloudron_get_appC
Get detailed information about a specific application by its ID.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The unique identifier of the application |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves 'detailed information,' but doesn't specify what that includes, whether it's read-only, requires permissions, or has rate limits. This is a significant gap for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, with no wasted information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'detailed information' entails, the return format, or error conditions. For a tool with no structured behavioral data, this leaves critical gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with 'appId' clearly documented as 'The unique identifier of the application.' The description adds no additional parameter details beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get detailed information') and resource ('about a specific application'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'cloudron_get_status' or 'cloudron_search_apps', which might provide similar or overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, exclusions, or compare it to siblings like 'cloudron_list_apps' or 'cloudron_get_status', leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cloudron_get_logsB
Get logs for an app or service. Logs are formatted with timestamps and severity levels for readability. Type parameter determines endpoint: "app" calls GET /api/v1/apps/:id/logs, "service" calls GET /api/v1/services/:id/logs.
| Name | Required | Description | Default |
|---|---|---|---|
| resourceId | Yes | App ID or service ID to retrieve logs for | |
| type | Yes | Type of resource: "app" for application logs, "service" for system service logs | |
| lines | No | Optional: Number of log lines to retrieve (default 100, max 1000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It adds useful behavioral context: logs are formatted with timestamps and severity levels for readability, and it specifies the API endpoints. However, it doesn't cover important aspects like rate limits, authentication needs, error handling, or response format, leaving gaps for a tool with no annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized with two sentences: the first states the purpose and log formatting, the second explains the type parameter's effect. It's front-loaded with key information and avoids redundancy, though it could be slightly more streamlined by integrating the formatting detail with the endpoint explanation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is incomplete. It covers the basic purpose and some behavioral traits but misses critical details like the response structure (e.g., log format specifics beyond 'timestamps and severity levels'), error cases, or performance considerations. For a 3-parameter tool with no structured support, this leaves significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal value beyond the schema: it reiterates the 'type' parameter's role in endpoint selection but doesn't provide additional semantic context (e.g., examples of resourceId formats or practical use cases for lines). Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as 'Get logs for an app or service' with a specific verb ('Get') and resource ('logs'), distinguishing it from siblings like cloudron_get_app or cloudron_get_status. However, it doesn't explicitly differentiate from potential log-related siblings (none exist in the provided list), so it's not a perfect 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by specifying the 'type' parameter determines the endpoint (app vs. service logs), but it doesn't provide explicit guidance on when to use this tool versus alternatives (e.g., no mention of other logging tools or when to prefer app over service logs). It offers some context but lacks clear when/when-not directives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cloudron_get_statusB
Get the current status and configuration of the Cloudron instance.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool retrieves status and configuration, implying a read-only operation, but doesn't specify details like authentication requirements, rate limits, or what specific data is returned. This leaves gaps in understanding the tool's behavior beyond its basic function.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that efficiently conveys the tool's purpose without unnecessary words. It's front-loaded with the core action and resource, making it easy to parse. Every part of the sentence contributes directly to understanding the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (0 parameters, no output schema), the description is adequate for a basic status retrieval function. However, without annotations or output schema, it lacks details on return values or behavioral constraints, making it minimally complete but not fully informative for an agent needing to interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter information, which is appropriate here, and it doesn't contradict the schema. A baseline score of 4 is given as the description aligns with the schema's simplicity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get') and resource ('current status and configuration of the Cloudron instance'), making it easy to understand what it does. However, it doesn't explicitly differentiate from sibling tools like 'cloudron_task_status' or 'cloudron_get_app', which also retrieve status information, leaving room for potential confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context for usage, or exclusions, leaving the agent to infer usage based on the name alone. This lack of explicit direction could lead to misapplication among similar sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cloudron_install_appA
Install application from Cloudron App Store with pre-flight validation. Calls F23a (cloudron_validate_manifest) to verify app exists and F36 (cloudron_check_storage) to ensure sufficient disk space. Returns task ID for async operation tracking via cloudron_task_status.
| Name | Required | Description | Default |
|---|---|---|---|
| manifestId | Yes | App manifest ID from App Store | |
| location | Yes | Subdomain for app installation | |
| domain | Yes | Domain where app will be installed (REQUIRED) | |
| portBindings | No | Optional port bindings | |
| accessRestriction | Yes | Access control setting (can be null for no restriction) | |
| env | No | Environment variables |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key traits: it's an async operation (returns task ID for tracking via cloudron_task_status), involves validation steps, and implies mutation (installation). It could improve by mentioning permissions or rate limits, but it covers critical behavior beyond basic purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, with three sentences that each earn their place: first states the core action, second details validation steps, and third explains async tracking. No wasted words, and it efficiently conveys essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (async operation with validation), no annotations, and no output schema, the description is mostly complete. It covers the installation process, validation dependencies, and async nature, but could benefit from mentioning error handling or response format to fully compensate for missing structured data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description does not add meaning beyond the schema, such as explaining parameter interactions or usage examples. Baseline 3 is appropriate as the schema handles parameter documentation adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Install application from Cloudron App Store') and resource ('application'), distinguishing it from siblings like cloudron_configure_app, cloudron_control_app, and cloudron_uninstall_app. It specifies the source ('from Cloudron App Store') and includes pre-flight validation, making the purpose explicit and differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context by mentioning pre-flight validation calls to cloudron_validate_manifest and cloudron_check_storage, indicating when to use this tool for app installation with checks. However, it does not explicitly state when not to use it or name alternatives like cloudron_configure_app for post-installation adjustments, leaving some guidance gaps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cloudron_list_appsA
List all installed applications on the Cloudron instance. Returns app details including name, domain, status, and health.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the return format ('app details including name, domain, status, and health'), which is helpful. However, it does not mention behavioral aspects like permissions needed, rate limits, pagination, or error handling, leaving gaps for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with zero waste: the first states the purpose and scope, and the second specifies the return details. It is front-loaded and efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description provides basic purpose and return details but lacks completeness for behavioral context (e.g., permissions, rate limits). It is adequate for a simple list tool but has clear gaps in transparency.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so the schema fully documents the lack of inputs. The description does not add parameter-specific information, but this is acceptable as there are no parameters to explain, warranting a baseline score above 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('List all installed applications') and resource ('on the Cloudron instance'), distinguishing it from siblings like cloudron_get_app (single app) and cloudron_search_apps (filtered search). It also specifies the scope ('all installed') and return details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving comprehensive app information, but does not explicitly state when to use this versus alternatives like cloudron_get_app (single app) or cloudron_search_apps (filtered search). It provides clear context but lacks explicit exclusions or named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cloudron_list_backupsA
List all backups available on the Cloudron instance. Returns backup details including ID, timestamp, size, app count, and status. Backups are sorted by timestamp (newest first).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: it returns backup details (ID, timestamp, size, app count, status), sorts results by timestamp (newest first), and implies a read-only operation without destructive effects. However, it lacks information on potential rate limits, authentication requirements, or error handling, which are important for a tool interacting with a Cloudron instance.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise and well-structured in two sentences: the first states the purpose and return details, and the second specifies the sorting order. Every sentence adds essential information without redundancy, making it front-loaded and efficient for an AI agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (0 parameters, no output schema, no annotations), the description is largely complete. It covers the purpose, output details, and sorting behavior. However, without annotations or an output schema, it could benefit from mentioning potential limitations (e.g., pagination, error cases) or authentication context, slightly reducing completeness for a Cloudron interaction tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately focuses on output semantics, detailing what information is returned (backup details) and sorting behavior, which adds value beyond the empty schema. A baseline of 4 is applied since no parameters exist, and the description compensates by explaining the tool's output context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('all backups available on the Cloudron instance'), making the purpose specific and unambiguous. It distinguishes itself from siblings like cloudron_create_backup (creation) and cloudron_task_status (task monitoring), establishing a clear read-only listing function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving backup information, but provides no explicit guidance on when to use this tool versus alternatives like cloudron_check_storage (which might overlap in storage-related queries) or cloudron_get_status (which could include backup status). No exclusions or prerequisites are mentioned, leaving usage context inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cloudron_list_domainsA
List all configured domains on the Cloudron instance. Returns domain details including name, provider, verification status, and TLS configuration.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and discloses key behavioral traits: it returns domain details including name, provider, verification status, and TLS configuration. However, it lacks information on pagination, rate limits, or authentication needs, leaving some gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose in the first sentence and adds useful detail in the second sentence. Every sentence earns its place with no wasted words, making it highly efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is largely complete for a read-only list operation. It specifies what is returned, but could improve by mentioning any limitations (e.g., no filtering options) or output format details to reach a score of 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description appropriately focuses on output semantics, providing a baseline score of 4 as it adds value by detailing what information is returned without redundant parameter explanations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('List all configured domains') and resource ('on the Cloudron instance'), distinguishing it from siblings like cloudron_list_apps or cloudron_list_users by focusing on domains rather than apps or users.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving domain information but does not explicitly state when to use this tool versus alternatives like cloudron_get_app or cloudron_list_apps, nor does it provide exclusions or prerequisites for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cloudron_list_usersA
List all users on the Cloudron instance. Returns user details including ID, email, username, role, and creation date. Users are sorted by role (admin, user, guest) then email.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It adds useful context about sorting behavior (by role then email) and return format details (ID, email, username, role, creation date), but does not cover aspects like pagination, rate limits, or authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured in two sentences: the first states the purpose and return details, the second explains sorting. Every sentence adds value without redundancy, making it front-loaded and appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is largely complete for a list operation. It explains what is returned and how it's sorted, though it could benefit from mentioning potential limitations like large result sets or error conditions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so the baseline is high. The description appropriately adds no parameter information, as none are needed, focusing instead on output behavior and sorting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('List all users') and resource ('on the Cloudron instance'), distinguishing it from sibling tools like cloudron_create_user or cloudron_list_apps. It precisely defines the scope as all users without filtering parameters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by specifying it returns all users sorted by role and email, but it does not explicitly state when to use this tool versus alternatives like cloudron_search_apps or cloudron_get_app. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cloudron_search_appsA
Search the Cloudron App Store for available applications. Returns app details including name, description, version, icon URL, and install count. Results are sorted by relevance score. Empty query returns all available apps.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Search query to filter apps (optional - empty returns all apps) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: it's a read-only search operation (implied by 'Search'), returns specific app details (name, description, version, icon URL, install count), sorts results by relevance, and handles empty queries by returning all apps. However, it doesn't mention rate limits, authentication needs, or pagination behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured in three sentences: the core purpose, return details, and special case handling. Every sentence adds essential information without redundancy, making it front-loaded and easy to parse for an AI agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 optional parameter, no annotations, no output schema), the description is largely complete. It covers purpose, behavior, and parameter implications adequately. However, without an output schema, it could benefit from more detail on return format (e.g., structure of app details, pagination), though the listed fields provide a reasonable baseline.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single parameter 'query' fully documented in the schema. The description adds minimal value beyond the schema by reiterating that an empty query returns all apps, but doesn't provide additional semantic context like search syntax, character limits, or example queries. The baseline of 3 is appropriate given the high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Search the Cloudron App Store') and resource ('available applications'), distinguishing it from sibling tools like cloudron_list_apps (which likely lists installed apps) and cloudron_get_app (which likely retrieves details of a specific installed app). It precisely defines the scope as searching the App Store rather than installed apps.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context about when to use this tool: for searching the App Store. It implies an alternative use case (empty query returns all apps) but doesn't explicitly state when to choose this over cloudron_list_apps (which might list installed apps) or other siblings, nor does it provide exclusions or prerequisites for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cloudron_task_statusA
Get the status of an async operation (backup, install, restore, etc.) by task ID. Returns state (pending/running/success/error/cancelled), progress (0-100%), and message.
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | The unique identifier of the task to check |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the return values (state, progress, message) and their formats, which is helpful behavioral context. However, it does not mention potential side effects, error handling, or rate limits, leaving some gaps for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the purpose and includes essential details (operation types, return values) without any wasted words. Every part of the sentence contributes value, 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 parameter, no output schema, no annotations), the description is mostly complete: it explains the purpose, usage, and return values. However, it could improve by addressing error cases or linking to sibling tools, but it's sufficient for basic understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the parameter 'taskId' well-documented in the schema. The description adds no additional parameter semantics beyond what the schema provides, such as format examples or constraints, so it meets the baseline of 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific verb ('Get the status') and resource ('of an async operation') with examples of operation types (backup, install, restore, etc.) and distinguishes it from siblings by focusing on task status retrieval rather than task creation, cancellation, or other operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by specifying 'by task ID' and listing operation types, but does not explicitly state when to use this tool versus alternatives like 'cloudron_get_status' or 'cloudron_get_logs'. It provides clear context but lacks explicit exclusions or named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cloudron_uninstall_appA
Uninstall an application with pre-flight safety validation. DESTRUCTIVE OPERATION. First validates via cloudron_validate_operation (checks app exists, no dependencies, backup recommended), then calls DELETE /api/v1/apps/:id. Returns 202 Accepted with task ID for async operation tracking.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The unique identifier of the application to uninstall |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully discloses behavioral traits: it highlights 'DESTRUCTIVE OPERATION', details the validation process (checks app exists, no dependencies, backup recommended), specifies the API call (DELETE /api/v1/apps/:id), and describes the async response (202 Accepted with task ID).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, starting with the core action and key warnings, followed by validation steps and API details, with every sentence adding essential information without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (destructive operation with validation) and no annotations or output schema, the description is largely complete, covering purpose, behavior, and process, though it could briefly mention error handling or prerequisites for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the baseline is 3. The description does not add meaning beyond the schema's parameter details, as it focuses on behavioral aspects rather than explaining the appId parameter further.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Uninstall an application') and distinguishes it from siblings like cloudron_install_app, cloudron_configure_app, or cloudron_control_app by emphasizing its destructive nature and validation steps.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear context on when to use this tool by mentioning pre-flight safety validation and referencing cloudron_validate_operation for checks, but does not explicitly state when not to use it or name alternatives for similar operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cloudron_validate_manifestA
Validate app manifest before installation (pre-flight safety check). Checks storage sufficiency via F36, dependency availability, and manifest schema validity. Returns validation report with errors and warnings.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The App Store ID to validate |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It describes what the tool does (validates storage, dependencies, and schema) and the output (validation report with errors and warnings), which is helpful. However, it lacks details on permissions needed, rate limits, or side effects, leaving some behavioral aspects unclear for a validation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, starting with the core purpose and followed by specific checks and output details. Every sentence adds value without redundancy, making it efficient and easy to understand at a glance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (validation with multiple checks), no annotations, and no output schema, the description does a good job by explaining the validation scope and output format. However, it could be more complete by detailing the report structure or error types, which would help the agent interpret results better.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the 'appId' parameter clearly documented as 'The App Store ID to validate'. The description does not add any additional meaning or context beyond what the schema provides, such as format examples or constraints, so it meets the baseline for high schema coverage without compensating further.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('validate app manifest'), resource ('app manifest'), and purpose ('before installation (pre-flight safety check)'), distinguishing it from sibling tools like cloudron_install_app or cloudron_validate_operation. It explicitly mentions what it validates, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool ('before installation (pre-flight safety check)'), implying it should be used prior to installation operations. However, it does not explicitly state when not to use it or name alternatives among siblings, such as cloudron_validate_operation, which might handle different validation aspects.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cloudron_validate_operationA
Pre-flight validation for destructive operations (uninstall app, delete user, restore backup). Returns validation result with blocking errors, warnings, and recommendations.
| Name | Required | Description | Default |
|---|---|---|---|
| operation | Yes | Type of destructive operation to validate | |
| resourceId | Yes | ID of the resource being operated on (appId, userId, or backupId) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the tool performs validation for destructive operations and returns results with errors, warnings, and recommendations, which is useful context. However, it doesn't mention authentication requirements, rate limits, or what constitutes 'blocking' errors versus warnings, leaving some behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded and concise, consisting of two sentences that efficiently convey purpose and output. Every sentence earns its place by providing essential information without redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (validation for destructive ops) and lack of annotations/output schema, the description is reasonably complete. It covers purpose, usage, and output structure. However, it could improve by detailing the return format more explicitly (e.g., JSON structure) or error handling, but it's adequate for a validation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema (e.g., it doesn't explain the format of resourceId or details about operation types). Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('Pre-flight validation') and resources ('destructive operations'), explicitly listing the three operation types. It distinguishes from siblings by focusing on validation rather than execution (e.g., cloudron_uninstall_app).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool: before performing destructive operations (uninstall app, delete user, restore backup). It implies alternatives by referencing the actual operations, though it doesn't name specific sibling tools. The context is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
19 tool updates
- First observed
cloudron_cancel_task - First observed
cloudron_check_storage - First observed
cloudron_configure_app - First observed
cloudron_control_app - First observed
cloudron_create_backup - First observed
cloudron_create_user - First observed
cloudron_get_app - First observed
cloudron_get_logs - First observed
cloudron_get_status - First observed
cloudron_install_app - First observed
cloudron_list_apps - First observed
cloudron_list_backups - First observed
cloudron_list_domains - First observed
cloudron_list_users - First observed
cloudron_search_apps - First observed
cloudron_task_status - First observed
cloudron_uninstall_app - First observed
cloudron_validate_manifest - First observed
cloudron_validate_operation
TDQS
Each tool has a clearly distinct purpose with no significant overlap. For example, cloudron_control_app handles app lifecycle control, cloudron_configure_app manages configuration updates, and cloudron_get_logs retrieves logs, all targeting different aspects of the Cloudron system. The descriptions clearly differentiate between management, monitoring, validation, and operational tasks.
All tools follow a consistent snake_case naming pattern with a 'cloudron_' prefix and descriptive verb_noun combinations (e.g., cloudron_list_apps, cloudron_create_backup, cloudron_validate_manifest). This uniformity makes the tool set predictable and easy to navigate, with no deviations in style or structure.
With 19 tools, the count is slightly high but reasonable for a comprehensive Cloudron management server covering apps, backups, users, domains, and system operations. It includes essential CRUD operations, validation, and monitoring tools, though it could be streamlined by merging some validation or status-checking tools without losing functionality.
The tool set provides complete coverage for Cloudron instance management, including app lifecycle (install, configure, control, uninstall, list, search, get), backup operations (create, list), user management (create, list), domain listing, system status, logs, storage checks, and async task handling. There are no obvious gaps, and tools like cloudron_validate_manifest and cloudron_validate_operation ensure safety for destructive operations.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
The Remote MCP server acts as a standardized bridge between LLM applications (like Claude, ChatGPT, and Cursor) and external services, enabling AI agents to access external tools and resources. Its primary capability is providing a centralized search tool to discover other MCP servers and their respective tools. Unlike local implementations, it runs remotely with OAuth authentication and permission controls for security.
The Google Compute Engine MCP server is a fully-managed Model Context Protocol server that provides tools to manage Google Compute Engine resources through AI agents. It enables capabilities including instance management (creating, starting, stopping, resetting, listing), disk management, handling instance templates and group managers, viewing machine and accelerator types, managing images, and accessing reservation and commitment information. The server operates as a zero-deployment, enterprise-grade endpoint at https://compute.googleapis.com/mcp with built-in IAM-based security.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceAn MCP server that enables AI assistants to manage infrastructure, applications, databases, and services through the Coolify PaaS platform.164MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server for managing Beget hosting services including sites, domains, databases, and mail directly through Claude Code. It provides comprehensive tools for configuring DNS, FTP, Cron jobs, and managing backups via the Beget API.3MIT
- AlicenseBqualityDmaintenanceA local MCP server for managing WHM and cPanel servers through AI clients, supporting server health, account, DNS, email, database, SSL, bandwidth, disk, cron, and service-management tools across multiple WHM accounts.31MIT
- AlicenseNot gradedqualityAmaintenanceMCP server for Coolify infrastructure management, providing 45 tools for servers, applications, databases, deployments, and diagnostics via natural language.22MIT
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/serenichron/mcp-cloudron'
If you have feedback or need assistance with the MCP directory API, please join our Discord server