An open-sourced, terminal-based AI coding agent with MCP tool integration support
Postal has 12 tools with significant definition gaps. Most tools lack parameter descriptions (e.g., 'plan' and 'memory' have only action param with no description of valid actions). Schemas are present but minimal, many parameters lack type constraints or enums. Descriptions vary: 'read' (24 chars) and 'write' (52 chars) are too brief; 'apply_patch' (300+ chars) is verbose but helpful. No output schemas documented. Error handling is absent from descriptions. Tool names follow verb_noun convention (good), but parameter naming is inconsistent (e.g., 'action' is overloaded in 'plan' and 'memory'). Security concerns: bash tool has no dry-run or confirmation pattern despite IRREVERSIBLE risk. No tool annotations (readOnlyHint, destructiveHint) present.
Apply a multi-file patch. Supports creating, updating, deleting, and renaming files in a single operation. **PREFERRED** when editing 2 or more files instead of making multiple separate edit calls. More efficient and allows batching multiple file operations atomically: every operation is checked first, and nothing is written unless all of them can be applied. Format: *** Begin Patch *** Update File: path/to/file.py <<<<<<< SEARCH old content ======= new content >>>>>>> REPLACE *** End Patch Also supports: *** Create File: path - creates new file with content after it *** Delete File: path - deletes the file *** Rename File: old -> new - renames/moves a file A single Update File may carry several SEARCH/REPLACE blocks, applied in order. Each search text must match exactly ( including whitespace and indentation ) and must be unique in the file. Set dry_run to preview without writing.
Execute a bash command
Edit a file using search and replace
Fetch content from a URL
Find files matching a glob pattern
Search for text patterns in files
plan and memory tools have only 'action' parameter with no description of valid actions (add, list, complete, etc.). LLM cannot infer what actions are supported.
bash tool lacks dry-run, confirmation, or timeout pattern despite IRREVERSIBLE risk classification. No error guidance for failed commands.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) present. LLM cannot distinguish safe vs. destructive operations without reading descriptions.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
List directory contents
Store and retrieve important user preferences and context
Manage a todo list for multi-step tasks
Read file contents
Search the web using DuckDuckGo
Write content to a file, creating it if it does not exist
Output schemas not documented for any tool. LLM cannot plan downstream tool calls or extract required fields (e.g., what does grep return? List of matches? File paths? Line numbers?).
Descriptions for read, write, list_dir, fetch, glob are under 50 chars, too brief to guide LLM selection. No context on when to use each vs. alternatives.