Update documents in an Elasticsearch index based on a query
AI agents invoke update_by_query to trigger actions in Octodet Elasticsearch. What it does depends on the arguments the agent supplies, and its effects often reach beyond the immediate call — builds kicked off, notifications sent, workflows started.
update_by_query executes a query and applies updates to all matching documents in bulk. This is an Execute-level operation because it triggers an Elasticsearch operation whose scope and side effects depend entirely on the query argument. It could modify a large, unbounded number of documents at once, giving it a high blast radius.
From the tool's definition "Update documents in an Elasticsearch index based on a query" — runs a query-driven bulk update across potentially many documents
Attacks that exploit this kind of access
Update documents in an Elasticsearch index based on a query. It is categorised as a Execute tool in the Octodet Elasticsearch MCP Server, which means it can trigger actions or run processes. Use rate limits and argument validation.
Register the Octodet Elasticsearch MCP server in PolicyLayer and add a rule for update_by_query: 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 Octodet Elasticsearch. Nothing to install.
update_by_query is a Execute tool with high risk. Execute tools should be rate-limited and have argument validation enabled.
Yes. Add a rate_limit block to the update_by_query 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 update_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.
update_by_query is provided by the Octodet Elasticsearch MCP server (octodet/elasticsearch-mcp). PolicyLayer sits as a proxy in front of this server to enforce policies before tool calls reach the server.
Every MCP server has a record like this.
Type a name, get the same breakdown: verified identity, auth posture, risk grade, capabilities, recommended policy.
Teams ship this data inside their own products. See what a licence covers →