# store_artifact

Store text/bytes and get a durable public URL for your output — something a stateless agent can't host itself. Returns {id, url}.

Agent View of the PolicyLayer registry record for `store_artifact`. HTML page: https://policylayer.com/tools/com-wingmanprotocol-agent-gateway/store-artifact

## Facts

- Tool: `store_artifact`
- Server: Gateway (`https://wingmanprotocol.com/mcp`) — https://policylayer.com/tools/com-wingmanprotocol-agent-gateway.md
- Homepage: https://github.com/WingmanProtocol-Agent-Gateway/wingman-agent-gateway
- Risk category: Write (Medium risk)
- Registry record: grade F, identity unverified
- Server auth posture: open
- Server rate-limited: no
- Parameters: 6 (1 required)
- Recommended policy verdict: Rate-limited

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `handle` | string | no | attribute to your registered handle |
| `secret` | string | no | your agent secret, if using handle |
| `content` | string | yes | UTF-8 text, or base64 if encoding=base64 |
| `encoding` | string | no | default utf8 |
| `ttl_seconds` | integer | no | lifetime (max 7 days) |
| `content_type` | string | no | MIME type to store + serve as |

Parameters from the server's own tool schema.

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

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "store_artifact",
    "arguments": {
      "content": "<content>"
    }
  }
}
```

## Why store_artifact is rated Medium

This tool writes data to external storage and creates a publicly accessible URL. It is a Write operation (create/upload) with no indication of irreversible deletion or financial action. Medium severity because it publishes data publicly, which could be misused to host malicious content or leak sensitive information, but the action is reversible (artifacts can typically be deleted).

From the tool's own definition: "'Store text/bytes and get a durable public URL for your output' — creates/uploads data and returns a persistent URL"

Risk signals: Handles credentials or secrets (secret) · Accepts raw HTML/template content (content)

## Use case

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

## Recommended policy (PolicyLayer)

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

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

## Other tools on Gateway (270)

- `cancel_watch` — Destructive — https://policylayer.com/tools/com-wingmanprotocol-agent-gateway/cancel-watch.md
- `forget_memories` — Destructive — https://policylayer.com/tools/com-wingmanprotocol-agent-gateway/forget-memories.md
- `text_truncate_ellipsis` — Destructive — https://policylayer.com/tools/com-wingmanprotocol-agent-gateway/text-truncate-ellipsis.md
- `vault_delete` — Destructive — https://policylayer.com/tools/com-wingmanprotocol-agent-gateway/vault-delete.md
- `arena_call` — Execute — https://policylayer.com/tools/com-wingmanprotocol-agent-gateway/arena-call.md
- `bitwise` — Execute — https://policylayer.com/tools/com-wingmanprotocol-agent-gateway/bitwise.md
- `browse` — Execute — https://policylayer.com/tools/com-wingmanprotocol-agent-gateway/browse.md
- `browse_back` — Execute — https://policylayer.com/tools/com-wingmanprotocol-agent-gateway/browse-back.md
- `browse_click` — Execute — https://policylayer.com/tools/com-wingmanprotocol-agent-gateway/browse-click.md
- `browse_close` — Execute — https://policylayer.com/tools/com-wingmanprotocol-agent-gateway/browse-close.md
- `browse_evaluate` — Execute — https://policylayer.com/tools/com-wingmanprotocol-agent-gateway/browse-evaluate.md
- `browse_fill` — Execute — https://policylayer.com/tools/com-wingmanprotocol-agent-gateway/browse-fill.md
- `browse_navigate` — Execute — https://policylayer.com/tools/com-wingmanprotocol-agent-gateway/browse-navigate.md
- `browse_open` — Execute — https://policylayer.com/tools/com-wingmanprotocol-agent-gateway/browse-open.md
- `browse_select` — Execute — https://policylayer.com/tools/com-wingmanprotocol-agent-gateway/browse-select.md
- `browse_solve_challenge` — Execute — https://policylayer.com/tools/com-wingmanprotocol-agent-gateway/browse-solve-challenge.md
- `browse_type` — Execute — https://policylayer.com/tools/com-wingmanprotocol-agent-gateway/browse-type.md
- `browse_wait_for` — Execute — https://policylayer.com/tools/com-wingmanprotocol-agent-gateway/browse-wait-for.md
- `coach_mission` — Execute — https://policylayer.com/tools/com-wingmanprotocol-agent-gateway/coach-mission.md
- `dice_notation_roll` — Execute — https://policylayer.com/tools/com-wingmanprotocol-agent-gateway/dice-notation-roll.md
- `gen_avatar_video` — Execute — https://policylayer.com/tools/com-wingmanprotocol-agent-gateway/gen-avatar-video.md
- `gen_id_portrait` — Execute — https://policylayer.com/tools/com-wingmanprotocol-agent-gateway/gen-id-portrait.md
- `gen_image` — Execute — https://policylayer.com/tools/com-wingmanprotocol-agent-gateway/gen-image.md
- `gen_video` — Execute — https://policylayer.com/tools/com-wingmanprotocol-agent-gateway/gen-video.md
- `hmac` — Execute — https://policylayer.com/tools/com-wingmanprotocol-agent-gateway/hmac.md
- `markdown_to_html` — Execute — https://policylayer.com/tools/com-wingmanprotocol-agent-gateway/markdown-to-html.md
- `matrix` — Execute — https://policylayer.com/tools/com-wingmanprotocol-agent-gateway/matrix.md
- `regex_tester` — Execute — https://policylayer.com/tools/com-wingmanprotocol-agent-gateway/regex-tester.md
- `request_handoff` — Execute — https://policylayer.com/tools/com-wingmanprotocol-agent-gateway/request-handoff.md
- `retry_backoff` — Execute — https://policylayer.com/tools/com-wingmanprotocol-agent-gateway/retry-backoff.md
- …and 240 more: https://policylayer.com/tools/com-wingmanprotocol-agent-gateway.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=com-wingmanprotocol-agent-gateway · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/com-wingmanprotocol-agent-gateway
