# add_query_param

Add a query parameter to a URL.

Agent View of the PolicyLayer registry record for `add_query_param`. HTML page: https://policylayer.com/tools/io-tinyfn-tinyfn/add-query-param

## Facts

- Tool: `add_query_param`
- Server: TinyFn (`https://api.tinyfn.io/mcp/all/`) — https://policylayer.com/tools/io-tinyfn-tinyfn.md
- Homepage: https://github.com/tinyfn-io/tinyfn-mcp
- Risk category: Write (Medium risk)
- Registry record: grade F, identity unverified
- Server auth posture: open
- Server rate-limited: no
- Parameters: 3 (3 required)
- Recommended policy verdict: Rate-limited

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `key` | string | yes | Parameter key |
| `url` | string | yes | URL to modify |
| `value` | string | yes | Parameter value |

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": "add_query_param",
    "arguments": {
      "key": "<key>",
      "url": "<url>",
      "value": "<value>"
    }
  }
}
```

## Why add_query_param is rated Medium

This tool creates or modifies a URL by appending query parameters. This is a reversible write operation—the original URL can be reconstructed or the parameter removed. It does not execute code, delete data, or trigger external operations. The impact is limited to string manipulation with no side effects on external systems.

From the tool's own definition: "Tool description: 'Add a query parameter to a URL.' The verb 'Add' indicates modification of data (the URL string) in a reversible manner."

Risk signals: Accepts URL/endpoint input (url)

## Use case

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

## Recommended policy (PolicyLayer)

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

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

## Other tools on TinyFn (571)

- `array_compact` — Destructive — https://policylayer.com/tools/io-tinyfn-tinyfn/array-compact.md
- `array_dedupe` — Destructive — https://policylayer.com/tools/io-tinyfn-tinyfn/array-dedupe.md
- `truncate_2` — Destructive — https://policylayer.com/tools/io-tinyfn-tinyfn/truncate-2.md
- `generate_hmac` — Execute — https://policylayer.com/tools/io-tinyfn-tinyfn/generate-hmac.md
- `random_float_2` — Execute — https://policylayer.com/tools/io-tinyfn-tinyfn/random-float-2.md
- `random_string_2` — Execute — https://policylayer.com/tools/io-tinyfn-tinyfn/random-string-2.md
- `random_weighted_choice` — Execute — https://policylayer.com/tools/io-tinyfn-tinyfn/random-weighted-choice.md
- `roll_dice` — Execute — https://policylayer.com/tools/io-tinyfn-tinyfn/roll-dice.md
- `null` — Other — https://policylayer.com/tools/io-tinyfn-tinyfn/null.md
- `absolute_value` — Read — https://policylayer.com/tools/io-tinyfn-tinyfn/absolute-value.md
- `acres_to_hectares` — Read — https://policylayer.com/tools/io-tinyfn-tinyfn/acres-to-hectares.md
- `add` — Read — https://policylayer.com/tools/io-tinyfn-tinyfn/add.md
- `adler32_checksum` — Read — https://policylayer.com/tools/io-tinyfn-tinyfn/adler32-checksum.md
- `analogous_colors` — Read — https://policylayer.com/tools/io-tinyfn-tinyfn/analogous-colors.md
- `analyze_password` — Read — https://policylayer.com/tools/io-tinyfn-tinyfn/analyze-password.md
- `array_difference` — Read — https://policylayer.com/tools/io-tinyfn-tinyfn/array-difference.md
- `array_first` — Read — https://policylayer.com/tools/io-tinyfn-tinyfn/array-first.md
- `array_frequency` — Read — https://policylayer.com/tools/io-tinyfn-tinyfn/array-frequency.md
- `array_interleave` — Read — https://policylayer.com/tools/io-tinyfn-tinyfn/array-interleave.md
- `array_intersection` — Read — https://policylayer.com/tools/io-tinyfn-tinyfn/array-intersection.md
- `array_last` — Read — https://policylayer.com/tools/io-tinyfn-tinyfn/array-last.md
- `array_nth` — Read — https://policylayer.com/tools/io-tinyfn-tinyfn/array-nth.md
- `array_partition` — Read — https://policylayer.com/tools/io-tinyfn-tinyfn/array-partition.md
- `array_repeat` — Read — https://policylayer.com/tools/io-tinyfn-tinyfn/array-repeat.md
- `array_reverse` — Read — https://policylayer.com/tools/io-tinyfn-tinyfn/array-reverse.md
- `array_rotate` — Read — https://policylayer.com/tools/io-tinyfn-tinyfn/array-rotate.md
- `array_slice` — Read — https://policylayer.com/tools/io-tinyfn-tinyfn/array-slice.md
- `array_symmetric_difference` — Read — https://policylayer.com/tools/io-tinyfn-tinyfn/array-symmetric-difference.md
- `array_union` — Read — https://policylayer.com/tools/io-tinyfn-tinyfn/array-union.md
- `array_unzip` — Read — https://policylayer.com/tools/io-tinyfn-tinyfn/array-unzip.md
- …and 541 more: https://policylayer.com/tools/io-tinyfn-tinyfn.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=io-tinyfn-tinyfn · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/io-tinyfn-tinyfn
