Proton Suite Agent
The Proton Suite Agent is an MCP server that integrates Proton Mail, Pass, Drive, and ecosystem tools, enabling local AI agents to manage these services via stdio or streamable HTTP.
List, search, read, send, reply, forward, flag, move, and delete emails
Analyze inbox to propose folder/label structures and detect threats (dry-run)
Drive
Upload, download, list, share, move, copy, and permanently delete files
Audit inventory, duplicates, and obsolete formats; organize local files
Manage authentication and sync status
Pass
List credentials and check existence (values not exposed)
Generate secure passwords and audit health (strength, duplicates, rotation)
Bridge & Ecosystem
Check health, info, login/logout for Proton Mail Bridge
Discover installed binaries, check updates, and unified suite status
Calendar
Stub tools registered but not yet available
Deployment
Supports local stdio transport and streamable HTTP with Bearer auth for Docker
Integrates with Proton Suite, providing tools for Mail (IMAP/SMTP via Bridge), Pass (pass-cli for password management), Drive (CLI for file sync and audit), and Calendar (CalDAV stub). Enables AI agents to manage emails, passwords, files, and calendar events.
Integrates with Proton Mail through the Bridge IMAP/SMTP interface, offering tools to list, search, read, send, reply, forward, flag, move, delete emails, and handle attachments.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Proton Suite Agentlist my recent unread emails"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Proton Suite Agent
Abrir cuando: Orientación, pulso y enrutado. Aprobado: 15 de agosto de 2026 Audiencia: Agente, Dirección, Usuarios Autoridad: Lectura Clase: Obligatorio Días para revisión: 14 En repo: Sí Estado: Vigente Orden: 1 Propósito: Punto de entrada: pulso, quickstart y qué leer después. Reforma: Operativa Responsable: Alexendros Revisión: 29 de agosto de 2026 Rol: Entrada Ruta: ./README.md
Propósito
Punto de entrada de lectura. Te dice el pulso, cómo arrancar y qué documento abrir después. Lo no negociable vive en CONSTITUTION.md.
Estado en una mirada
Pulso: 15 de agosto de 2026 · v1.2.1
Fase activa: Fase 1 (Pass / agente / DX) checklist cerrada · siguiente: Fase 2 (Calendar, bloqueada). Ver ROADMAP.md.
Métricas: 47 tools por defecto (50 con Calendar experimental) · 958 tests · cobertura ~98% (gate 95%).
Capa | Estado |
Mail (Bridge IMAP/SMTP) | Operativo |
Pass ( | Operativo |
Drive ( | Operativo (ADR-006) |
Calendar | Stub hasta CalDAV en Bridge (ADR-005) |
Documentación canónica | Subfase 0 |
MCP server multi-producto para Proton Suite: Mail, Pass, Drive y Calendar (stub). Un agente opera el buzón, gestiona contraseñas y sincroniza archivos — local, sin exfiltrar contenido E2E.
Modo | Descripción |
stdio (default) | Sin exponer red. Ideal para agentes IA locales. |
streamable HTTP | Bearer auth + origin allowlist. Docker / reverse proxy. |
Qué leer a continuación
Si necesitas | Abre | Aún no |
Lo no negociable | ROADMAP entero | |
Orden de trabajo y fases | Código | |
Implementar como agente | ARCHITECTURE completo | |
Capas y flujos | Código | |
Threat model | — | |
Contribuir / PR | — | |
Contrato de tools MCP | — | |
Decisiones (por qué) | — | |
Índice de guías | — | |
Playbooks + prompts | — |
Primera sesión: este README → AGENTS.md §§ TL;DR + ficha → fase activa en ROADMAP.md → ADR/ancla citada.
Quickstart
Prerrequisitos: Node ≥ 22, pnpm, Proton Mail Bridge en local, pass o gopass + gpg para contraseñas.
1. Instalar y compilar
git clone https://github.com/Iniciativas-Alexendros/agent-protonsuite.git
cd agent-protonsuite
pnpm install && pnpm build && pnpm run smoke2. Configurar variables de entorno
export PROTON_BRIDGE_USER=you@proton.me
export PROTON_BRIDGE_PASS=your-bridge-password
export PROTON_MAIL_FROM=you@proton.me3. Conectar tu cliente MCP
{
"mcpServers": {
"protonsuite": {
"command": "npx",
"args": ["-y", "@alexendros/protonsuite-agent", "protonsuite-mcp"],
"env": {
"MCP_TRANSPORT": "stdio",
"PROTON_BRIDGE_USER": "you@proton.me",
"PROTON_BRIDGE_PASS": "your-bridge-password",
"PROTON_MAIL_FROM": "you@proton.me",
"PROTON_BRIDGE_TLS_INSECURE": "true",
"PROTON_PASS_ENABLED": "true",
},
},
},
}Seguridad: usa
PROTON_PASS_BRIDGE_PATH=proton/bridge/passwordo el wrapper JIT enconnectors/stdio-wrapper.sh.examplepara no dejar el bridge password en disco.
4. Organizar el buzón (dry-run)
AGENT_DRY_RUN=true pnpm exec protonsuite-agent organize
# o: npx -y @alexendros/protonsuite-agent organizeEl agente analiza el inbox y presenta un plan sin aplicar cambios. Desactiva AGENT_DRY_RUN solo tras revisión.
Related MCP server: mailpouch
Tools MCP
47 tools por defecto (50 con Calendar experimental). Lectura: response_format: "markdown" | "json".
Producto | Tools | Resumen |
14 | List, search, read, send, reply, forward, flag, move, delete, attachments | |
Pass | 4+ | List, get (sin valores), generate, health; audit vía agente |
Drive | 8+ | Status, list, download, upload, share, audit, organize |
Calendar | stub |
|
Suite / Bridge / Ecosystem / Agent | resto | Estado unificado, Bridge, binarios, plan de agente |
Contrato generado: docs/api/mcp-tools.md. Guía: docs/agent-quickstart.md.
Agente
Goal | Pipeline |
| Verifica Bridge (IMAP + SMTP) |
| Clasifica inbox, carpetas/etiquetas, amenazas |
| Solo lectura — alertas |
| Fortaleza, duplicados, plan de rotación (dry-run) |
| Reporte cross-producto |
| Conectividad |
Drive goals |
|
Drive CLI
sudo wget -q 'https://proton.me/download/drive/cli/linux/proton-drive' \
-O /usr/local/bin/proton-drive && sudo chmod +x /usr/local/bin/proton-drive
proton-drive auth loginRequiere DRIVE_ENABLED=true (default). Ver docs/drive-audit.md.
Despliegue
docker compose up -dVer docs/deployment-http-docker.md. Instalador: scripts/install.sh.
Documentación
Documento | Para quién | Qué cubre |
Todos | No negociables | |
Dirección / agente | Fases y criterios de salida | |
Agentes IA | Contrato operativo | |
Usuarios | Instalación paso a paso | |
Agentes IA | Tools y ejemplos | |
Operadores | Bridge headless | |
DevOps | Docker, auth, Pass en compose | |
Operadores | Wrapper JIT | |
Operadores | Webhook, ntfy, logs | |
Operadores | Drive CLI | |
Desarrolladores | Capas y flujos | |
Auditores | Threat model | |
Contribuidores | PRs, pnpm, tests | |
Operadores | Workflows + prompts |
Calidad
pnpm run typecheck # TypeScript strict
pnpm test # Vitest (953+)
pnpm run coverage # Coverage v8 — gate 95%, objetivo ≥98%
pnpm run build # tsc → dist/
pnpm run smoke # stdio initialize + tools/list
pnpm run knip # Unused deps/exports
pnpm docs:check # mcp-tools.md en syncSeguridad (resumen)
Bearer timing-safe, origin allowlist, rate-limit 120/min/token.
HTTP per-session; idle eviction 30 min.
Pass nunca expone valores — solo
{found: true}.Dry-run por defecto en el agente (CONSTITUTION.md §4).
Progreso de cobertura
Fecha | Statements | Branches | Tests | Notas |
Ago 2026 | ~98% | ~95% | 953 | Subfase 0 + Fase 1 |
Jul 2026 | 98.07% | 93.63% | 864 | Branch hunt |
Jun 2026 | 61.7% | — | 258 | Base |
Conteo canónico: pnpm test 2>&1 | grep -E 'Test Files|Tests'.
Licencia
AGPL-3.0 — Copyright 2026 Alejandro Domingo Agustí (Alexendros). Sin afiliación a Proton AG.
Ver NOTICE.md para dependencias.
Available Tools
39 toolsproton_agent_planGet agent organization/alert planARead-onlyIdempotent
Analyzes the mailbox using the embedded agent rules and returns a proposed folder/label structure plus content alerts. This is a read-only planning tool; it does not move, flag or delete emails. Use it before running the CLI agent:organize command.
| Name | Required | Description | Default |
|---|---|---|---|
| goal | No | Agent goal: organize (propose folders/labels), monitor (inspect only), alert (threats only). | organize |
| response_format | No | Output format. JSON is recommended for programmatic consumers. | json |
Output Schema
| Name | Required | Description |
|---|---|---|
| alerts | Yes | |
| newFolders | Yes | |
| labelProposals | Yes | |
| folderProposals | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, and idempotentHint. The description reinforces that it does not move, flag, or delete emails, adding context about the embedded agent rules. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences. The first sentence states purpose, the second addresses usage and constraints. Every sentence adds value, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has two enum parameters with defaults and an output schema, the description covers when to use it and what it produces. It does not mention prerequisites like authentication, but that is likely handled by the broader tool setup.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with enum descriptions for both parameters. The description adds context about the outputs (folder/label structure and alerts) which maps to the 'goal' parameter, but does not provide significant additional meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('analyzes'), the resource ('the mailbox'), and the outputs ('proposed folder/label structure plus content alerts'). It distinguishes this planning tool from sibling tools that perform actual actions like moving or deleting emails.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to use it before running the CLI agent:organize command, and clarifies it is read-only. While it provides clear usage context, it does not enumerate alternatives among sibling tools for planning.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
proton_bridge_accountsList Bridge accountsARead-onlyIdempotent
Lists all Proton accounts currently configured in Bridge with their connection state.
| Name | Required | Description | Default |
|---|---|---|---|
| response_format | No | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, openWorldHint. Description adds useful context about listing accounts with connection state, which is beyond annotations but does not disclose any additional behavioral traits like rate limits or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that efficiently conveys purpose and output. No extraneous words, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one optional parameter and no output schema, the description is largely sufficient. However, it could be more complete by explicitly noting the response_format parameter or clarifying what 'connection state' includes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so description must compensate. However, description does not mention the response_format parameter or its effect on output. This leaves the agent without guidance on how to control output format, despite the parameter being optional with enums.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it lists all Proton accounts configured in Bridge with their connection state, using specific verb and resource. Distinguishes from sibling tools like proton_bridge_status or proton_bridge_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for listing accounts, but no explicit guidance on when to use this tool versus alternatives such as proton_bridge_status or proton_bridge_info. Lacks exclusions or context for optimal use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
proton_bridge_healthBridge health checkARead-onlyIdempotent
Checks if Proton Mail Bridge is running, ports are listening, and IMAP auth works.
| Name | Required | Description | Default |
|---|---|---|---|
| response_format | No | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, open-world, and idempotent behavior. The description adds that the tool performs network checks (ports, auth), which is useful behavioral context beyond annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that front-loads the purpose. No unnecessary words. Could be slightly more structured (e.g., listing checks), but efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple health check tool with one optional parameter and no output schema, the description covers main checks but does not describe the return format or mention the response_format parameter. Slightly incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter (response_format) is not mentioned in the description. With 0% schema description coverage, the description should add meaning, but it does not. The parameter is simple, but still a gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks if Proton Mail Bridge is running, ports are listening, and IMAP auth works. It uses a specific verb and resource, and distinguishes from sibling tools like proton_bridge_status or proton_bridge_info which have different scopes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives such as proton_bridge_status or proton_bridge_info. The description does not mention prerequisites or when the health check is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
proton_bridge_infoBridge infoARead-onlyIdempotent
Returns Bridge version, user, and connection ports from the CLI.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, and idempotentHint. The description adds that it returns specific fields, providing some context beyond annotations but not significantly enriching behavioral understanding.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that conveys the essential information without unnecessary words. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters, no output schema, and annotations cover safety traits, the description adequately explains what the tool returns. It is complete for its simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the description does not need to add parameter meaning. The schema coverage is 100%. Baseline score of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns specific information (Bridge version, user, and connection ports) from the CLI. It identifies a distinct resource and action, but does not explicitly differentiate from sibling tools like proton_bridge_health or proton_bridge_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as proton_bridge_health or proton_bridge_status. The description lacks context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
proton_bridge_loginLogin to BridgeADestructive
Performs interactive login against Proton Mail Bridge. Provide user and password; include TOTP if 2FA is required.
| Name | Required | Description | Default |
|---|---|---|---|
| totp | No | ||
| user | Yes | ||
| password | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=true and readOnlyHint=false, which align with login being a state-changing action. The description adds 'interactive login' hinting at potential need for user interaction, but does not disclose side effects (e.g., session creation, token management) or failure modes. With annotations partially covering safety, the description adds modest context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no redundancy. Every word serves a purpose: action, resource, required inputs, conditional input. Efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a login action that likely returns a session or token, yet no output schema or return behavior is described. Given it has no output schema and annotations mark it as destructive, more completeness would help (e.g., what to expect on success/failure). Sibling tools show a rich ecosystem, so login context matters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description bears full responsibility. It names all three parameters (user, password, totp) and adds conditional semantics for TOTP ('if 2FA is required'). However, it does not explain the format of 'user' (already in schema) or 'password', nor how to obtain TOTP. This adds some value but not enough to fully compensate for zero schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it performs interactive login against Proton Mail Bridge, distinguishing it from siblings like proton_bridge_logout, proton_bridge_status, etc. The verb 'login' combined with resource 'Proton Mail Bridge' is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions including TOTP if 2FA is required, giving conditional guidance. However, it does not specify when to use this tool versus alternatives like proton_drive_auth_login or proton_bridge_accounts, nor does it provide prerequisites (e.g., Bridge must be running) or error scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
proton_bridge_logoutLogout from BridgeADestructive
Logs out the current session from Proton Mail Bridge.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=true, so the description's statement that the tool logs out is consistent but adds no additional behavioral context, such as side effects on other sessions or subsequent tool availability.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one sentence of 9 words, perfectly concise and front-loaded. Every word is meaningful and there is no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters, no output schema, and the destructive annotation, the description is minimally sufficient. However, it lacks details on expected behavior post-logout, such as whether the user must re-authenticate, and does not describe the response. A more complete description would note these aspects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters, so description coverage is 100%. The description does not need to explain parameters. Baseline score of 4 is appropriate as no further parameter clarification is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Logs out the current session from Proton Mail Bridge', specifying the verb 'Logs out' and the resource 'session from Proton Mail Bridge'. It effectively distinguishes from siblings like proton_bridge_login.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, such as an active session, nor does it contrast with proton_bridge_login or other related tools. The agent must infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
proton_bridge_statusBridge full statusARead-onlyIdempotent
Returns combined info + health of the Bridge process in a single call.
| Name | Required | Description | Default |
|---|---|---|---|
| response_format | No | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, and idempotentHint. The description adds context that the tool returns combined info and health, which goes beyond the annotations without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is concise and front-loaded. Every word adds value, with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description lacks detail on what specific fields are returned in the combined info and health. The optional parameter is not explained, leaving the tool's behavior incomplete for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. The description does not mention the 'response_format' parameter, leaving its meaning and default behavior unexplained. The parameter has an enum and default, which the description fails to clarify.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Returns combined info + health of the Bridge process' with a specific verb and resource. It distinguishes from sibling tools proton_bridge_health and proton_bridge_info by emphasizing the combined nature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for a single call obtaining both info and health, but does not explicitly state when to use this over the separate health or info tools, nor provides alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
proton_create_folderCreate a mailbox (folder)A
Creates a new IMAP mailbox under the given path (e.g. 'Projects/Afiladocs').
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Mailbox path to create |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a non-read-only mutation. The description adds that it creates a mailbox and gives an example path, but does not disclose whether existing paths cause errors or other side effects. Behavioral disclosure is adequate but not enriched.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that includes an example. Every word contributes; no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description covers the purpose and usage adequately. It could mention return behavior but is otherwise complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds value beyond the schema by specifying that the path is for an IMAP mailbox and providing an example with nested folders. This clarifies the format and hierarchy expected.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Creates'), the resource ('IMAP mailbox'), and the context ('under the given path' with an example). It distinguishes from sibling tools like proton_drive_create_folder by specifying 'IMAP mailbox'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when creating a mailbox folder but does not explicitly state when to use this tool over siblings like proton_drive_create_folder or provide exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
proton_delete_emailDelete an emailADestructive
Deletes a message. Default mode='trash' moves it to Trash (reversible). mode='permanent' expunges immediately — cannot be undone.
| Name | Required | Description | Default |
|---|---|---|---|
| uid | Yes | ||
| mode | No | trash | |
| mailbox | No | INBOX | |
| trash_path | No | Override for the Trash mailbox path. If omitted, the \Trash special-use mailbox is auto-detected (works with Papelera/Corbeille/etc.). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true. Description adds that trash mode is reversible and permanent is irreversible, which is beyond annotations. No contradictions. Could mention more about side effects (e.g., attachments), but sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action, then explains modes. No unnecessary words. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers core deletion behavior and mode distinction. But lacks context on mailbox parameter (defaults to INBOX), and does not mention authentication or response. Given no output schema, more detail on return value would help. Still, adequate for a simple delete tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low (25%). Description explains the 'mode' parameter's two values and default behavior, adding meaning. However, it does not describe 'uid', 'mailbox', or 'trash_path' beyond what schema provides. Partial compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Deletes a message' with specific verb and resource. Distinguishes two deletion modes (trash vs permanent), which differentiates from any implicit alternative. No ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides guidance on when to use each mode: default is reversible trash, permanent is irreversible. However, does not explicitly mention when to use this tool over other actions (e.g., moving to trash via move). Still, the two modes are well-explained.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
proton_drive_auditAudit Proton Drive contentARead-onlyIdempotent
Scans the staging directory and returns an inventory report: total files, by type/size/date, duplicates, and obsolete formats.
| Name | Required | Description | Default |
|---|---|---|---|
| staging_dir | No | Override staging directory path | |
| response_format | No | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| duplicates | Yes | |
| totalBytes | Yes | |
| totalFiles | Yes | |
| obsoleteFiles | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, openWorld, and idempotent hints. The description adds value by specifying the target directory (staging) and the report contents (duplicates, obsolete formats), which are not covered by annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the action and resource. Every word is meaningful and earned.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that the tool has only 2 parameters and an output schema exists, the description adequately covers purpose, scope, and return content. No additional details are necessary for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% and both parameters have descriptions. The tool description does not add additional semantic value beyond what the schema provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (scans), resource (staging directory), and the output (inventory report with details). It distinguishes from siblings like proton_drive_list_files (lists files) and proton_drive_status (status).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for auditing but does not explicitly contrast with alternatives or provide when-to-use/when-not-to-use guidance. Among siblings, there are list and organize tools, but no differentiation is stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
proton_drive_auth_loginAuthenticate with Proton DriveAIdempotent
Attempts to authenticate with the proton-drive CLI. Since the CLI requires interactive credentials (username, password, 2FA), the tool returns a command the user must run in their terminal. Check auth status with proton_drive_auth_status after running the command.
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | If true, skips the already-authenticated check and returns login instructions. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool returns a command rather than performing actual authentication, which is key behavioral information. Annotations already indicate idempotency and non-destructiveness; the description adds context about the interactive credential requirement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the primary action, and every sentence provides essential information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (one optional parameter, no output schema), the description adequately covers what the tool returns and how to proceed. It mentions the return type (a command) and the next step (checking status), making it complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the schema already describes the force parameter fully. The tool description does not add further parameter semantics beyond what is in the schema, making a baseline score of 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool attempts to authenticate with proton-drive CLI by returning a command for the user to run. It distinguishes itself from the sibling tool proton_drive_auth_status by mentioning to check status after running the command.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly instructs to check auth status with proton_drive_auth_status after running the command, providing clear usage context. However, it does not explicitly state when not to use it or mention the force parameter's role in skipping authentication checks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
proton_drive_auth_statusProton Drive authentication statusARead-onlyIdempotent
Checks whether the proton-drive CLI is installed and authenticated. Use this before any Drive operation that requires auth.
| Name | Required | Description | Default |
|---|---|---|---|
| response_format | No | Output format. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, openWorld, and idempotent hints. The description adds beyond that by specifying it checks both installation and authentication, which is useful context. It could also describe the return value structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two clear, front-loaded sentences with no wasted words. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only check with single optional parameter and no output schema, the description covers the essential purpose and usage. It could mention expected output or error conditions, but is largely sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter (response_format) is fully covered by the schema with enum values and description. The tool description adds no extra meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool checks installation and authentication status of the proton-drive CLI, with a specific verb and resource. It distinguishes itself from sibling tools like proton_drive_auth_login.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to use this before any Drive operation requiring auth, providing clear when-to-use guidance. It does not mention when not to use it or alternatives, but the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
proton_drive_copyCopy files on Proton DriveCRead-onlyIdempotent
Copies a remote path using the proton-drive CLI.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Destination remote path | |
| from | Yes | Source remote path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint: true, but copying creates a new file, which is a write operation. This is an annotation contradiction. The description does not disclose other behaviors like overwrite behavior or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, directly stating the purpose. However, it is too brief and could include more context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no behavioral details, the description is incomplete for a copy operation. It omits important context such as whether the operation overwrites destinations, requires authentication, or produces any output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. The description adds no additional meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (copy) and resource (remote path), but does not differentiate from sibling tool proton_drive_move which moves files.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use copy vs move, no prerequisites, and no when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
proton_drive_create_folderCreate folder on Proton DriveCIdempotent
Creates a new folder using the proton-drive CLI.
| Name | Required | Description | Default |
|---|---|---|---|
| remote_path | Yes | Remote path for the new folder |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds minimal behavioral context beyond the annotations. Annotations indicate a write operation (readOnlyHint=false) and idempotency (idempotentHint=true), but the description does not elaborate on what happens if the folder already exists, required permissions, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (one sentence) but essentially repeats the title. It lacks additional value such as example usage or notes. While concise, it could be more informative without adding length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (1 parameter, no output schema), the description is too brief. It does not explain behavior on duplicate paths, success/failure responses, or integration with other drive tools. 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage, with one parameter 'remote_path' described as 'Remote path for the new folder'. The description does not add additional semantics or format guidance beyond this, so it meets the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Creates') and the resource ('a new folder') along with the method ('using the proton-drive CLI'). It distinguishes from sibling tools like 'proton_drive_copy' or 'proton_drive_remove' by focusing on folder creation. However, it could be more specific about scope (e.g., parent directory).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'proton_create_folder' or when not to use it. There is no mention of prerequisites or contexts where this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
proton_drive_downloadDownload from Proton Drive to stagingAIdempotent
Downloads a remote Proton Drive path into the local staging directory using the proton-drive CLI. Idempotent.
| Name | Required | Description | Default |
|---|---|---|---|
| local_path | No | Override staging directory locally. Defaults to configured stagingDir. | |
| remote_path | No | Remote path on Proton Drive to download. | /my-files |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotency and non-destructive nature. Description adds context about using the proton-drive CLI and the staging directory, but does not disclose further behavioral traits like error handling or network dependencies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise with two sentences. The first covers the core action, and the second adds a key behavioral note. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple download tool with two parameters and no output schema, the description is fairly complete. It covers purpose, idempotency, and basic usage. Could add details on recursion or size limits but adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains both parameters. The description does not add extra meaning beyond what the schema provides, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it downloads a remote Proton Drive path to local staging directory. The verb 'downloads' and resource specification distinguish it from siblings like 'upload' or 'copy'. 'Idempotent' adds clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for downloading files from Proton Drive to local staging, but lacks explicit guidance on when to use this over alternatives like proton_drive_upload or proton_drive_copy. No when-not or prerequisite info.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
proton_drive_format_reportProton Drive format reportCRead-onlyIdempotent
Detailed analysis of file formats in the staging directory.
| Name | Required | Description | Default |
|---|---|---|---|
| staging_dir | No | ||
| response_format | No | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare read-only, open-world, and idempotent hints. The description adds no behavioral context beyond stating 'analysis', which is consistent but uninformative. No additional behavioral traits (e.g., dependency on other tools, rate limits) are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that quickly states the purpose, front-loading the key action. However, it is overly brief and does not include any parameter context or usage notes, sacrificing completeness for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lacks contextual completeness. It does not explain what the analysis output looks like (e.g., counts, errors), does not indicate whether the staging directory must already exist or be populated, and does not clarify the relationship to sibling tools like proton_drive_list_files or proton_drive_audit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must provide parameter semantics, but it does not. It fails to explain the role of 'staging_dir' or the 'response_format' enum values (markdown vs json). This is a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool performs detailed analysis of file formats in the staging directory, identifying the specific resource and scope. However, it does not explicitly distinguish this from sibling tools like proton_drive_list_files or proton_drive_audit, and 'analysis' is somewhat vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidelines are provided. The description does not indicate when to use this tool over alternatives like proton_drive_list_files or proton_drive_audit, nor does it mention any prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
proton_drive_list_filesList files on Proton DriveBRead-onlyIdempotent
Lists the contents of a remote Proton Drive path using the proton-drive CLI. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| remote_path | No | Remote path on Proton Drive, e.g. /my-files/Documents. | /my-files |
| response_format | No | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, and idempotentHint. The description adds minimal value beyond annotating 'Read-only'. It mentions the CLI tool used, which provides some implementation context, but does not disclose further behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences, front-loading the action and context. Every word is meaningful with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list operation with two optional parameters and strong annotations (readOnly, openWorld, idempotent), the description is adequate. However, it could mention whether the listing includes subfolders or metadata, which would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has two parameters with 50% documentation coverage (only 'remote_path' has a description). The tool description does not explain parameters or their usage, leaving the agent to rely solely on the schema. No additional semantic information is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists contents of a remote Proton Drive path using the CLI. It is specific about the verb (list files) and resource (remote Proton Drive path), distinguishing it from sibling tools like 'proton_list_folders' and 'proton_drive_copy'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It lacks context such as prerequisites, limitations, or when not to use it. Only the 'Read-only' hint is present, which does not constitute sufficient usage guidelines.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
proton_drive_moveMove files on Proton DriveBIdempotent
Moves a remote path using the proton-drive CLI.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Destination remote path | |
| from | Yes | Current remote path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true, but the description adds no behavioral context beyond the action. It does not disclose whether existing destinations are overwritten, permissions required, or error handling (e.g., what happens if the source file is open). The bar is low because there are no annotations beyond idempotence, but the description still fails to add significant transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with zero waste. Front-loaded with the primary action. Ideal conciseness for a straightforward tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and simple parameters, the description is minimal but adequate for basic understanding. However, it omits details about success/error handling, return values, or side effects (e.g., overwrite behavior). For a CLI tool, the outcome is partially implied, but more completeness would help.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with 'from' and 'to' parameters clearly described in the schema as 'Current remote path' and 'Destination remote path'. The description adds no additional meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Moves' and the resource 'remote path' using the CLI. The name 'proton_drive_move' distinguishes it from siblings like 'proton_drive_copy', but the description does not explicitly contrast them. However, the purpose is well-understood.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as 'proton_drive_copy' or 'proton_drive_remove'. The description lacks context about prerequisites, conflicts, or scenarios where moving differs from copying or deleting.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
proton_drive_organizeOrganize files in Proton DriveA
Analyzes the staging directory and moves files into a structured folder layout (by type). Dry-run by default.
| Name | Required | Description | Default |
|---|---|---|---|
| dry_run | No | If true, only shows the plan without moving files. | |
| staging_dir | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate the tool is mutative (readOnlyHint=false) and may have side effects (openWorldHint=true). The description adds the dry-run behavior, but does not disclose details like what folder structure is created or if files are overwritten. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. It front-loads the action and purpose, making it efficient for an AI agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity—organizing files with potential folder creation—the description lacks details about the structural logic, type classification, and conflict handling. No output schema exists, so descriptions should cover return behavior, but it does not. This leaves significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%; dry_run has a description that matches the schema, while staging_dir is undocumented. The description adds context by naming it 'staging directory', but does not fully compensate for the missing schema description. Baseline 3 applies as coverage is moderate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'analyzes and moves' and the resource 'staging directory', with a specific action 'structured folder layout (by type)'. This distinguishes it from sibling tools like proton_drive_move, which moves individual files.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions 'Dry-run by default', which gives usage context, but does not explicitly state when to use this tool versus alternatives like proton_drive_move or proton_drive_list_files. The usage is implied but not fully delineated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
proton_drive_removeRemove files from Proton DriveADestructiveIdempotent
Permanently removes a remote path from Proton Drive. Destructive operation.
| Name | Required | Description | Default |
|---|---|---|---|
| remote_path | Yes | Remote path to remove |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, and the description adds 'Permanently removes' and 'Destructive operation', reinforcing irreversible behavior. No mention of permissions or side effects, but adequate for a simple deletion.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: first states the action, second emphasizes destructive nature. Front-loaded with no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter remove tool with full schema coverage and annotations, the description sufficiently conveys permanence and destructiveness. No output schema needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear 'remote_path' parameter description. The tool description adds no additional meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Permanently removes a remote path from Proton Drive' with a specific verb and resource, distinguishing it from sibling tools like delete_email or move operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., move, share) or prerequisites like ensuring correct path. The description only states the action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
proton_drive_statusProton Drive sync statusARead-onlyIdempotent
Returns the current state of the proton-drive CLI binary and the local staging directory.
| Name | Required | Description | Default |
|---|---|---|---|
| response_format | No | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, and open-world behavior. The description adds that the tool returns state of specific components, providing moderate additional context but not detailing output format or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the purpose, no extraneous information. Every word is necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter and no output schema, the description adequately covers the purpose. Could optionally mention default output format, but not required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage and only one optional parameter, the description fails to explain the response_format parameter beyond its enum values. The agent gets no help from the description on how to use the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool returns the current state of the proton-drive CLI binary and local staging directory, using a specific verb and resource that distinguishes it from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like proton_drive_auth_status or proton_drive_health. The agent must infer usage from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
proton_drive_uploadUpload staging to Proton DriveB
Uploads the local staging directory to a remote Proton Drive path using the proton-drive CLI.
| Name | Required | Description | Default |
|---|---|---|---|
| local_path | No | Override staging directory locally. | |
| remote_path | No | Remote destination path on Proton Drive. | /my-files |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate non-read-only and non-destructive. Description adds no extra behavioral details like overwrite behavior, recursion, or handling of existing files. The concept of 'staging directory' remains unexplained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, 14 words, entirely front-loaded with the core purpose. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, so return value is not explained. Missing details on error conditions, required authentication, or behavior on duplicate uploads. Incompletely specifies the operation for a file upload tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters. The description reiterates but does not add significant new meaning beyond saying local_path overrides the default staging directory.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb (uploads) and resource (local staging directory to remote Proton Drive path). Mentions CLI. Distinguishes from sibling tools like proton_drive_download (downloads) and proton_drive_copy (copies within drive).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use or when not. Lacks prerequisites (e.g., authentication status) and does not differentiate from similar tools like proton_drive_copy for moving files within drive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
proton_ecosystem_check_updatesCheck for updatesCRead-onlyIdempotent
Available version updates for Proton binaries.
| Name | Required | Description | Default |
|---|---|---|---|
| product | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare read-only and idempotent behavior, which is sufficient. However, the description adds no behavioral context beyond that, and it fails to mention that the product parameter filters results, which is a behavioral nuance.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence with no filler. However, it omits necessary details about the parameter, making it slightly under-specified for its conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and a simple input, the description is incomplete. It fails to mention the product filter or the nature of the output (e.g., list of updates). The annotations cover safety, but context for invocation is lacking.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate but does not. It ignores the optional product parameter entirely, leaving the agent unaware that it can filter by specific binaries.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: checking for available version updates for Proton binaries. The name and title align, and it distinguishes from sibling tools like install or health. However, it could be more explicit about filtering by product.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives; no mention of prerequisites, typical use cases, or when not to use it. Siblings like install imply a sequence, but the description does not clarify this.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
proton_ecosystem_discoverDiscover Proton ecosystem binariesBRead-onlyIdempotent
Which Proton product binaries are installed and their auth status.
| Name | Required | Description | Default |
|---|---|---|---|
| response_format | No | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, so the safety profile is clear. The description adds the specific output focus (binaries + auth status) but does not describe behavior like return format or whether it scans the system. Given annotation coverage, a score of 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—a single phrase with no redundant words. It is front-loaded with the core purpose. However, being overly terse may omit useful details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple discovery tool with one optional parameter and no output schema, the description provides the essential purpose. However, it lacks details about the output format and the scope of 'Proton product binaries'. The absence of parameter documentation also reduces completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter (response_format) is not mentioned in the description. With 0% schema description coverage, the agent must rely solely on the schema enum definition. The description adds no value for parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool discovers which Proton product binaries are installed and their authentication status. It distinguishes from sibling tools like proton_ecosystem_health (overall health) and proton_ecosystem_check_updates (update checking). However, the phrasing is a question fragment rather than an imperative statement, slightly reducing clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., proton_ecosystem_health or proton_drive_auth_status). The agent receives no context about prerequisites or appropriate scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
proton_ecosystem_healthEcosystem health checkBRead-onlyIdempotent
Unified health status of all Proton ecosystem binaries. Returns a concise pass/fail summary.
| Name | Required | Description | Default |
|---|---|---|---|
| response_format | No | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, so the safety profile is clear. The description adds that it returns a 'pass/fail summary,' which is useful but doesn't elaborate on behavior (e.g., what happens if some binaries fail). This is adequate but not exceptional.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—two sentences that front-load the core purpose and output format. Every word adds value, with no redundancy or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter and no output schema, the description is mostly adequate. However, it omits any mention of the response_format parameter, which is a notable gap. The pass/fail summary is appropriate for a health check.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter response_format is not mentioned in the description, despite the schema having 0% description coverage. The agent receives no guidance on its purpose or allowed values, leaving it to infer from the enum alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Unified health status of all Proton ecosystem binaries' and specifies the output format ('Returns a concise pass/fail summary'). This distinguishes it from sibling tools like proton_bridge_health or proton_suite_status that focus on specific components.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. Given the many sibling health/status tools, explicit context would help the agent decide—for example, noting that this checks all binaries at once versus individual component checks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
proton_ecosystem_installInstall Proton productDDestructiveIdempotent
Instructions for installing a Proton product binary.
| Name | Required | Description | Default |
|---|---|---|---|
| product | No | drive |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description says 'Instructions for installing', which implies a read operation, but annotations indicate destructiveHint=true and readOnlyHint=false, suggesting actual modification. This contradiction is confusing. The description adds no behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short but wastes its brevity on unclear phrasing ('Instructions for installing'). It is not concise in a helpful way; key information is missing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description should clearly state what it does. It fails to do so, rendering it incomplete for agent understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not mention the 'product' parameter or its enum values. It adds no meaning beyond the schema, leaving the agent without clarity on what to specify.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Instructions for installing a Proton product binary' is ambiguous; it suggests returning instructions rather than performing an installation. The title states 'Install Proton product', but the description does not clearly state the action. It is vague and potentially misleading.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'proton_ecosystem_discover' or 'proton_ecosystem_check_updates'. The description does not mention context or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
proton_flag_emailFlag / unflag emailsAIdempotent
Toggles per-message flags. Supported: 'read', 'unread', 'starred', 'unstarred'. For custom flags, pass add_flags/remove_flags directly.
| Name | Required | Description | Default |
|---|---|---|---|
| uid | Yes | ||
| action | Yes | Shorthand action | |
| mailbox | No | INBOX | |
| add_flags | No | Custom flags to add (action=custom only) | |
| remove_flags | No | Custom flags to remove (action=custom only) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate non-read-only, idempotent, and non-destructive behavior. The description adds detail about supported flag types and custom flags via add_flags/remove_flags, which is consistent with annotations and provides useful context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the main action, and efficiently lists supported flags and custom flag usage. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 parameters and no output schema, the description is incomplete. It does not mention success/failure behavior, return values, or the default mailbox value. While it covers the core flagging action, it lacks sufficient context for an agent to use it reliably.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds minimal meaning beyond the input schema. It clarifies the 'custom' action usage for add_flags/remove_flags, but does not describe 'uid' or 'mailbox' meaning, which are also missing from schema descriptions. Schema coverage is 60%, but the description fails to compensate for gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Toggles per-message flags' and lists supported flags. It distinguishes this tool from sibling tools like proton_move_email, proton_delete_email, etc., which handle different operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly say when to use this tool versus alternatives, but the context of sibling tools makes it clear that this is for flagging operations. It lacks guidance on when not to use or specific prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
proton_forward_emailForward an emailB
Forwards an existing message to new recipients. Optionally includes original attachments.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | ||
| uid | Yes | ||
| html | No | ||
| text | No | ||
| mailbox | No | INBOX | |
| include_attachments | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate writable, non-destructive, non-idempotent behavior. The description adds the optional attachment inclusion but does not elaborate on side effects like marking the original email as forwarded or requiring specific mailbox access.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise at two sentences and 14 words, with key info front-loaded. However, given the 6 parameters, slightly more detail could improve completeness without harming conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description does not cover return values (no output schema) and leaves multiple parameters unexplained. For a tool with 6 parameters and many siblings, it is insufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only two parameters are explained implicitly ('to' via 'new recipients' and 'include_attachments' via the option). With 0% schema coverage, the description fails to clarify the meaning of 'uid', 'html', 'text', and 'mailbox', leaving significant gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('forwards'), the resource ('existing message'), and an important option ('optionally includes original attachments'). It is specific and distinguishes from sibling tools like send_email or reply_email.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., reply_email), nor when not to use it. Given many sibling tools, this omission reduces clarity for an AI agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
proton_get_attachmentDownload an attachmentARead-onlyIdempotent
Returns the bytes of a specific attachment encoded as base64. Use the attachment index from proton_get_email. Large attachments are truncated to max_bytes (default 10 MB) with a truncated=true flag in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| uid | Yes | ||
| index | Yes | Zero-based index in the attachments array | |
| mailbox | No | INBOX | |
| max_bytes | No | Maximum attachment size in bytes (default 10 MB, hard cap 50 MB) |
Output Schema
| Name | Required | Description |
|---|---|---|
| base64 | Yes | |
| filename | No | |
| truncated | Yes | |
| size_bytes | Yes | |
| contentType | Yes | |
| returned_bytes | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint, openWorldHint, idempotentHint. The description adds that large attachments are truncated to max_bytes with a truncated=true flag, which is useful behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, dense sentences; front-loaded with core purpose; no redundant information. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description need not explain return values. It covers key behaviors (base64 encoding, truncation) and prerequisites. Lacks only edge-case details, which is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%. The description adds meaning for max_bytes (default 10 MB, hard cap 50 MB) and references index from get_email, but does not elaborate on uid or mailbox beyond schema. Adequate but not exceptional.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns base64-encoded bytes of a specific attachment, using the attachment index from proton_get_email. It distinctly differentiates from sibling tools like proton_drive_download.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells when to use it (to get attachment bytes) and mentions the prerequisite of using proton_get_email. It doesn't explicitly say when not to use it or list alternatives, which lowers to 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
proton_get_emailRead one email (full body)ARead-onlyIdempotent
Fetches one email by UID, with headers, text/html body and attachment metadata. Use proton_get_attachment to download attachment bytes. Large HTML bodies are returned as-is — truncate client-side if needed. To mark as read, call proton_flag_email separately (keeps this tool purely read-only).
| Name | Required | Description | Default |
|---|---|---|---|
| uid | Yes | Message UID (from list/search) | |
| mailbox | No | INBOX | |
| include_html | No | Include HTML body in addition to text | |
| response_format | No | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| cc | Yes | |
| to | Yes | |
| uid | Yes | |
| date | No | |
| from | No | |
| flags | Yes | |
| subject | No | |
| htmlBody | No | |
| textBody | No | |
| attachments | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint. The description adds that HTML bodies are returned as-is (truncate client-side) and that marking as read is a separate action, reinforcing the read-only nature. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences with no fluff. The first sentence immediately states the purpose, and subsequent sentences add necessary context and guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (4 parameters, read-only tool) and the presence of an output schema, the description is complete enough. It covers the main return types and how to use related tools. Minor omission: no explicit mention of auth prerequisites, but annotations include openWorldHint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (only uid and include_html have descriptions). The description adds context about fetching headers, body, and attachment metadata but does not detail all parameters. Baseline 3 is appropriate as the description provides some additional meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it fetches one email by UID with headers, body, and attachment metadata. It distinguishes itself from sibling tools like proton_get_attachment (for downloading attachment bytes) and proton_flag_email (for marking as read).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (to fetch full email) and provides alternatives: proton_get_attachment for downloading attachments and proton_flag_email for marking as read. Also advises on handling large HTML bodies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
proton_list_emailsList emails in a mailboxARead-onlyIdempotent
Lists recent emails in a mailbox, newest first. Use pagination with offset+limit. Returns UID, from, to, subject, date, flags, size. Does NOT return the body — use proton_get_email for that.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| mailbox | No | INBOX | |
| response_format | No | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| items | Yes | |
| total | Yes | |
| offset | Yes | |
| mailbox | Yes | |
| has_more | Yes | |
| next_offset | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide read-only, idempotent, open-world hints. Description adds behavior details: returns specific fields, does not return body, and pagination behavior. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, no fluff. Efficiently conveys key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers main use case, pagination, and return fields. Output schema exists, so detailed return structure is covered. Missing explicit mention of default mailbox and response_format options, but overall adequate for a list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. Description only mentions offset and limit, but does not explain mailbox, response_format, or parameter defaults/constraints. Partially addresses parameters, but significant gaps remain.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it lists recent emails in a mailbox, newest first. Distinguishes from sibling proton_get_email (which returns body) and implies difference from proton_search_emails (search vs. list).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to use pagination with offset+limit and points to alternative tool proton_get_email for body retrieval. Could be more explicit about when to use list vs. search, but sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
proton_list_foldersList mailboxes (folders/labels)ARead-onlyIdempotent
Lists every IMAP mailbox exposed by Proton Bridge (system folders like INBOX/Sent/Trash and user labels/folders). Use the returned 'path' values as the mailbox argument in other tools. Call this first when the agent doesn't know the mailbox layout.
| Name | Required | Description | Default |
|---|---|---|---|
| response_format | No | Output format | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| folders | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint, openWorldHint, idempotentHint) already cover safety traits. The description adds no behavioral details beyond listing, which is acceptable but doesn't enhance transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with purpose and usage guidance. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one optional param, read-only, output schema exists). The description explains how the output is used, making it complete for its role.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema describes the only parameter (response_format) with enum and default (100% coverage). Description doesn't add extra meaning, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Lists every IMAP mailbox' with examples (INBOX/Sent/Trash, user labels/folders). It clearly identifies the resource and action, distinguishing it from sibling tools like proton_create_folder.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises using returned 'path' values in other tools and to call this first when layout is unknown. This provides clear usage context but doesn't explicitly state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
proton_mailbox_statusGet mailbox countsARead-onlyIdempotent
Returns total messages, unseen/unread count and recent count for a mailbox. Fast — useful for Routines to check 'do I have unread mail?'.
| Name | Required | Description | Default |
|---|---|---|---|
| mailbox | No | Mailbox path, e.g. INBOX | INBOX |
Output Schema
| Name | Required | Description |
|---|---|---|
| recent | Yes | |
| unseen | Yes | |
| mailbox | Yes | |
| uidNext | No | |
| messages | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, and idempotentHint=true, which fully disclose the safe, read-only, and idempotent nature. The description adds that it is 'fast' but does not provide additional behavioral context such as error handling for nonexistent mailboxes or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences, no wasted words, and the most important verb ('Returns') appears first. Every sentence adds unique value: what it does and a typical use case.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (0 required parameters, output schema exists), the description fully covers what the tool returns (total, unseen, recent counts) and its intended use. No critical information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single 'mailbox' parameter, which is already adequately described with an example. The tool description does not add any new meaning beyond the schema's own description, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns 'total messages, unseen/unread count and recent count for a mailbox,' which is a specific verb+resource combination. It distinguishes itself from sibling tools like proton_list_emails by focusing on aggregate counts rather than listing individual messages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly suggests using this tool for routines to check unread mail, providing clear context for when to use it. However, it does not explicitly mention when not to use it or compare to alternatives like proton_list_emails for detailed views.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
proton_move_emailMove an email to another mailboxA
Moves a message by UID from one mailbox to another. Use proton_list_folders to see valid targets.
| Name | Required | Description | Default |
|---|---|---|---|
| uid | Yes | ||
| to_mailbox | Yes | ||
| from_mailbox | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate mutability (readOnlyHint=false) and non-destructiveness. The description adds that it uses UID and moves between mailboxes, and hints at a prerequisite (list_folders), providing additional behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler. The main action is front-loaded, and every word serves a purpose. Ideal conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (3 params, no output schema), the description covers the core operation and links to a related tool. It does not explain return values, but this is a minor gap for a basic move command.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not detail each parameter beyond what the names imply, and schema coverage is 0%. However, it mentions 'by UID from one mailbox to another,' which clarifies the three parameters' roles. With three self-explanatory names, this is adequate but could provide more guidance on format or validation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Moves a message by UID from one mailbox to another,' which is a specific verb+resource with clear scope. It distinguishes from siblings like proton_delete_email and proton_drive_move by explicitly mentioning UID and mailbox context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells when to use the tool and references proton_list_folders for valid targets, providing context. It does not explicitly mention when not to use or direct alternatives, but the purpose is clear enough for an agent to decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
proton_reply_emailReply to an emailA
Replies to an existing message preserving threading (In-Reply-To, References). Set reply_all=true to include CC recipients. Set include_quote=true to quote the original.
| Name | Required | Description | Default |
|---|---|---|---|
| uid | Yes | ||
| html | No | ||
| text | No | ||
| mailbox | No | INBOX | |
| reply_all | No | ||
| include_quote | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate non-read-only and non-destructive. Description adds behavioral detail: threading headers are preserved, and reply_all/include_quote toggle CC and quoting. These go beyond annotations to specify side effects of optional parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: first sentence states core functionality, second covers key options. No wasted words; information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Moderate complexity (6 params, no output schema). Explains threading and two booleans, but omits that the reply is sent immediately, the role of html vs text, and how mailbox affects the target folder. Could be more explicit about the action's result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate. It explains reply_all and include_quote, but leaves uid, html, text, and mailbox unelaborated. Over half of parameters lack semantic clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool replies to an existing message while preserving threading headers (In-Reply-To, References). It uses specific verbs and resource, distinguishing it from sending new emails or forwarding, especially due to threading emphasis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when replying to an existing message but does not explicitly contrast with alternatives like 'proton_send_email' for new messages or 'proton_forward_email'. No guidance on when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
proton_search_emailsSearch emailsARead-onlyIdempotent
Keyword-search emails in a mailbox. Filter by text in any field, or restrict to subject/from/to/body. Combine with date range and unseen flag. Returns newest matches first, up to 'limit'. Use 'text' for a broad 'anywhere' match.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | Keyword to search for | |
| since | No | ISO date — only messages on/after this date | |
| before | No | ISO date — only messages before this date | |
| fields | No | Which fields to search. 'text' = anywhere. | |
| mailbox | No | INBOX | |
| to_address | No | Restrict to messages to this address | |
| unseen_only | No | Only return unread messages | |
| from_address | No | Restrict to messages from this address | |
| response_format | No | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| items | Yes | |
| mailbox | Yes | |
| matched | Yes | |
| has_more | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses ordering (newest first), limit behavior, and field search semantics. Complements annotations (readOnlyHint, idempotentHint) with actionable details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each packed with essential information. No redundancy or wasted words. Front-loaded with main purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers sorting, default filter, filtering dimensions, and result count. Output schema exists so return format is external. Thorough for a search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds meaning to key parameters like 'fields' (search anywhere vs specific), 'limit', 'since'/'before', and 'unseen_only'. Explains behavior beyond schema descriptions; 70% schema coverage is complemented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it keyword-searches emails, with filtering options. Distinguishes from sibling 'proton_list_emails' by emphasizing keyword search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context: broad search via 'text', restrict to subject/from/to/body, combine with date range and unseen flag. Lacks explicit when-not-to-use or alternatives, but sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
proton_send_emailSend an emailA
Sends an email via Proton Bridge SMTP. 'from' is fixed to the configured address. Provide either text, html, or both. Attachments are base64-encoded bytes.
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | ||
| to | Yes | Recipient addresses | |
| bcc | No | ||
| html | No | ||
| text | No | ||
| subject | Yes | ||
| reply_to | No | ||
| attachments | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate non-read-only, non-destructive, open world. Description adds that 'from' is fixed and attachments must be base64-encoded, but does not disclose authentication needs, rate limits, or success/failure behavior. Some value added beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no redundancy, every word adds value. Front-loaded with verb and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 8 parameters, no output schema, and many sibling tools, the description covers core sending functionality but lacks details on error handling, attachment limits, or whether multiple recipients are supported. Adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 13% (only 'to' described). Description clarifies that text or html can be provided, and attachments need base64 encoding. However, it omits semantics for cc, bcc, reply_to, and subject. Partially compensates for low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sends an email via Proton Bridge SMTP, identifies the key constraints (fixed from, text/html/both, base64 attachments), and distinguishes it from sibling tools like reply or forward by naming the method.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for sending new emails but does not explicitly state when to use this tool over siblings (e.g., reply, forward) or provide any exclusion criteria. No alternative tools are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
proton_suite_statusGet Proton Suite unified statusARead-onlyIdempotent
Reports the connection status, diagnostics, and metrics of all configured Proton Suite products.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the description adds value by specifying it reports diagnostics and metrics beyond simple connection status. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 14 words, directly front-loading the purpose. Every word contributes meaning; no superfluous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, parameterless tool, the description adequately describes what the tool reports (status, diagnostics, metrics). However, it could benefit from hinting at the output format or structure, but this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema provides full coverage. The description does not need to add parameter details. Baseline score of 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reports connection status, diagnostics, and metrics for all configured Proton Suite products. It uses a specific verb ('Reports') and resource ('Proton Suite products'), distinguishing it from sibling tools that focus on individual products.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for overall suite health but does not explicitly state when to use this tool versus alternatives like product-specific status tools. No exclusions or conditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
39 tool updates
v0.8.0- First observed
proton_agent_plan - First observed
proton_bridge_accounts - First observed
proton_bridge_health - First observed
proton_bridge_info - First observed
proton_bridge_login - First observed
proton_bridge_logout - First observed
proton_bridge_status - First observed
proton_create_folder - First observed
proton_delete_email - First observed
proton_drive_audit - First observed
proton_drive_auth_login - First observed
proton_drive_auth_status - First observed
proton_drive_copy - First observed
proton_drive_create_folder - First observed
proton_drive_download - First observed
proton_drive_format_report - First observed
proton_drive_list_files - First observed
proton_drive_move - First observed
proton_drive_organize - First observed
proton_drive_remove - First observed
proton_drive_share - First observed
proton_drive_status - First observed
proton_drive_upload - First observed
proton_ecosystem_check_updates - First observed
proton_ecosystem_discover - First observed
proton_ecosystem_health - First observed
proton_ecosystem_install - First observed
proton_flag_email - First observed
proton_forward_email - First observed
proton_get_attachment - First observed
proton_get_email - First observed
proton_list_emails - First observed
proton_list_folders - First observed
proton_mailbox_status - First observed
proton_move_email - First observed
proton_reply_email - First observed
proton_search_emails - First observed
proton_send_email - First observed
proton_suite_status
TDQS
Each tool has a clear, distinct purpose, grouped by product area (bridge, drive, mailbox, ecosystem, agent). Within email, tools are separated by action (list, search, get, send, reply, forward, flag, move, delete) with no overlap. Drive operations are similarly distinct. No ambiguity between tools.
All tools follow a consistent pattern: proton_<product>_<verb>_<noun> (e.g., proton_list_emails, proton_drive_upload, proton_bridge_login). No mixing of styles or inconsistent verb forms.
With 39 tools, the server is comprehensive but slightly heavy. However, it covers multiple sub-products (Mail, Bridge, Drive, Ecosystem, Agent), each requiring several tools. The count is justified by the breadth, though it exceeds the typical 15-tool sweet spot.
The tool surface is complete for the Proton Suite domain: email CRUD (send, receive, search, flag, move, delete), drive file management (upload, download, organize, share), bridge and ecosystem status/management, and even agent planning. No obvious gaps for common workflows.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
Email infrastructure for AI agents — send, receive, search, and reply to email over MCP.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server for the Proton privacy suite — Mail, Pass, Drive, Calendar, and VPN. 36 tools for Claude and other MCP-compatible AI agents.18MIT
- AlicenseAqualityAmaintenanceAn MCP server that gives AI agents permission-gated, audit-logged access to private email providers (Proton Mail via Bridge and plain IMAP), running locally with OAuth-based authentication and human-controlled escalation for destructive operations.6628810MIT
- FlicenseNot gradedqualityFmaintenanceAn MCP server that connects to ProtonMail via Bridge, enabling AI assistants like Claude to manage your email.3-
- AlicenseAqualityBmaintenanceAn MCP server that enables AI assistants to read and search Proton Mail messages through a locally running Proton Mail Bridge. It provides tools like list_folders, list_messages, search_messages, get_message, and get_attachment.6193MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Iniciativas-Alexendros/agent-protonsuite'
If you have feedback or need assistance with the MCP directory API, please join our Discord server