# upload_recipe_asset

Upload an asset file to a recipe from base64-encoded data.

Agent View of the PolicyLayer registry record for `upload_recipe_asset`. HTML page: https://policylayer.com/tools/nikopol666-mealie-mcp/upload-recipe-asset

## Facts

- Tool: `upload_recipe_asset`
- Server: Mealie MCP Server (`nikopol666/mealie-mcp`) — https://policylayer.com/tools/nikopol666-mealie-mcp.md
- Homepage: https://github.com/nikopol666/mealie-mcp
- Risk category: Write (Medium risk)
- Registry record: grade F, identity unverified
- Server rate-limited: no
- Parameters: 0
- Recommended policy verdict: Rate-limited

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "upload_recipe_asset",
    "arguments": {}
  }
}
```

## Why upload_recipe_asset is rated Medium

This tool creates or adds new asset files to recipes, which is a reversible write operation. While it modifies recipe data, it does not execute arbitrary code, delete data irreversibly, or move money. The severity is medium because uncontrolled uploads could consume storage resources or introduce unexpected file types, but the operation itself is non-destructive and reversible (assets can be removed or replaced).

From the tool's own definition: "Tool description states 'Upload an asset file to a recipe from base64-encoded data.' The verb 'upload' and action of storing file data to a recipe indicates data creation/modification."

## Use case

AI agents use upload_recipe_asset to create or update resources in Mealie MCP Server, usually the action step of a workflow, after the agent has gathered context. Every call changes real data in your Mealie MCP Server environment.

## Recommended policy (PolicyLayer)

Verdict: **Rate-limited**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches Mealie MCP Server:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "upload_recipe_asset": {
      "limits": [
        {
          "counter": "upload_recipe_asset_rate",
          "window": "minute",
          "max": 30,
          "scope": "grant"
        }
      ]
    }
  }
}
```

## Other tools on Mealie MCP Server (242)

- `bulk_delete_recipes` — Destructive — https://policylayer.com/tools/nikopol666-mealie-mcp/bulk-delete-recipes.md
- `delete_admin_backup` — Destructive — https://policylayer.com/tools/nikopol666-mealie-mcp/delete-admin-backup.md
- `delete_admin_group` — Destructive — https://policylayer.com/tools/nikopol666-mealie-mcp/delete-admin-group.md
- `delete_admin_household` — Destructive — https://policylayer.com/tools/nikopol666-mealie-mcp/delete-admin-household.md
- `delete_admin_user` — Destructive — https://policylayer.com/tools/nikopol666-mealie-mcp/delete-admin-user.md
- `delete_category` — Destructive — https://policylayer.com/tools/nikopol666-mealie-mcp/delete-category.md
- `delete_comment` — Destructive — https://policylayer.com/tools/nikopol666-mealie-mcp/delete-comment.md
- `delete_cookbook` — Destructive — https://policylayer.com/tools/nikopol666-mealie-mcp/delete-cookbook.md
- `delete_food` — Destructive — https://policylayer.com/tools/nikopol666-mealie-mcp/delete-food.md
- `delete_group_label` — Destructive — https://policylayer.com/tools/nikopol666-mealie-mcp/delete-group-label.md
- `delete_group_report` — Destructive — https://policylayer.com/tools/nikopol666-mealie-mcp/delete-group-report.md
- `delete_household_notification` — Destructive — https://policylayer.com/tools/nikopol666-mealie-mcp/delete-household-notification.md
- `delete_household_webhook` — Destructive — https://policylayer.com/tools/nikopol666-mealie-mcp/delete-household-webhook.md
- `delete_meal_plan_entry` — Destructive — https://policylayer.com/tools/nikopol666-mealie-mcp/delete-meal-plan-entry.md
- `delete_meal_plan_rule` — Destructive — https://policylayer.com/tools/nikopol666-mealie-mcp/delete-meal-plan-rule.md
- `delete_recipe` — Destructive — https://policylayer.com/tools/nikopol666-mealie-mcp/delete-recipe.md
- `delete_recipe_action` — Destructive — https://policylayer.com/tools/nikopol666-mealie-mcp/delete-recipe-action.md
- `delete_recipe_image` — Destructive — https://policylayer.com/tools/nikopol666-mealie-mcp/delete-recipe-image.md
- `delete_recipe_timeline_event` — Destructive — https://policylayer.com/tools/nikopol666-mealie-mcp/delete-recipe-timeline-event.md
- `delete_recipe_tool` — Destructive — https://policylayer.com/tools/nikopol666-mealie-mcp/delete-recipe-tool.md
- `delete_shared_recipe_record` — Destructive — https://policylayer.com/tools/nikopol666-mealie-mcp/delete-shared-recipe-record.md
- `delete_shopping_item` — Destructive — https://policylayer.com/tools/nikopol666-mealie-mcp/delete-shopping-item.md
- `delete_shopping_items` — Destructive — https://policylayer.com/tools/nikopol666-mealie-mcp/delete-shopping-items.md
- `delete_shopping_list` — Destructive — https://policylayer.com/tools/nikopol666-mealie-mcp/delete-shopping-list.md
- `delete_tag` — Destructive — https://policylayer.com/tools/nikopol666-mealie-mcp/delete-tag.md
- `delete_unit` — Destructive — https://policylayer.com/tools/nikopol666-mealie-mcp/delete-unit.md
- `delete_user_api_token` — Destructive — https://policylayer.com/tools/nikopol666-mealie-mcp/delete-user-api-token.md
- `delete_user_favorite` — Destructive — https://policylayer.com/tools/nikopol666-mealie-mcp/delete-user-favorite.md
- `purge_recipe_exports` — Destructive — https://policylayer.com/tools/nikopol666-mealie-mcp/purge-recipe-exports.md
- `remove_recipe_from_shopping_list` — Destructive — https://policylayer.com/tools/nikopol666-mealie-mcp/remove-recipe-from-shopping-list.md
- …and 212 more: https://policylayer.com/tools/nikopol666-mealie-mcp.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=nikopol666-mealie-mcp · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/nikopol666-mealie-mcp
