UAParse

Parse a User-Agent: browser, OS, device, plus bot, search crawler, AI crawler and AI agent flags.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
100%
Naming quality
100%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~823Tokens (tool definitions)
~7.6 KBTypical response size
Moderate attention impact (0.64% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "uaparse": {
      "url": "https://uaparse.mike-tusa.workers.dev/mcp"
    }
  }
}

Remote endpoints

https://uaparse.mike-tusa.workers.dev/mcpstreamable-http

What it can do

Tool inventory

Tools (1)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢parse_user_agent(ua, include_raw)

Parse one User-Agent string. Returns browser, engine, OS, device type and CPU (ua-parser-js 1.0.41), and whether it is a known bot, search crawler, AI crawler (with its AI purpose) or an AI agent acting for a user (is_ai_agent, ai_agent_kind fetch | browsing), plus the bot name, operator, robots.txt token and operator docs link from a curated list of 151 bots (list 2026-10-08). verified is always false: the User-Agent is self-reported and UAParse does no IP or reverse-DNS checks. Read-only, no network lookups. Same engine and limits as the UAParse JSON API (POST /v1/parse); each call is one lookup. UAParse is independent and not affiliated with Meta, OpenAI, Google, Anthropic, Amazon, Perplexity or Mistral AI.

Input Schema

{
  "type": "object",
  "properties": {
    "ua": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2048,
      "description": "The User-Agent string to parse, exactly as sent in the User-Agent header."
    },
    "include_raw": {
      "type": "boolean",
      "default": false,
      "description": "Also return the full POST /v1/parse JSON in structuredContent.raw. Larger output."
    }
  },
  "required": [
    "ua"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "ua": {
      "type": "string",
      "description": "The parsed User-Agent (clipped to 300 characters; see ua_length)"
    },
    "ua_length": {
      "type": "integer"
    },
    "browser": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "version": {
          "type": "string"
        },
        "major": {
          "type": "string"
        }
      }
    },
    "engine": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "version": {
          "type": "string"
        }
      }
    },
    "os": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "version": {
          "type": "string"
        }
      }
    },
    "device": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "desktop, mobile, tablet, smarttv, console, wearable, xr, embedded, bot or unknown"
        },
        "vendor": {
          "type": "string"
        },
        "model": {
          "type": "string"
        }
      },
      "required": [
        "type"
      ]
    },
    "cpu": {
      "type": "object",
      "properties": {
        "architecture": {
          "type": "string"
        }
      }
    },
    "is_bot": {
      "type": "boolean"
    },
    "is_ai_crawler": {
      "type": "boolean"
    },
    "is_ai_agent": {
      "type": "boolean",
      "description": "true only for User-Agents the operator documents as acting live for an individual user"
    },
    "is_search_crawler": {
      "type": "boolean"
    },
    "bot": {
      "type": "object",
      "description": "Present when is_bot is true. Fields that are unknown are omitted.",
      "properties": {
        "name": {
          "type": "string"
        },
        "operator": {
          "type": "string"
        },
        "category": {
          "type": "string"
        },
        "category_label": {
          "type": "string"
        },
        "ai_purpose": {
          "type": "string",
          "enum": [
            "training",
            "search",
            "user_fetch",
            "agent"
          ]
        },
        "ai_agent_kind": {
          "type": "string",
          "enum": [
            "fetch",
            "browsing"
          ]
        },
        "robots_token": {
          "type": "string"
        },
        "token_only": {
          "type": "boolean"
        },
        "info_url": {
          "type": "string",
          "description": "Operator documentation"
        },
        "match": {
          "type": "string",
          "enum": [
            "list",
            "heuristic"
          ]
        },
        "verified": {
          "type": "boolean",
          "description": "Always false"
        }
      },
      "required": [
        "category",
        "match",
        "verified"
      ]
    },
    "summary": {
      "type": "string",
      "description": "One-line plain-English verdict"
    },
    "list_version": {
      "type": "string"
    },
    "parser": {
      "type": "string"
    },
    "cached": {
      "type": "boolean"
    },
    "tier": {
      "type": "string",
      "enum": [
        "anonymous",
        "free",
        "pro"
      ]
    },
    "version": {
      "type": "string"
    },
    "raw": {
      "type": "object",
      "description": "Full POST /v1/parse response (only when include_raw is true)"
    }
  },
  "required": [
    "ua",
    "ua_length",
    "browser",
    "engine",
    "os",
    "device",
    "cpu",
    "is_bot",
    "is_ai_crawler",
    "is_ai_agent",
    "is_search_crawler",
    "summary",
    "list_version",
    "version"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded1 tools