cms_upload_asset_from_url
Fetch a publicly reachable HTTPS asset and store it as a CMS asset in one call. Use this when your runtime cannot PUT to a presigned URL or pass large base64 payloads — typical for ChatGPT/Claude workspace agents whose sandbox blocks outbound PUTs and truncates long base64 strings. The server fet...
This record as markdown: /tools/com-getmunin-munin/cms-upload-asset-from-url.md
What cms_upload_asset_from_url does on Munin
AI agents use cms_upload_asset_from_url to create or update resources in Munin, usually the action step of a workflow, after the agent has gathered context. Every call changes real data in your Munin environment.
Why cms_upload_asset_from_url is rated Medium
This tool creates new assets in the CMS by fetching and storing content. It is a Write operation because it persistently adds data to the system. Severity is medium because while asset creation itself is reversible, uncontrolled uploads could introduce malicious content (images, videos, PDFs with embedded exploits) that affects many users or violates content policy.
From the tool's definition 'store it as a CMS asset' and 'creates the asset row' indicate data creation/modification in a content management system without deletion or reversion barriers
Attacks that exploit this kind of access
The rule that runs cms_upload_asset_from_url safely
PolicyLayer is an MCP gateway: it sits between your AI agents and Munin, and checks every tool call against a rule you set before the call runs. Nothing changes on the server itself. For cms_upload_asset_from_url, this is the rule to start with:
cms_upload_asset_from_url stays usable, but capped: an agent stuck in a loop can't make hundreds of changes a minute. Everything else on the server is denied unless you say otherwise.
The button opens the PolicyLayer dashboard: create your workspace, connect Munin, apply this rule, and every cms_upload_asset_from_url call is checked against it from then on.
Questions about cms_upload_asset_from_url
Fetch a publicly reachable HTTPS asset and store it as a CMS asset in one call. Use this when your runtime cannot PUT to a presigned URL or pass large base64 payloads — typical for ChatGPT/Claude workspace agents whose sandbox blocks outbound PUTs and truncates long base64 strings. The server fetches the URL with SSRF protection, validates content-type (image/*, video/*, audio/*, application/pdf — SVG rejected) and size (≤50 MB), and creates the asset row in. It is categorised as a Write tool in the Munin MCP Server, which means it can create or modify data. Consider rate limits to prevent runaway writes.
Register the Munin MCP server in PolicyLayer and add a rule for cms_upload_asset_from_url: 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 Munin. Nothing to install.
cms_upload_asset_from_url 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 cms_upload_asset_from_url 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 cms_upload_asset_from_url. 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.
cms_upload_asset_from_url is provided by the Munin MCP server (https://mcp.getmunin.com/mcp). PolicyLayer sits as a proxy in front of this server to enforce policies before tool calls reach the server.
More on Munin, and thousands of servers like it.
This server
Across the catalogue