Skip to main content
Glama
fkom13

MCP SFTP Orchestrator

by fkom13

🚀 MCP Orchestrator — SSH/SFTP Infrastructure Orchestration Server

Version : 11.3.0
License : MIT
Node : >= 18.0.0

A Model Context Protocol (MCP) server that turns any AI agent (Claude, OpenCode, Cursor...) into a full-fledged system administrator. Persistent queue, SSH connection pool, hybrid sync/async execution.

✨ Key Features

  • 63 MCP tools — SSH, SFTP, file ops, monitoring, snapshots, tunnels

  • Built-in security — Command blocklist, port allowlist, hash protection

  • Multi-servertask_exec {alias:["vps1","vps2"]} or alias:"all"}

  • Persistence — tmux + persistent queue = sessions that survive crashes

  • Snapshots — Deduplicated versioning of your critical files

  • SSH Tunnels — Local, Remote, SOCKS5 with secured port allowlist

  • AI Guide — Built-in manual for the agent (section:index/workflows/audit/security)

🇫🇷 Version française : README.fr.md


📦 Installation

npx @fkom13/mcp-sftp-orchestrator

Via git

git clone https://github.com/fkom13/mcp-sftp-orchestrator.git
cd mcp-sftp-orchestrator
npm install
cp .env.example .env
# Edit .env with your paths

Requirements: Node.js >= 18.0.0


Related MCP server: SSH MCP Server

⚙️ Configuration (.env)

All variables are optional. Defaults are designed for standard usage.

Variable

Default

Description

MCP_DATA_DIR

~/.config/mcp-orchestrator

Data directory (servers.json, apis.json, queue.json)

MCP_SYNC_TIMEOUT_S

120

Seconds before background execution

MCP_DEFAULT_CMD_TIMEOUT_S

600

Default SSH timeout (0 = unlimited)

MCP_INTERACTIVE_CMD_TIMEOUT_S

300

Interactive command timeout (0 = unlimited)

MCP_MAX_WAIT_TIMEOUT_S

600

Max timeout for task_wait

MAX_CONNECTIONS_PER_SERVER

5

Max parallel SSH connections per server

MIN_CONNECTIONS_PER_SERVER

1

Min pooled connections per server

IDLE_TIMEOUT

300000

Idle connection close delay (ms)

KEEP_ALIVE_INTERVAL

30000

SSH keepalive interval (ms)

MAX_QUEUE_SIZE

1000

Max jobs in queue

SAVE_INTERVAL

5000

Queue disk save interval (ms)

MCP_ALLOWED_ROOTS

(empty)

Restrict file access to these roots (comma-separated). Empty = full access

MCP_DEBUG

false

Enable detailed debug logs


🔌 MCP Client Configuration (OpenCode, Claude Desktop, etc.)

{
  "mcpServers": {
    "orchestrator": {
      "command": "node",
      "args": ["/path/to/sftp-mcp/server.js"],
      "env": {
        "MCP_DATA_DIR": "/path/to/sftp-mcp/data"
      }
    }
  }
}

🧰 Tool Reference (63 tools)

Help & Diagnostics

Tool

Description

help

Complete guide: tools, env vars, parameter schemas

guide

AI manual: workflows, cheatsheet, audit, security

system_diagnostics

Full system diagnostic (queue, pool, servers, APIs)

Server Management

Tool

Description

server_add

Add/update a server alias

server_list

List all configured servers

server_remove

Remove a server alias

infra_overview

Fleet-wide overview (roles, services, warnings)

server_note_set/get/list/remove

Documented server context

Security (Blocklist)

Tool

Description

policy_blocklist_list

List blocked commands

policy_blocklist_add

Add a pattern to blocklist

policy_blocklist_remove

Remove a pattern from blocklist

Task Execution

Tool

Description

task_exec

SSH one-shot. Supports alias:["vps1","vps2"] or alias:"all"

task_exec_interactive

SSH with interactive prompt handling

task_exec_sequence

Sequential SSH commands

task_transfer

SFTP transfer. Supports server_to_server

task_transfer_multi

Bulk transfers with glob patterns

Monitoring

Tool

Description

get_system_resources

CPU, RAM, Disk metrics

get_services_status

systemd, Docker, PM2 status (graceful fallback)

get_fail2ban_status

Fail2Ban status

check_api_health

HTTP health check

Logs

Tool

Description

get_pm2_logs

PM2 logs

get_docker_logs

Docker logs

tail_file

Tail a remote file

File Operations (Local + Remote)

Tool

Description

file_read

Read file + SHA-256 hash (edit protection)

file_write

Create/overwrite with dryRun and backup

file_edit

Surgical or full edit + hash protection

Comparison & Drift Detection

Tool

Description

diff_files

Compare 2 files (local/remote, cross-server)

diff_folders

Compare 2 directories

compare_all_sources

Detect drifts across N servers

Persistent Shell Sessions

Tool

Description

shell_create

Open a persistent shell (cd/env preserved)

shell_exec

Execute in an existing session

shell_list / shell_close

List/close sessions

tmux (Surviving Terminal Sessions)

Tool

Description

tmux_create

Create a persistent tmux session

tmux_exec

Send a command to a session

tmux_read

Read session buffer

tmux_list / tmux_kill

List/kill sessions

SSH Tunnels

Tool

Description

tunnel_create

Local/remote/SOCKS5 tunnel, persistent via tmux

tunnel_list

List active tunnels

tunnel_close

Close a tunnel

tunnel_allowlist_add/remove

Manage allowed ports

Snapshots (File Versioning)

Tool

Description

snapshot_create

Capture file state with deduplication

snapshot_list

List snapshots

snapshot_diff

Compare 2 snapshots

snapshot_restore

Restore (dryRun by default)

snapshot_delete

Delete + orphan cleanup

Queue & Monitoring

Tool

Description

task_queue

View all active/pending tasks

task_status

Task detail by ID

task_history

Filterable history

task_retry

Retry a failed task

task_wait

Wait for a background task

task_logs

MCP internal logs

queue_stats / pool_stats

Queue and SSH pool stats

API Catalog

Tool

Description

api_add / api_list / api_remove

API monitoring catalog

api_check

Health check via SSH + curl


📖 Usage Examples

Multi-server

# One command, multiple servers
task_exec {alias:["vps1","vps2","vps3"], cmd:"uptime"}

# Entire fleet
task_exec {alias:"all", cmd:"df -h /"}

SOCKS5 Proxy Tunnel

tunnel_create {name:"proxy", type:"socks", listen_port:1080, via:"vps_paris"}
# → Browser → SOCKS5 127.0.0.1:1080 → Paris VPS

Local Tunnel (access remote service)

