# jwt_decode

JWT Decoder (no signature verification) — Decode a JWT's header and payload to JSON. Does NOT verify the signature — contents are unauthenticated.

Agent View of the PolicyLayer registry record for `jwt_decode`. HTML page: https://policylayer.com/tools/com-wingmanprotocol-agent-gateway/jwt-decode

## Facts

- Tool: `jwt_decode`
- 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: Read (Low risk)
- Registry record: grade F, identity unverified
- Server auth posture: open
- Server rate-limited: no
- Parameters: 2 (1 required)
- Recommended policy verdict: Allowed

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `token` | string | yes | The JWT (two or three dot-separated segments) |
| `now_epoch` | number | no | Optional Unix seconds to check exp/nbf against (never the wall clock) |

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": "jwt_decode",
    "arguments": {
      "token": "<token>"
    }
  }
}
```

## Why jwt_decode is rated Low

This tool extracts and parses data from a JWT token without side effects. It reads/queries the JWT structure but does not modify, delete, or execute operations. The severity is medium (not low) because JWT payloads often contain sensitive claims (user IDs, permissions, PII) that could enable further attacks if an agent misuses decoded tokens, though the tool itself only retrieves information.

From the tool's own definition: "Tool name is 'jwt_decode' and description states it 'Decode[s] a JWT's header and payload to JSON'. The verb 'decode' and 'to JSON' indicate retrieval/parsing of data."

Risk signals: Handles credentials or secrets (token)

## Use case

AI agents call jwt_decode to retrieve information from Gateway without modifying anything. It is typically the context-gathering step in research, monitoring, and reporting workflows, before the agent takes action elsewhere.

## Recommended policy (PolicyLayer)

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

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "jwt_decode": {}
  }
}
```

## 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
