Critical Risk →

delete_by_query

Delete all documents matching a query

Mass-deletes documents by query

Part of the Elasticsearch MCP server. Enforce policies on this tool with Intercept, the open-source MCP proxy.

elasticsearch-mcp-server Destructive Risk 5/5

AI agents may call delete_by_query to permanently remove or destroy resources in Elasticsearch. Without a policy, an autonomous agent could delete critical data in a loop with no way to undo the damage. Intercept blocks destructive tools by default and requires explicit human approval before enabling them.

Without a policy, an AI agent could call delete_by_query in a loop, permanently destroying resources in Elasticsearch. There is no undo for destructive operations. Intercept blocks this tool by default and only allows it when a human explicitly approves the action.

Destructive tools permanently remove data. Block by default. Only enable with explicit approval workflows.

io-github-cr7258-elasticsearch-mcp-server.yaml
tools:
  delete_by_query:
    rules:
      - action: deny
        reason: "Blocked by default — enable with approval"

See the full Elasticsearch policy for all 20 tools.

Tool Name delete_by_query
Category Destructive
Risk Level Critical

View all 20 tools →

Agents calling destructive-class tools like delete_by_query have been implicated in these attack patterns. Read the full case and prevention policy for each:

Browse the full MCP Attack Database →

Other tools in the Destructive risk category across the catalogue. The same policy patterns (deny, require_approval) apply to each.

delete_by_query is one of the critical-risk operations in Elasticsearch. For the full severity-focused view — only the critical-risk tools with their recommended policies — see the breakdown for this server, or browse all critical-risk tools across every MCP server.

What does the delete_by_query tool do? +

Delete all documents matching a query. It is categorised as a Destructive tool in the Elasticsearch MCP Server, which means it can permanently delete or destroy data. Block by default and require explicit approval.

How do I enforce a policy on delete_by_query? +

Add a rule in your Intercept YAML policy under the tools section for delete_by_query. You can allow, deny, rate-limit, or validate arguments. Then run Intercept as a proxy in front of the Elasticsearch MCP server.

What risk level is delete_by_query? +

delete_by_query is a Destructive tool with critical risk. Critical-risk tools should be blocked by default and only enabled with explicit human approval.

Can I rate-limit delete_by_query? +

Yes. Add a rate_limit block to the delete_by_query rule in your Intercept 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.

How do I block delete_by_query completely? +

Set action: deny in the Intercept policy for delete_by_query. 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.

What MCP server provides delete_by_query? +

delete_by_query is provided by the Elasticsearch MCP server (elasticsearch-mcp-server). Intercept sits as a proxy in front of this server to enforce policies before tool calls reach the server.

Enforce policies on Elasticsearch

Open source. One binary. Zero dependencies.

npx -y @policylayer/intercept
github.com/policylayer/intercept →
// GET IN TOUCH

Have a question or want to learn more? Send us a message.

Message sent.

We'll get back to you soon.