tunnel_create {name:"crm", type:"local", listen_port:8080, target:"127.0.0.1:3100", via:"vps_prod"}
# → http://localhost:8080 → production CRM

Remote Tunnel (expose local service)

tunnel_create {name:"dev", type:"remote", listen_port:9090, target:"127.0.0.1:3000", via:"vps", source:"vps_prod", key_path:"/home/user/.ssh/vps.key"}
# → vps_prod:9090 → your local machine:3000

Persistent tmux Session

tmux_create {alias:"vps", name:"build", start_cmd:"npm run build"}
tmux_read {alias:"vps", session:"build"}
tmux_kill {alias:"vps", session:"build"}

Security Blocklist

# List blocked commands
policy_blocklist_list
# → ["rm -rf /", "mkfs*", ...]

# Conscious bypass
task_exec {alias:"vps", cmd:"rm -rf /tmp/cache", skip_policy:true}

Secure File Editing

# Read + hash
file_read {source:{type:"remote", alias:"vps", path:"/etc/nginx/nginx.conf"}}
# → content + hash

# Edit with protection
file_edit {source:{type:"remote", alias:"vps", path:"/etc/nginx/nginx.conf"},
           oldString:"worker_connections 768;",
           newString:"worker_connections 1024;",
           expectedHash:"abc123...",
           backup:true}

# Preview without writing
file_edit {source:{type:"remote", alias:"vps", path:"/etc/nginx/nginx.conf"},
           oldString:"worker_connections 768;",
           newString:"worker_connections 1024;",
           dryRun:true}

Snapshot Before Risky Changes

# Before
snapshot_create {source:{type:"remote", alias:"vps"}, paths:["/etc/nginx/"], tag:"before-fix"}

# After if something broke
snapshot_restore {snapshotId:"...", target:{type:"remote", alias:"vps"}, dryRun:false, force:true}

Multi-server Drift Detection

compare_all_sources {sources:[
  {type:"remote", alias:"vps1", path:"/etc/nginx/nginx.conf", label:"prod"},
  {type:"remote", alias:"vps2", path:"/etc/nginx/nginx.conf", label:"staging"}
]}

📚 AI Built-in Manual (guide)

The orchestrator includes an interactive manual for your AI agent:

guide section:index       # Table of contents
guide section:workflows   # Copy-paste recipes
guide section:cheatsheet  # Tool → usage table
guide section:audit       # Full fleet audit in 8 steps
guide section:security    # Blocklist + tunnels
guide section:pitfalls    # Common mistakes

🏗️ Architecture

MCP Client (stdio)
    │
server.js ─── 63 MCP tools registered
    │
    ├── queue.js ─────── Persistent job queue (JSON + backup)
    ├── ssh.js ───────── SSH execution (pool + dedicated connections)
    ├── sftp.js ──────── SFTP transfers (upload/download/multi)
    ├── sshPool.js ───── Persistent SSH connection pool
    ├── servers.js ───── CRUD server aliases
    ├── apis.js ──────── CRUD API catalog
    ├── history.js ───── Task history
    ├── config.js ────── Centralized configuration
    ├── utils.js ─────── Utilities (escapeShellArg)
    ├── fileOps.js ───── File operations (read/write/edit)
    ├── diffEngine.js ── Diff engine (files/dirs/sources)
    ├── compareEngine.js ─ Multi-source comparison
    ├── diffFormatter.js ─ Diff formatting
    ├── sourceAdapter.js ─ Local/remote abstraction
    ├── shellSessions.js ─ Persistent shell sessions
    ├── snapshotManager.js ─ Versioned snapshots
    ├── notes.js ──────── Documented server context
    ├── policies.js ──── Command blocklist
    ├── tunnels.js ────── SSH tunnels (local/remote/SOCKS)
    ├── guide.js ──────── AI built-in manual
    └── diagnose.js ───── Diagnostics

Job Lifecycle

pending → running → completed / failed
                      ↓ (on restart)
                    crashed → retry → pending

🔒 Security

  • Command Blocklist : rm -rf /, mkfs*, fork bombs, and other destructive commands are blocked by default

  • Conscious bypass : skip_policy: true to force execution

  • Tunnel port allowlist : only explicitly allowed ports can be used

  • File access restriction : MCP_ALLOWED_ROOTS env var to limit file operations to specific directories

  • escapeShellArg() : all URLs and paths are escaped before being passed to curl/shell

  • Plaintext secret detection : warning on startup if passwords/API keys are in plaintext

  • Pre-modification snapshots : backup:true on file_edit/file_write for instant rollback

  • Recommendation : use SSH keys (not passwords), store secrets in Vaultwarden


🧪 Tests

node diagnose.js        # Full diagnostic
node test_mcp.js        # MCP smoke test
node test_features.js   # Unit tests (queue, pool, glob, prompts, crash)

🛣️ Roadmap

Version

Changes

10.0.0

New tools: file_read/write/edit, diff, snapshots, shell, notes

10.4.0

server_to_server, help with schemas, audit guide

11.0.0

Command Blocklist, Multi-host (alias:"all"), tmux

11.2.0

SSH Tunnels (local/remote/SOCKS5), allowlist, ssh2 stderr fix

11.3.0

AllowedRoots (MCP_ALLOWED_ROOTS) for file restriction

12.0.0 (planned)

Auto key setup for tunnels, webhooks, static dashboard


📄 License

MIT — Copyright (c) 2025-2026 Franck (fkom13)

Available Tools

26 tools
api_addAjouter une API au catalogueC

Ajoute ou met à jour une API dans le catalogue de monitoring.

ParametersJSON Schema
NameRequiredDescriptionDefault
aliasYesAlias unique pour l'API.
urlYesURL de base de l'API, incluant le port si nécessaire.
health_check_endpointNoEndpoint spécifique pour le test de santé (ex: /health).
health_check_methodNoMéthode HTTP pour le test de santé.GET
auth_methodNoMéthode d'authentification.none
api_keyNoClé API si nécessaire.
auth_header_nameNoNom du header pour la clé API.Authorization
auth_schemeNoSchéma d'authentification (ex: Bearer). Mettre à '' si non applicable.Bearer
htpasswd_userNoNom d'utilisateur pour l'authentification Basic (htpasswd).
htpasswd_passNoMot de passe pour l'authentification Basic (htpasswd).
notesNoNotes additionnelles.

TDQS

