Update existing row or create if it doesn
AI agents use appflowy_upsert_row to create or update resources in AppFlowy MCP — usually the action step of a workflow, after the agent has gathered context. Every call changes real data in your AppFlowy MCP environment.
This tool creates or modifies data in AppFlowy databases. While the description is truncated, 'upsert' is unambiguous: it performs conditional writes that are reversible (rows can be edited or deleted afterward).
From the tool's definition Tool name 'appflowy_upsert_row' and description 'Update existing row or create if it doesn' (incomplete) indicate reversible creation or modification of database rows. The upsert pattern (update or insert) is a standard write operation.
Attacks that exploit this kind of access
Update existing row or create if it doesn. It is categorised as a Write tool in the AppFlowy MCP MCP Server, which means it can create or modify data. Consider rate limits to prevent runaway writes.
Register the AppFlowy MCP server in PolicyLayer and add a rule for appflowy_upsert_row: 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 AppFlowy MCP. Nothing to install.
appflowy_upsert_row is a Write tool with medium risk. Write tools should be rate-limited to prevent accidental bulk modifications.
Yes. Add a rate_limit block to the appflowy_upsert_row 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 appflowy_upsert_row. 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.
appflowy_upsert_row is provided by the AppFlowy MCP server (weironz/appflowy_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 →