All 67 tools in the Dokploy MCP Server include semantic annotations that help AI systems (like Claude, ChatGPT, or other MCP clients) understand tool behavior, safety characteristics, and appropriate usage patterns.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Dokploy/mcp/llms.txt
Use this file to discover all available pages before exploring further.
What Are Tool Annotations?
Tool annotations are metadata fields attached to each tool definition that describe operational characteristics:src/mcp/tools/toolFactory.ts:19-25 and applied to every tool during creation.
Core Annotations Explained
readOnlyHint
Tools with
readOnlyHint: true are guaranteed to never modify system state. They’re safe for exploratory queries and can be called without confirmation.- Only retrieves and returns data
- No side effects on Dokploy infrastructure
- Safe to call repeatedly
- Cannot cause data loss or service disruption
src/mcp/tools/project/projectAll.ts:14):
project-all,project-oneapplication-one,application-readAppMonitoring,application-readTraefikConfigdomain-byApplicationId,domain-byComposeId,domain-one,domain-validateDomain,domain-generateDomain,domain-canGenerateTraefikMeDomainspostgres-one,mysql-one
destructiveHint
Characteristics:- Modifies existing resources
- Deletes data or services
- Stops running services
- Changes system state in ways that may be hard to reverse
src/mcp/tools/project/projectRemove.ts:14):
- Deletion:
project-remove,application-delete,domain-delete,postgres-remove,mysql-remove - Stopping services:
application-stop,postgres-stop,mysql-stop - Configuration changes:
application-update,postgres-update,mysql-update, allsave*tools - State changes:
application-cancelDeployment,application-cleanQueues,postgres-changeStatus
idempotentHint
Characteristics:- Calling the tool multiple times with identical input produces identical results
- No accumulating side effects
- Safe to retry on network failures or timeouts
- Predictable behavior
- All read-only tools (reading data doesn’t change with repeated calls)
- Some update operations that are designed to be idempotent (e.g.,
domain-update)
application-deploy- each deployment creates a new deployment recordproject-create- creates a new project each timeapplication-start,application-stop- state changes over time
domain-update is idempotent because updating a domain to the same configuration multiple times results in the same final state.
openWorldHint
All tools in Dokploy MCP Server have
openWorldHint: true because they interact with an external Dokploy API over the network.- Makes network requests to external systems
- Subject to network failures, timeouts, rate limits
- Depends on external service availability
- May have latency variability
- Expect potential network errors
- Handle timeouts gracefully
- Consider rate limiting when making multiple calls
- Validate authentication before bulk operations
Annotation Patterns by Category
Project Management Tools
| Tool | readOnly | destructive | idempotent | Notes |
|---|---|---|---|---|
project-all | ✅ | ❌ | ✅ | Safe listing operation |
project-one | ✅ | ❌ | ✅ | Safe retrieval |
project-create | ❌ | ❌ | ❌ | Creates new resources |
project-update | ❌ | ✅ | ❌ | Modifies existing project |
project-duplicate | ❌ | ❌ | ❌ | Creates new project |
project-remove | ❌ | ✅ | ❌ | Irreversible deletion |
Application Lifecycle Tools
| Tool | readOnly | destructive | idempotent | Notes |
|---|---|---|---|---|
application-one | ✅ | ❌ | ✅ | Read operation |
application-create | ❌ | ❌ | ❌ | Creates new app |
application-deploy | ❌ | ❌ | ❌ | Each deploy is unique |
application-start | ❌ | ❌ | ❌ | State change |
application-stop | ❌ | ✅ | ❌ | Stops service |
application-delete | ❌ | ✅ | ❌ | Permanent removal |
application-update | ❌ | ✅ | ❌ | Modifies configuration |
Domain Management Tools
| Tool | readOnly | destructive | idempotent | Notes |
|---|---|---|---|---|
domain-one | ✅ | ❌ | ✅ | Read operation |
domain-create | ❌ | ❌ | ❌ | Creates new domain |
domain-update | ❌ | ❌ | ✅ | Idempotent update |
domain-delete | ❌ | ✅ | ❌ | Removes domain |
domain-validateDomain | ✅ | ❌ | ✅ | Validation check |
Database Tools (PostgreSQL & MySQL)
| Tool | readOnly | destructive | idempotent | Notes |
|---|---|---|---|---|
*-one | ✅ | ❌ | ✅ | Read operation |
*-create | ❌ | ❌ | ❌ | Creates new database |
*-deploy | ❌ | ✅ | ❌ | Deploys container |
*-start | ❌ | ✅ | ❌ | Starts database |
*-stop | ❌ | ✅ | ❌ | Stops database |
*-remove | ❌ | ✅ | ❌ | Deletes database |
*-update | ❌ | ✅ | ❌ | Modifies configuration |
Why Annotations Matter for AI Safety
Semantic annotations enable AI systems to make informed decisions about tool usage:1. Risk Assessment
AI systems can categorize tools by risk level:- Low risk:
readOnlyHint: true- Safe for autonomous use - Medium risk:
destructiveHint: false, readOnlyHint: false- Creates resources - High risk:
destructiveHint: true- Requires confirmation
2. Retry Logic
idempotentHint informs retry strategies:
3. User Confirmation
AI can prompt for confirmation on destructive operations:4. Exploratory Queries
Read-only tools can be used freely for exploration:Best Practices for Tool Usage
Read Before Write
Always use read-only tools to gather context before calling destructive operations. Example:
project-one before project-update.Confirm Destructive Actions
Request explicit user confirmation for any tool with
destructiveHint: true, especially deletions.Handle Idempotency
Retry idempotent operations on transient failures, but avoid retrying non-idempotent operations automatically.
Expect Network Issues
All tools have
openWorldHint: true. Implement timeouts, error handling, and graceful degradation.Safe Workflow Example
Implementation Details
Annotations are defined in the tool factory (src/mcp/tools/toolFactory.ts:42-124):
Real-World Examples
Example 1: Safe Database Exploration
Example 2: Careful Application Deletion
Summary
Tool annotations provide essential metadata for safe AI interaction:- readOnlyHint: Safe for exploration, no modifications
- destructiveHint: Requires caution, may be irreversible
- idempotentHint: Safe to retry, consistent results
- openWorldHint: External dependencies, handle failures
Related Documentation
API Overview
Complete guide to all 67 tools
Troubleshooting
Common issues and solutions