C2.9/5.0
Behavior2/5

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 adds or updates an API in a monitoring catalog, implying a write/mutation operation, but doesn't clarify if this is idempotent, what happens on conflicts (e.g., duplicate aliases), whether updates are partial or full, or any side effects like triggering health checks. For a mutation tool with 11 parameters, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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 redundancy. It's front-loaded with the core action and resource, making it easy to parse. Every word earns its place, with no wasted verbiage.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (11 parameters, mutation operation) and lack of annotations or output schema, the description is incomplete. It doesn't address behavioral aspects like error handling, idempotency, or return values, leaving significant gaps for an AI agent to understand how to invoke it correctly in a monitoring context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds no parameter-specific information beyond what the schema provides. Since schema description coverage is 100%, the baseline score is 3. The description doesn't explain relationships between parameters (e.g., how auth_method interacts with api_key or htpasswd fields) or provide examples, so it doesn't compensate for the schema's limitations.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Ajoute ou met à jour') and resource ('une API dans le catalogue de monitoring'), making the purpose explicit. It distinguishes from sibling tools like api_list and api_remove by focusing on addition/update rather than listing or removal. However, it doesn't explicitly differentiate from server_add or other catalog-related tools beyond the API scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 (e.g., when an API should be added vs. updated), nor does it reference sibling tools like api_check or api_remove for complementary operations. Usage is implied through the action but lacks explicit context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

api_checkVérifier la santé d'une API via son aliasC

Lance un test de santé sur une API du catalogue.

ParametersJSON Schema
NameRequiredDescriptionDefault
aliasYesAlias de l'API à tester.
server_aliasYesAlias du serveur depuis lequel lancer le test.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions launching a health test but doesn't describe what the test entails, what kind of response to expect, whether it's read-only or has side effects, or any performance characteristics. This leaves significant gaps for an agent to understand the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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 for a simple tool and front-loads the essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no annotations and no output schema, the description is insufficient. It doesn't explain what the health test involves, what results to expect, or how this differs from similar tools. Given the complexity of API health checking and the lack of structured metadata, more context is needed for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, clearly documenting both required parameters. The description adds no additional parameter information beyond what's in the schema, so it meets the baseline expectation but doesn't provide extra value like explaining parameter relationships or usage examples.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Lance un test de santé') and target ('sur une API du catalogue'), which is specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'check_api_health' which appears to serve a similar purpose, leaving some ambiguity about tool selection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 'check_api_health' or other monitoring tools in the sibling list. It states what the tool does but offers no context about appropriate use cases or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

api_listLister les APIs du catalogueB

Affiche toutes les APIs configurées dans le catalogue.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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 displays all APIs, implying a read-only operation, but doesn't specify details like whether it requires authentication, how data is formatted (e.g., pagination, sorting), or potential rate limits. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence: 'Affiche toutes les APIs configurées dans le catalogue.' It's front-loaded with the core purpose, has no unnecessary words, and efficiently conveys the essential information without waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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 adequate but minimal. It states what the tool does but lacks context about usage, behavior, or output format. For a basic list tool, it meets the minimum viable standard but could be more helpful by adding details like output structure or when to use it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters, and schema description coverage is 100% (since there are no parameters to describe). The description doesn't need to add parameter semantics, as there are none. A baseline score of 4 is appropriate for tools with no parameters, as there's nothing to compensate for.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Affiche toutes les APIs configurées dans le catalogue' (Displays all APIs configured in the catalog). It specifies the verb 'affiche' (displays) and the resource 'APIs du catalogue' (APIs in the catalog). However, it doesn't explicitly differentiate from sibling tools like 'server_list' or 'task_history', which also list resources but different types.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 any prerequisites, context for usage, or comparisons to siblings like 'api_check' or 'api_add'. There's no indication of when this tool is appropriate or when other tools might be better suited.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

api_removeSupprimer une API du catalogueC

Supprime une API du catalogue en utilisant son alias.

ParametersJSON Schema
NameRequiredDescriptionDefault
aliasYesAlias de l'API à supprimer.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It states this is a deletion operation but doesn't mention whether it's reversible, what permissions are required, what happens to dependent resources, or error conditions. 'Supprime' implies destructive action but lacks crucial safety and operational details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's function without unnecessary words. It's appropriately sized for a single-parameter tool and front-loads the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive operation with no annotations and no output schema, the description is insufficient. It doesn't explain what 'suppression' entails (permanent/temporary), what confirmation or side effects occur, or what the tool returns. The context demands more disclosure for safe agent use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with the single 'alias' parameter well-documented in the schema. The description adds no additional parameter semantics beyond what's already in the schema, maintaining the baseline score for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Supprime' - delete/remove) and the resource ('une API du catalogue' - an API from the catalog), making the purpose unambiguous. However, it doesn't differentiate from sibling 'server_remove' which removes servers rather than APIs, missing explicit sibling distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus alternatives like 'api_check' or 'server_remove'. The description only states what the tool does without context about prerequisites, timing, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_api_healthVérifier la santé d'une APIB

Vérifie la disponibilité et le temps de réponse d'un endpoint HTTP/S.

ParametersJSON Schema
NameRequiredDescriptionDefault
aliasYesAlias du serveur depuis lequel lancer le test.
urlYesURL complète de l'endpoint à tester.

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but only states what the tool does, not how it behaves. It doesn't disclose whether this is a read-only operation, what permissions are needed, if it makes network calls, what happens on failure, or typical response formats. For a tool that likely performs external HTTP requests, this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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 with zero wasted words. It's appropriately sized for a simple monitoring tool and front-loads the essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple health-check tool with 2 parameters and no output schema, the description covers the basic purpose adequately. However, without annotations or output schema, it should ideally provide more behavioral context about what 'disponibilité' and 'temps de réponse' mean in practice and what the tool returns.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 meaning about parameters beyond implying they're used for testing an endpoint. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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 ('vérifie la disponibilité et le temps de réponse') and identifies the resource ('un endpoint HTTP/S'). It distinguishes from siblings like 'api_check' by specifying health monitoring aspects rather than generic checking, though not explicitly contrasting them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 'api_check' or 'get_services_status'. It lacks context about prerequisites, typical scenarios, or exclusions, leaving the agent to infer usage from the purpose alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_docker_logsRécupérer les logs DockerC

Raccourci pour récupérer les logs d'un container Docker.

