Create, update, delete, or move notes in the vault. ACTIONS: write (default) — create or update a note (requires frontmatter + content) delete — soft delete: archive the note (sets archived_from/archived_at) hard_delete — permanently remove the note from disk move — rename/relocate a note and rew...
AI agents call write_note to permanently remove resources in Grove — typically in cleanup and lifecycle workflows. It does its job in a single call, and there is no undo.
While the tool primarily supports Write operations (create/update), it includes hard_delete functionality that permanently removes data without recovery. Per classification rules, when a tool spans categories, the most severe applies. Destructive (irreversible deletion) supersedes Write. The hard_delete action represents a critical risk—permanent data loss in a user's knowledge vault.
From the tool's definition Tool description explicitly states: 'delete — soft delete: archive the note' and 'hard_delete — permanently remove the note from disk'. The hard_delete action irreversibly removes notes from disk, which cannot be undone.
Documented attack patterns abuse exactly the kind of access write_note gives an agent:
PolicyLayer is an MCP gateway — it sits between your AI agents and Grove, and nothing reaches the server without passing your rules. This is the rule we recommend for write_note:
{
"version": "1",
"default": "deny",
"hide": [
"write_note"
]
} write_note disappears from the agent's tool list entirely, and any attempt to call it is denied. The rest of the server keeps working.
Free to start. No card required.
Create, update, delete, or move notes in the vault. ACTIONS: write (default) — create or update a note (requires frontmatter + content) delete — soft delete: archive the note (sets archived_from/archived_at) hard_delete — permanently remove the note from disk move — rename/relocate a note and rewrite wikilinks pointing to it STRUCTURE — common paths (but any path works): ${formatWriteStructure(VAULT_CONFIG)} FILENAMES — use kebab-case (hyphens, lowercase) for clean URLs: ${entityPath(VAULT_CONFIG,. It is categorised as a Destructive tool in the Grove MCP Server, which means it can permanently delete or destroy data. Block by default and require explicit approval.
Register the Grove MCP server in PolicyLayer and add a rule for write_note: allow, deny, rate-limit, or require approval. Point your MCP client at the PolicyLayer proxy URL and the rule is enforced on every call, before it reaches Grove. Nothing to install.
write_note is a Destructive tool with critical risk. Critical-risk tools should be blocked by default and only enabled with explicit human approval.
Yes. Add a rate_limit block to the write_note rule in your PolicyLayer policy. For example, setting max: 10 and window: 60 limits the tool to 10 calls per minute. Rate limits are tracked per agent session and reset automatically.
Set action: deny in the PolicyLayer policy for write_note. The AI agent will receive a policy violation error and cannot call the tool. You can also include a reason field to explain why the tool is blocked.
write_note is provided by the Grove MCP server (jmilinovich/grove). PolicyLayer sits as a proxy in front of this server to enforce policies before tool calls reach the server.
Start from Grove, add the rest of your stack, and see everything your agents can call. Then put policy on all of it.
Free to start. No card required.
7 Grove tools catalogued and risk-classified — across an index of 43,000+ MCP servers.