# parseUserAgent

Parses a user agent string to extract device, OS, and browser information. All response fields are top-level. Invalid or unrecognized user agents return HTTP 200 with is_valid false and invalid_reason set, and still return whatever browser, OS and device information could be parsed. A version newer than the latest known release is reported in warnings rather than treated as invalid.

Agent View of the PolicyLayer registry record for `parseUserAgent`. HTML page: https://policylayer.com/tools/com-api-ninjas-mcp/parseuseragent

## Facts

- Tool: `parseUserAgent`
- Server: API Ninjas (`https://mcp.api-ninjas.com/mcp`) — https://policylayer.com/tools/com-api-ninjas-mcp.md
- Homepage: https://github.com/https://mcp.api-ninjas.com/mcp
- Risk category: Execute (High risk)
- Registry record: grade D, identity unverified
- Server auth posture: open
- Server rate-limited: no
- Parameters: 1 (1 required)
- Recommended policy verdict: Rate-limited

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `useragent` | string | yes | User agent string to parse. |

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": "parseUserAgent",
    "arguments": {
      "useragent": "<useragent>"
    }
  }
}
```

## Why parseUserAgent is rated High

parseUserAgent triggers real processes with real consequences. An agent gone sideways doesn't fire it once. It starts dozens of builds, sends mass notifications, or burns through compute before anyone looks up.

## Use case

AI agents invoke parseUserAgent to trigger actions in API Ninjas. What it does depends on the arguments the agent supplies, and its effects often reach beyond the immediate call: builds kicked off, notifications sent, workflows started.

## Recommended policy (PolicyLayer)

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

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "parseUserAgent": {
      "limits": [
        {
          "counter": "parseuseragent_rate",
          "window": "minute",
          "max": 10,
          "scope": "grant"
        }
      ]
    }
  }
}
```

## Other tools on API Ninjas (243)

- `airportDistance` — Read — https://policylayer.com/tools/com-api-ninjas-mcp/airportdistance.md
- `airportSuggest` — Read — https://policylayer.com/tools/com-api-ninjas-mcp/airportsuggest.md
- `analyzeSentiment` — Read — https://policylayer.com/tools/com-api-ninjas-mcp/analyzesentiment.md
- `binLookup` — Read — https://policylayer.com/tools/com-api-ninjas-mcp/binlookup.md
- `calculateCaloriesBurned` — Read — https://policylayer.com/tools/com-api-ninjas-mcp/calculatecaloriesburned.md
- `calculateIncomeTax` — Read — https://policylayer.com/tools/com-api-ninjas-mcp/calculateincometax.md
- `calculateMortgage` — Read — https://policylayer.com/tools/com-api-ninjas-mcp/calculatemortgage.md
- `calculateSalesTax` — Read — https://policylayer.com/tools/com-api-ninjas-mcp/calculatesalestax.md
- `checkDisposableEmail` — Read — https://policylayer.com/tools/com-api-ninjas-mcp/checkdisposableemail.md
- `classifyNaics` — Read — https://policylayer.com/tools/com-api-ninjas-mcp/classifynaics.md
- `closestAirport` — Read — https://policylayer.com/tools/com-api-ninjas-mcp/closestairport.md
- `computeTextSimilarity` — Read — https://policylayer.com/tools/com-api-ninjas-mcp/computetextsimilarity.md
- `detectFaces` — Read — https://policylayer.com/tools/com-api-ninjas-mcp/detectfaces.md
- `detectLanguage` — Read — https://policylayer.com/tools/com-api-ninjas-mcp/detectlanguage.md
- `detectObjects` — Read — https://policylayer.com/tools/com-api-ninjas-mcp/detectobjects.md
- `encodeText` — Read — https://policylayer.com/tools/com-api-ninjas-mcp/encodetext.md
- `extractTextFromImage` — Read — https://policylayer.com/tools/com-api-ninjas-mcp/extracttextfromimage.md
- `filterProfanity` — Read — https://policylayer.com/tools/com-api-ninjas-mcp/filterprofanity.md
- `findSwiftCodes` — Read — https://policylayer.com/tools/com-api-ninjas-mcp/findswiftcodes.md
- `Get_a_list_of_planets` — Read — https://policylayer.com/tools/com-api-ninjas-mcp/get-a-list-of-planets.md
- `Get_a_list_of_stars` — Read — https://policylayer.com/tools/com-api-ninjas-mcp/get-a-list-of-stars.md
- `Get_ZIP_Code_details` — Read — https://policylayer.com/tools/com-api-ninjas-mcp/get-zip-code-details.md
- `getAdvice` — Read — https://policylayer.com/tools/com-api-ninjas-mcp/getadvice.md
- `getAircraft` — Read — https://policylayer.com/tools/com-api-ninjas-mcp/getaircraft.md
- `getAirlines` — Read — https://policylayer.com/tools/com-api-ninjas-mcp/getairlines.md
- `getAirports` — Read — https://policylayer.com/tools/com-api-ninjas-mcp/getairports.md
- `getAirportsList` — Read — https://policylayer.com/tools/com-api-ninjas-mcp/getairportslist.md
- `getAirQuality` — Read — https://policylayer.com/tools/com-api-ninjas-mcp/getairquality.md
- `getAllCatNames` — Read — https://policylayer.com/tools/com-api-ninjas-mcp/getallcatnames.md
- `getAllCountries` — Read — https://policylayer.com/tools/com-api-ninjas-mcp/getallcountries.md
- …and 213 more: https://policylayer.com/tools/com-api-ninjas-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=com-api-ninjas-mcp · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/com-api-ninjas-mcp