ParametersJSON Schema
NameRequiredDescriptionDefault
aliasYesAlias du serveur cible.
containerYesNom ou ID du container Docker.
linesNoNombre de lignes à récupérer.
sinceNoLogs depuis (ex: '5m', '1h', '2024-01-01').
timestampsNoAfficher les timestamps.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It only states it retrieves logs but doesn't mention important behaviors: whether this requires specific Docker permissions, if it streams or returns static output, potential rate limits, error conditions (e.g., if container doesn't exist), or what format the logs are returned in. For a tool with 5 parameters and no annotation coverage, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise - a single sentence that gets straight to the point. It's front-loaded with the core purpose and wastes no words. Every word earns its place, making it easy for an AI agent to quickly understand what the tool does.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 5 parameters, no annotations, and no output schema, the description is incomplete. It doesn't address what the tool returns (log format, structure), error conditions, authentication requirements, or performance characteristics. For a Docker log retrieval tool that likely interacts with live containers, this leaves significant gaps in understanding how to use it effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 100% description coverage, so all parameters are documented in the structured schema. The description adds no additional parameter information beyond what's already in the schema descriptions. According to the scoring rules, when schema_description_coverage is high (>80%), the baseline is 3 even with no param info in the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('récupérer' - retrieve) and resource ('logs d'un container Docker'), making the purpose immediately understandable. It distinguishes itself from sibling tools like 'get_pm2_logs' and 'tail_file' by specifying Docker containers. However, it doesn't fully differentiate from 'task_logs' which might also retrieve logs, though for tasks rather than containers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 when to choose this over 'get_pm2_logs' for PM2 logs, 'tail_file' for general file tailing, or 'task_logs' for task-related logs. The word 'raccourci' (shortcut) hints at convenience but doesn't specify what it's a shortcut for or when it's appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_fail2ban_statusObtenir le statut de Fail2BanB

Récupère les informations du service Fail2Ban, pour toutes les jails ou une jail spécifique.

ParametersJSON Schema
NameRequiredDescriptionDefault
aliasYesAlias du serveur cible.
jailNoNom d'une jail spécifique à inspecter (ex: sshd). Laissez vide pour un statut général.

TDQS

B3.3/5.0
Behavior2/5

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 states it retrieves information, implying a read-only operation, but doesn't disclose behavioral traits such as whether it requires specific permissions, potential rate limits, error conditions, or the format of returned data. The description is minimal and lacks context beyond the basic action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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 key usage details. There is no wasted language, and it effectively communicates the tool's scope in a compact form.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (2 parameters, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose and parameter intent but lacks details on behavior, output format, or integration with sibling tools. For a monitoring tool with no annotations, more context would be beneficial.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with clear descriptions for both parameters (alias and jail). The description adds marginal value by clarifying that leaving jail empty gives a general status, but doesn't provide additional semantics beyond what the schema already covers, such as examples of jail names or alias usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Récupère' (retrieves) and the resource 'informations du service Fail2Ban', specifying it can be for all jails or a specific one. It distinguishes from siblings like get_services_status by focusing on Fail2Ban, but doesn't explicitly contrast with other monitoring tools like get_docker_logs or get_system_resources.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by mentioning 'pour toutes les jails ou une jail spécifique' (for all jails or a specific jail), which suggests when to use the jail parameter. However, it doesn't provide explicit guidance on when to choose this tool over alternatives like get_services_status or other monitoring siblings, nor does it mention prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_pm2_logsRécupérer les logs PM2C

Raccourci pour récupérer les logs PM2 d'une application spécifique ou de toutes les apps.

ParametersJSON Schema
NameRequiredDescriptionDefault
aliasYesAlias du serveur cible.
appNoNom de l'application PM2 (optionnel, toutes par défaut).
linesNoNombre de lignes à récupérer.
errorsNoRécupérer uniquement les erreurs (stderr).

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. While 'récupérer' implies a read operation, it doesn't address permission requirements, rate limits, output format, or potential side effects. The description adds minimal behavioral context beyond the basic operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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. It's appropriately sized and front-loaded with the core functionality, with zero wasted words or unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 4 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what the logs contain, their format, whether they're real-time or historical, or any constraints on retrieval. The description leaves too many contextual gaps for effective agent usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 all 4 parameters. The description mentions retrieving logs for 'une application spécifique ou de toutes les apps' which aligns with the 'app' parameter's optional nature, but adds no additional semantic context beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('récupérer' - retrieve) and resource ('logs PM2'), specifying it can target a specific application or all applications. However, it doesn't explicitly differentiate from sibling tools like 'get_docker_logs' or 'tail_file' beyond mentioning PM2 specifically.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 when PM2 logs would be needed over other log tools like 'get_docker_logs' or 'tail_file', nor does it specify prerequisites or exclusions for usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_services_statusObtenir le statut des services d'un VPSC

Récupère le statut de tous les services connus (systemd, Docker, PM2) sur un serveur.

ParametersJSON Schema
NameRequiredDescriptionDefault
aliasYesAlias du serveur cible.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It states what the tool does but doesn't describe important behavioral aspects: whether this requires specific permissions, what format the status information returns, whether it's a real-time check or cached data, potential rate limits, or error conditions. The description is minimal and lacks 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that clearly states the tool's purpose. Every word contributes to understanding what the tool does without any redundancy or unnecessary elaboration. It's appropriately sized for a simple status retrieval tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no annotations and no output schema, the description is insufficient. It doesn't explain what the return value looks like (structured data, plain text, success/failure indicators), doesn't mention error handling, and provides no context about the operational environment. Given the complexity of checking multiple service types across different technologies, more completeness is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with the single parameter 'alias' fully documented in the schema. The description doesn't add any parameter-specific information beyond what's already in the schema. According to scoring rules, when schema coverage is high (>80%), the baseline is 3 even with no param info in description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Récupère' - retrieves) and resource ('le statut de tous les services connus') with specific service types listed (systemd, Docker, PM2). It distinguishes from siblings like get_docker_logs or get_pm2_logs by focusing on status rather than logs. However, it doesn't explicitly differentiate from get_system_resources which might overlap conceptually.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus alternatives. While the description implies it's for checking service status, it doesn't specify when to choose this over other monitoring tools like check_api_health or task_status, nor does it mention any prerequisites or constraints for usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_system_resourcesObtenir les ressources système d'un VPSB

Récupère les métriques système vitales (CPU, RAM, Disque) d'un serveur.

ParametersJSON Schema
NameRequiredDescriptionDefault
aliasYesAlias du serveur cible.

TDQS

B3.1/5.0
Behavior2/5

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 metrics, implying a read-only operation, but doesn't specify if it requires authentication, has rate limits, returns real-time or historical data, or what format the output takes. For a tool with no annotations, this leaves significant gaps in understanding its behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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 front-loads the key action ('Récupère') and specifies the metrics clearly. Every part of the sentence contributes essential information, making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (simple retrieval with one parameter), no annotations, and no output schema, the description is minimally adequate. It covers what metrics are retrieved but lacks details on output format, error handling, or behavioral constraints. For a tool with no structured support beyond the input schema, it meets basic needs but leaves room for improvement in completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with the single parameter 'alias' documented as 'Alias du serveur cible.' (Alias of the target server). The description doesn't add any semantic details beyond this, such as examples of valid aliases or how to obtain them. With high schema coverage, the baseline score of 3 is appropriate as the schema handles the parameter documentation adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Récupère' (retrieves) and the resource 'métriques système vitales (CPU, RAM, Disque) d'un serveur' (vital system metrics of a server). It specifies what metrics are retrieved (CPU, RAM, disk), making the purpose clear. However, it doesn't explicitly differentiate from sibling tools like 'get_services_status' or 'get_fail2ban_status', which might also retrieve system information but for different aspects.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 compare it to sibling tools like 'get_services_status' or 'pool_stats', which might overlap in monitoring system resources. Without such guidance, the agent must infer usage based on tool names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pool_statsStatistiques du pool de connexions SSHB

Affiche les statistiques du pool de connexions SSH persistantes.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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 this is a display/read operation but doesn't mention important behavioral aspects like whether it requires specific permissions, what format the statistics are returned in, if there are rate limits, or if the data is real-time versus cached. For a stats tool with zero annotation coverage, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence in French that directly states what the tool does. It's appropriately sized for a simple tool with no parameters and gets straight to the point without any unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters, no output schema, no annotations), the description is minimally adequate. It tells you what the tool does but doesn't provide enough context about what statistics are returned, their format, or behavioral considerations. For a stats tool with no output schema, more information about the return value would be helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the input schema has 100% description coverage (though empty). The description appropriately doesn't waste space discussing parameters that don't exist. A baseline of 4 is appropriate for zero-parameter tools where the schema fully documents the absence of inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Affiche' meaning 'Displays') and resource ('statistiques du pool de connexions SSH persistantes'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'queue_stats' or 'get_system_resources' that also provide statistical information, which prevents a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. There are multiple sibling tools that provide various statistics (e.g., 'queue_stats', 'get_system_resources', 'get_services_status'), but the description doesn't indicate when SSH connection pool statistics are specifically needed or when other tools might be more appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

queue_statsStatistiques de la queueB

Affiche les statistiques détaillées de la queue de tâches.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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. While 'Affiche' (displays) implies a read-only operation, it doesn't specify whether this requires authentication, what format the statistics are returned in, if there are rate limits, or if the data is real-time versus cached. For a stats tool with zero annotation coverage, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that gets straight to the point with zero wasted words. It's front-loaded with the core purpose and appropriately sized for a no-parameter tool that displays statistics.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a stats-display tool with no annotations and no output schema, the description is inadequate. It doesn't explain what 'detailed statistics' includes, the format of the output, whether this is a real-time snapshot, or any behavioral characteristics. Given the complexity of queue statistics and lack of structured documentation, more context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 absence of inputs. The description appropriately doesn't discuss parameters since none exist, maintaining focus on what the tool does rather than what it accepts.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Affiche' - displays/shows) and the resource ('statistiques détaillées de la queue de tâches' - detailed statistics of the task queue), making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like 'task_queue' or 'pool_stats', but the specificity of 'detailed statistics' provides some implicit distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 'task_queue' or 'pool_stats'. There's no mention of prerequisites, timing considerations, or comparative context with other queue/task-related tools in the sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

server_addAjouter/Modifier un alias de serveurB

Enregistre ou met à jour les informations de connexion d'un serveur. Vous devez fournir soit un chemin de clé, soit un mot de passe.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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 implies a mutation operation ('enregistre ou met à jour') but doesn't cover critical aspects like authentication requirements, whether changes are reversible, potential side effects, or error handling. This is inadequate for a tool that modifies server data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's function and key requirement without any wasted words. It is appropriately sized and front-loaded with essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a server configuration tool with no annotations and no output schema, the description is insufficient. It lacks details on what 'informations de connexion' includes, how updates are handled, what happens on success/failure, and how this interacts with sibling tools, leaving the agent under-informed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 the baseline is 4. The description adds value by specifying that either a key path or password must be provided, which clarifies the expected inputs beyond the empty schema, earning a slight boost.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('enregistre ou met à jour') and resource ('informations de connexion d'un serveur'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'server_list' or 'server_remove', which would be needed for a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides minimal guidance by mentioning 'soit un chemin de clé, soit un mot de passe', but it doesn't explain when to use this tool versus alternatives like 'server_remove' or 'api_add', nor does it specify prerequisites or exclusions. This leaves significant gaps in usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

server_listLister les alias de serveursB

Affiche la liste de tous les alias de serveurs configurés avec leurs détails.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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 states this is a display/list operation, which implies read-only behavior, but doesn't explicitly confirm it's non-destructive or safe. It mentions 'with their details' but doesn't specify what those details include or how the data is formatted/presented. For a tool with zero annotation coverage, this leaves significant behavioral questions unanswered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence that efficiently conveys the core purpose. It's appropriately sized for a simple list tool with no parameters, with no wasted words or unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with no parameters and no output schema, the description is minimally adequate. It states what the tool does but lacks details about output format, behavioral characteristics, or differentiation from siblings. With no annotations to provide safety/behavior context, the description should do more to compensate, but it meets the basic threshold.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters, and schema description coverage is 100% (though empty). The description appropriately doesn't discuss parameters since none exist. It would score 5 if it explicitly stated 'no parameters required' or similar, but the absence of parameter discussion is correct for this case.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Affiche la liste de tous les alias de serveurs configurés avec leurs détails' (Displays the list of all configured server aliases with their details). It specifies the verb (displays/list) and resource (server aliases), but doesn't explicitly distinguish it from sibling tools like 'server_add' or 'server_remove' beyond the inherent list vs. add/remove distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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, when this tool is appropriate, or what other tools might be used instead for related operations. Given the sibling tools include both 'server_add' and 'server_remove', some basic differentiation would be helpful.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

server_removeSupprimer un alias de serveurC

Supprime un alias de serveur de la configuration.

ParametersJSON Schema
NameRequiredDescriptionDefault
aliasYesNom de l'alias à supprimer

TDQS

C2.9/5.0
Behavior2/5

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 a destructive action ('Supprime'), but lacks details on permissions needed, reversibility, error handling, or system impact. This is a significant gap for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero waste, clearly front-loading the core action. It's appropriately sized for a simple tool with one parameter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's destructive nature, no annotations, and no output schema, the description is incomplete. It fails to address critical aspects like confirmation prompts, return values, or error scenarios, leaving gaps for safe agent operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameter 'alias' is well-documented in the schema. The description adds no additional meaning beyond what the schema provides, such as format examples or constraints, resulting in a baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Supprime') and resource ('un alias de serveur de la configuration'), making the purpose evident. However, it doesn't explicitly differentiate from sibling tools like 'server_add' or 'api_remove', which would require a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'server_add' or 'api_remove', nor are prerequisites or exclusions mentioned. The description only states what it does, not when to apply it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tail_fileAfficher les dernières lignes d'un fichierA

Équivalent de tail -n pour afficher les dernières lignes d'un fichier distant.

ParametersJSON Schema
NameRequiredDescriptionDefault
aliasYesAlias du serveur cible.
filepathYesChemin absolu du fichier à lire.
linesNoNombre de lignes à afficher.

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It states the read-only nature through 'afficher' (display) and implies remote execution via 'distant' (remote). However, it doesn't disclose authentication requirements, rate limits, error conditions, or what happens with non-existent files. For a remote file access tool with zero annotation coverage, this leaves significant 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that immediately conveys the core functionality. Every word earns its place: establishes the Unix equivalent, specifies the operation, and clarifies it's for remote files. No wasted words or redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter tool with no annotations and no output schema, the description provides adequate basic purpose but lacks important context. It doesn't explain return format, error handling, or authentication requirements. The Unix analogy helps, but more behavioral context would be needed for complete understanding of this remote file access tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, providing complete parameter documentation. The description adds minimal value beyond the schema - it implies 'lines' parameter functionality through 'tail -n' analogy but doesn't elaborate on parameter interactions or constraints. With full schema coverage, baseline 3 is appropriate as the description doesn't significantly enhance parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function with a specific verb ('afficher' - display/show) and resource ('dernières lignes d'un fichier distant' - last lines of a remote file). It distinguishes from siblings by focusing on file tailing rather than API management, Docker logs, or task execution. The Unix command analogy ('tail -n') provides immediate recognition.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context through 'fichier distant' (remote file) and the Unix analogy, suggesting this is for viewing remote server logs. However, it doesn't explicitly state when to use this versus alternatives like get_docker_logs or get_pm2_logs, nor does it mention prerequisites or exclusions. Usage is implied rather than explicitly guided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

task_execExécuter une commande à distance (SSH)A

Exécute une commande SSH. Si la tâche prend moins de 30s, le résultat est direct. Sinon, elle passe en arrière-plan.

ParametersJSON Schema
NameRequiredDescriptionDefault
aliasYesAlias du serveur cible.
cmdYesLa commande complète à exécuter.
rappelNoDéfinit un rappel en secondes.

TDQS

A3.9/5.0
Behavior3/5

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 reveals important execution behavior (30-second threshold determining synchronous vs. asynchronous operation) and mentions background processing. However, it doesn't cover other critical aspects like authentication requirements, error handling, rate limits, or what 'background' execution entails for result retrieval.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise (two sentences) with zero wasted words. It's front-loaded with the core purpose and immediately follows with critical behavioral information. Every sentence earns its place by providing essential operational context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no annotations and no output schema, the description provides basic operational context but leaves significant gaps. It doesn't explain how to retrieve results from background tasks, what the output format looks like, error conditions, or security implications. The 30-second threshold is helpful, but more completeness is needed for a remote execution tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the schema already documents all three parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema, nor does it explain relationships between parameters. The baseline score of 3 reflects adequate but not enhanced parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Exécute une commande SSH') and resource (remote server via SSH), distinguishing it from sibling tools like task_exec_interactive or task_exec_sequence. It provides precise operational details about execution timing that further differentiate its 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/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context by specifying the 30-second threshold for direct vs. background execution, which helps determine when this tool is appropriate. However, it doesn't explicitly state when to use this versus alternatives like task_exec_interactive or task_exec_sequence, nor does it provide exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

task_exec_interactiveExécuter une commande interactive (SSH)C

Exécute une commande SSH avec gestion des prompts interactifs (yes/no, passwords, etc.).

ParametersJSON Schema
NameRequiredDescriptionDefault
aliasYesAlias du serveur cible.
cmdYesLa commande à exécuter.
interactiveNoMode interactif.
autoRespondNoRépondre automatiquement aux prompts standards.
responsesNoRéponses personnalisées aux prompts (clé: pattern, valeur: réponse).
timeoutNoTimeout personnalisé en secondes. Défaut 2 minutes.
rappelNoDéfinit un rappel en secondes.

TDQS

C2.9/5.0
Behavior2/5

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 mentions interactive prompt handling but lacks critical details: whether this executes commands remotely via SSH, what permissions are required, if it's read-only or destructive, error handling, or output format. For a tool with 7 parameters and no annotations, this is insufficient behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise - a single sentence that efficiently communicates the core functionality. It's front-loaded with the main purpose and includes a helpful parenthetical example of prompt types. Every word earns its place with zero redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex SSH execution tool with 7 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what the tool returns, how SSH connections are established, authentication requirements, error conditions, or how it differs from sibling tools. The single-sentence description is insufficient for the tool's complexity and lack of supporting structured data.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all parameters are documented in the schema. The description doesn't add any parameter-specific information beyond what's already in the schema descriptions. It mentions interactive prompts generally, which relates to parameters like 'interactive', 'autoRespond', and 'responses', but provides no additional semantic context. Baseline 3 is appropriate when schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Exécute une commande SSH avec gestion des prompts interactifs'. It specifies the verb ('exécute'), resource ('commande SSH'), and key capability ('gestion des prompts interactifs'). However, it doesn't explicitly differentiate from sibling tools like 'task_exec' or 'task_exec_sequence', which likely have related functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides minimal usage guidance. It mentions handling interactive prompts (yes/no, passwords, etc.), which implies use cases requiring user interaction, but doesn't specify when to choose this tool over alternatives like 'task_exec' or 'task_exec_sequence'. No explicit when-not-to-use scenarios or prerequisites are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

task_exec_sequenceExécuter une séquence de commandes (SSH)C

Exécute plusieurs commandes SSH en séquence sur le même serveur.

ParametersJSON Schema
NameRequiredDescriptionDefault
aliasYesAlias du serveur cible.
commandsYesListe des commandes à exécuter en séquence (minimum 1).
continueOnErrorNoContinuer même si une commande échoue.
rappelNoDéfinit un rappel en secondes.

TDQS

C2.9/5.0
Behavior2/5

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. While it mentions sequential execution on the same server, it lacks critical details: whether commands run with specific permissions, if there are timeouts or rate limits, what happens on errors beyond the 'continueOnError' parameter, or what the output format looks like. For a tool that executes potentially destructive SSH commands, this is a significant gap in safety and 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence: 'Exécute plusieurs commandes SSH en séquence sur le même serveur.' It's front-loaded with the core purpose, has zero wasted words, and is appropriately sized for the tool's complexity. Every part of the sentence earns its place by specifying key aspects (multiple commands, SSH, sequential, same server).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (executing SSH commands, which can be destructive) and the lack of annotations and output schema, the description is incomplete. It doesn't cover behavioral traits like error handling, security implications, or output format, leaving the agent with insufficient context to use the tool safely and effectively. The high schema coverage helps with parameters, but overall completeness is poor for a command-execution tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 four parameters ('alias', 'commands', 'continueOnError', 'rappel') with descriptions. The tool description adds no additional parameter semantics beyond what's in the schema—it doesn't explain parameter interactions, provide examples, or clarify ambiguous terms like 'rappel' (which might mean 'reminder' or 'timeout' in context). Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Exécute plusieurs commandes SSH en séquence sur le même serveur' (Execute multiple SSH commands in sequence on the same server). It specifies the verb ('exécute'), resource ('commandes SSH'), and scope ('en séquence sur le même serveur'), making the purpose unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'task_exec' or 'task_exec_interactive', which likely have related but different functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 sibling tools like 'task_exec' (which might execute single commands) or 'task_exec_interactive' (which might provide interactive sessions), nor does it specify prerequisites, constraints, or typical use cases. The agent must infer usage from the name and description alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

task_historyConsulter l'historique des tâchesC

Affiche les dernières tâches lancées. Peut être filtré par alias.

ParametersJSON Schema
NameRequiredDescriptionDefault
aliasNoFiltre l'historique pour ne montrer que les tâches d'un alias spécifique.

TDQS

C2.9/5.0
Behavior2/5

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 states this is a display/show operation, implying read-only behavior, but doesn't disclose important behavioral aspects like whether this shows all tasks or only recent ones, pagination behavior, format of returned data, or any rate limits. For a tool with no annotation coverage, this leaves significant gaps in understanding how it behaves.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise - just two short sentences that get straight to the point. Every word earns its place: the first sentence states the core purpose, the second adds the filtering capability. No wasted words or unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and a single parameter with good schema coverage, the description is incomplete. It doesn't explain what 'latest tasks' means (time range? count limit?), what information is displayed about each task, or how the results are structured. For a task history tool that presumably returns multiple task records, more context about the return format would be helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description mentions the single parameter: 'Peut être filtré par alias' (Can be filtered by alias). The input schema has 100% description coverage, with the alias parameter fully documented. The description adds minimal value beyond what's already in the schema, 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states what the tool does: 'Affiche les dernières tâches lancées' (Displays the latest launched tasks). It specifies the verb (display/show) and resource (tasks), but doesn't explicitly distinguish it from sibling tools like task_logs or task_status, which likely provide different views of task information.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides minimal guidance: 'Peut être filtré par alias' (Can be filtered by alias). It doesn't explain when to use this tool versus alternatives like task_logs (which might show detailed logs) or task_status (which might show current status). No explicit when/when-not guidance or alternative recommendations are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

task_logsConsulter les logs systèmeC

Affiche les logs du système MCP.

ParametersJSON Schema
NameRequiredDescriptionDefault
levelNoFiltrer par niveau de log.
searchNoRechercher dans les messages.
limitNoNombre de logs à afficher.

TDQS

C2.6/5.0
Behavior2/5

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 displays logs but doesn't mention whether this is a read-only operation, if it requires special permissions, how logs are retrieved (e.g., real-time vs. historical), or any rate limits. For a log-viewing tool with zero annotation coverage, this is a significant gap in behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence in French that directly states the tool's function. It's appropriately sized and front-loaded with the core purpose. However, it could be more structured by including key details like scope or differentiation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a log-viewing tool with 3 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what the logs contain, their format, how they're sorted, or any limitations. With multiple similar siblings, more context is needed to guide proper tool selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with all three parameters (level, search, limit) well-documented in the schema. The description doesn't add any parameter semantics beyond what the schema provides—it doesn't explain how filtering works, what the search covers, or default behaviors. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Affiche les logs du système MCP' states the tool displays MCP system logs, which is a clear verb+resource combination. However, it doesn't differentiate from sibling tools like get_docker_logs, get_pm2_logs, or tail_file, which also appear to handle logs. The purpose is understandable but lacks sibling distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. With multiple log-related siblings (get_docker_logs, get_pm2_logs, tail_file), there's no indication of what makes this tool unique or when it should be preferred. 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.

task_queueVoir la file d'attente des tâchesB

Affiche le statut de toutes les tâches, avec des rappels pour les tâches longues.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3/5.0
Behavior2/5

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 mentions 'avec des rappels pour les tâches longues' (with reminders for long tasks), which adds some behavioral context about handling long-running tasks. However, it lacks details on output format, pagination, real-time updates, or error conditions, leaving significant gaps for a tool that likely returns dynamic data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence in French that directly states the tool's function. It's front-loaded with the core purpose and adds a brief behavioral note, with no wasted words or redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of task queue monitoring and the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'statut' includes (e.g., pending, running, failed), how reminders for long tasks work, or the return structure, leaving the agent with insufficient context for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 doesn't discuss parameters, and the baseline for 0 parameters is 4, as it avoids unnecessary details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Affiche le statut de toutes les tâches' (Displays the status of all tasks) with the specific verb 'affiche' (displays) and resource 'tâches' (tasks). It distinguishes from siblings like 'task_status' (which likely shows status of a single task) by specifying 'toutes' (all), but doesn't explicitly contrast with 'queue_stats' (which might show queue metrics rather than task status).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 when to choose 'task_queue' over 'task_status' (for individual tasks), 'task_history' (for past tasks), or 'queue_stats' (for queue metrics), nor does it specify any prerequisites or exclusions for usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

task_retryRéessayer une tâche échouéeC

Relance une tâche qui a échoué ou crashé.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesL'ID de la tâche à réessayer.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It states the action (retry/restart) but doesn't describe what happens during retry: whether it preserves original parameters, creates a new task ID, has side effects, requires specific permissions, or what the expected outcome is. For a mutation tool with zero annotation coverage, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that gets straight to the point with no wasted words. It's appropriately sized for this simple tool and front-loads the essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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 incomplete. It doesn't explain what the tool returns, what happens to the original task, whether retry preserves configurations, or potential side effects. Given the complexity of task management and lack of structured data, the description should provide more operational context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with the single parameter 'id' well-documented in the schema. The description doesn't add any parameter-specific information beyond what the schema provides. With complete schema coverage, the baseline score of 3 is appropriate as the description doesn't enhance parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('relance' meaning retry/restart) and the resource ('une tâche qui a échoué ou crashé' meaning a failed or crashed task). It distinguishes from siblings like task_exec (execute new task) and task_history (view history), but doesn't explicitly contrast with them. The purpose is specific but lacks explicit sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides minimal guidance - it implies this tool should be used for failed/crashed tasks, but doesn't specify when NOT to use it (e.g., for successful tasks) or mention alternatives like task_exec for new executions. No explicit usage context or prerequisites are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

task_statusConsulter une tâche par son IDC

Récupère les détails d'une seule tâche, avec un rappel si nécessaire.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesL'ID de la tâche à consulter.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but only mentions 'avec un rappel si nécessaire' as behavioral context. It lacks details on permissions, rate limits, error handling, or what 'rappel' entails (e.g., notification type). This is insufficient for a tool with potential side effects like reminders.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose. However, the vague phrase 'avec un rappel si nécessaire' adds minimal value and could be more precise, slightly reducing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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 doesn't explain what details are returned (e.g., status, metadata) or the reminder mechanism, leaving significant gaps for a tool that retrieves task details and potentially triggers reminders.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the single parameter 'id' fully documented in the schema. The description adds no additional parameter semantics beyond what the schema provides, so it meets the baseline score of 3 without compensating value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Récupère' - retrieves) and resource ('détails d'une seule tâche' - details of a single task), making the purpose specific. However, it doesn't explicitly differentiate from sibling tools like 'task_history' or 'task_logs' which might also retrieve task-related information, preventing a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides minimal guidance with 'avec un rappel si nécessaire' (with a reminder if necessary), which hints at optional behavior but doesn't clarify when to use this tool versus alternatives like 'task_history' or 'task_logs'. No explicit when/when-not rules or sibling comparisons are included.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

task_transferTransférer un fichier ou dossier (SFTP)A

Lance un transfert SFTP. Si la tâche prend moins de 30s, le résultat est direct. Sinon, elle passe en arrière-plan.

ParametersJSON Schema
NameRequiredDescriptionDefault
aliasYesAlias du serveur cible.
directionYes
localYesChemin absolu local.
remoteYesChemin absolu distant.
rappelNoDéfinit un rappel en secondes.

TDQS

A3.9/5.0
Behavior4/5

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 behavioral traits: the 30-second threshold for direct vs. background execution and the task-based nature of the operation. However, it lacks details on error handling, authentication requirements, 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise—two sentences that efficiently convey the core functionality and execution behavior. Every word earns its place, with no redundant or vague phrasing, making it easy to parse and understand quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of an SFTP transfer tool with 5 parameters and no output schema, the description is minimally adequate. It covers the basic operation and execution mode but lacks details on return values, error conditions, or advanced usage scenarios, leaving gaps for an AI agent to infer.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 80%, providing a solid baseline. The description adds no additional parameter semantics beyond what the schema already documents (e.g., alias for target server, direction with enum values). It does not explain parameter interactions or usage examples, so it meets but does not exceed the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Lance un transfert SFTP') and resource ('un fichier ou dossier'), distinguishing it from sibling tools like task_exec or task_transfer_multi. It precisely defines what the tool does without being tautological.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for SFTP file transfers but provides no explicit guidance on when to use this tool versus alternatives like task_transfer_multi. No prerequisites, exclusions, or comparisons to sibling tools are mentioned, leaving usage context incomplete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

task_transfer_multiTransférer plusieurs fichiers/dossiers (SFTP)C

Lance des transferts SFTP multiples avec support de patterns glob (*, ?, []).

ParametersJSON Schema
NameRequiredDescriptionDefault
aliasYesAlias du serveur cible.
directionYes
filesYesListe des fichiers à transférer
rappelNoDéfinit un rappel en secondes.

TDQS

C2.9/5.0
Behavior2/5

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 mentions glob pattern support which is useful, but doesn't describe critical behaviors: whether transfers are synchronous/asynchronous, error handling, authentication requirements, rate limits, or what happens when transfers fail. For a file transfer tool with mutation capabilities, this leaves significant gaps in understanding how the tool behaves.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient French sentence that communicates the core functionality without waste. It's appropriately sized and front-loaded with the essential information about what the tool does.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a file transfer tool with no annotations and no output schema, the description is incomplete. It doesn't explain what the tool returns, how to monitor transfer progress, error conditions, or authentication requirements. The combination of mutation capability (file transfers), multiple parameters, and lack of structured metadata means the description should provide more operational context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 75%, so the schema documents most parameters well. The description adds minimal value beyond the schema - it mentions glob pattern support which relates to the 'local' parameter's pattern capability, but doesn't explain parameter interactions or provide additional context about how parameters work together. The baseline of 3 is appropriate given the decent schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Lance des transferts SFTP multiples avec support de patterns glob' (Launches multiple SFTP transfers with glob pattern support). It specifies the action (launch transfers), resource (SFTP files/folders), and key capability (glob patterns). However, it doesn't explicitly differentiate from its sibling 'task_transfer' which appears to be a similar single-transfer tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 the sibling 'task_transfer' tool or explain when to choose multiple transfers over single transfers. There's no context about prerequisites, dependencies, or typical use cases for batch SFTP operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

B3/5.0
Disambiguation3/5

The tool set has clear functional groups (API monitoring, server management, task execution, logging), but there is significant overlap within groups. For example, 'api_check' and 'check_api_health' appear to serve very similar purposes, and 'task_exec' vs 'task_exec_interactive' vs 'task_exec_sequence' could be confusing for an agent to distinguish without careful reading of descriptions. Tools like 'get_docker_logs' and 'get_pm2_logs' are distinct in target but similar in function.

Naming Consistency4/5

Most tools follow a consistent verb_noun pattern (e.g., 'api_add', 'server_list', 'task_exec'), which is clear and predictable. However, there are minor deviations such as 'pool_stats' and 'queue_stats' using noun_verb instead, and 'check_api_health' using a verb_noun_noun structure, slightly breaking the pattern but not severely impacting readability.

Tool Count2/5

With 26 tools, this server feels overloaded for an SFTP orchestrator, as it includes many unrelated functions like API monitoring, Docker logs, and Fail2Ban status. The scope is overly broad, making the tool set heavy and potentially confusing for agents that expect a more focused domain. A typical well-scoped server would have 3-15 tools.

Completeness4/5

For the core domain of SFTP and server orchestration, the tool set provides comprehensive coverage including server management, task execution, file transfers, and monitoring. However, there are minor gaps such as no explicit tool for configuring SFTP settings or managing SSH keys directly, which agents might need to work around using existing commands.

Maintenance

ActivitySlowing
ResponsivenessSyncing

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

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables secure SSH connections to multiple remote servers with support for command execution, file transfers (SFTP), directory listing, and both password and key-based authentication.
    7
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables remote server management through SSH and SFTP, supporting command execution, file transfers, and interactive shell sessions. It allows for multiple concurrent connections using either password or SSH key authentication.
    11
    19
    4
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables SSH command execution, file uploads/downloads, and multi-server management with zero-config inline credentials, supporting async jobs and AI-readable output.
    23
    2
    AGPL 3.0

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/fkom13/mcp-sftp-orchestrator'

If you have feedback or need assistance with the MCP directory API, please join our Discord server