UAParse
Phân tích chuỗi User-Agent thành trình duyệt, engine, hệ điều hành, loại thiết bị và CPU, đồng thời gắn cờ các bot đã biết, trình thu thập tìm kiếm, trình thu thập AI và tác nhân AI tự nhận diện trong User-Agent. Một công cụ chỉ đọc, parse_user_agent; không cần khóa API cho mục đích sử dụng nhẹ. Kết quả khớp chỉ dựa trên User-Agent và có thể bị giả mạo.
Máy chủ MCP được lưu trữ
npx add-mcp 'https://uaparse.mike-tusa.workers.dev/mcp'Cài vào Claude Code, Codex, Cursor và nhiều công cụ khác
Tài liệu
Parse a User-Agent
Paste any User-Agent string, or detect the one your browser is sending. UAParse returns the browser, OS, device type, engine, and whether it is a known bot, search crawler, or AI crawler (GPTBot, ClaudeBot, PerplexityBot, CCBot, Google-Extended, Bytespider, … 43 on list 2026-10-08), including AI agents acting for a user (ChatGPT-User, Claude-User, Perplexity-User, Google-Agent, …).
Free: about 20 lookups per minute. Tip: paste a crawler UA from your access logs to see if it is an AI trainer or a search indexer.
How it works
- Browser / OS / device / engine: parsed with ua-parser-js 1.0.41 (MIT). The AGPL 2.x line is not used.
- Bots & crawlers: a curated list of 151 known bots kept in this repo (43 of them are AI crawlers). The first matching token wins; more specific names (Googlebot-Image, Applebot-Extended) come before the tokens they contain.
- AI purpose: when the operator documents it, we label an AI crawler as
training,search,user_fetch, oragent. - AI agents (acting for a user): 9 User-Agent names (8 current plus the retired Google-NotebookLM) that the operator's own docs describe as fetching or browsing on an individual user's request (ChatGPT-User, Claude-User, Perplexity-User, MistralAI-User, Meta-ExternalFetcher, Amzn-User, Google-Agent, …) get
is_ai_agent: true. AI agents that browse in a real browser and publish no token (e.g. Meta Muse; Meta publishes no Muse User-Agent) are indistinguishable from people here. See AI agents. UAParse is independent and not affiliated with Meta, OpenAI, Google, Anthropic, Amazon, Perplexity or Mistral AI. - No lookups: everything runs inside the Worker. UAParse does not resolve DNS, check IP ranges, or call any third party per request, so a match is never "verified" — anyone can spoof a User-Agent.
- robots.txt is a sibling product: to generate Allow/Disallow rules for these AI tokens, use RobotsGate. UAParse does not build robots.txt.
Wrongly flagged? Report a false positive.
API
curl -X POST -H "content-type: application/json" \
-d '{"ua":"Mozilla/5.0 … GPTBot/1.1"}' "https://<host>/v1/parse"
curl "https://<host>/v1/parse" # parses YOUR User-Agent
API keys are issued by request during early access (free tier: 1,000 lookups/day); email digitalpromohub.support@gmail.com. Bulk parse needs a key (free keys: up to 10 UAs per call). See the API docs.
Using an AI assistant or agent? UAParse is also a remote MCP server: see For AI agents.
UAParse Pro
$5/month. 10,000 lookups per UTC day (free key: 1,000) and bulk parse up to 100 User-Agents per call (free key: 10). Cancel anytime.
After checkout, Polar emails you a license key (UAPR-…). Send it as Authorization: Bearer UAPR-… on the API or MCP endpoint; it works within about a minute.
Get UAParse Pro on Polar · Manage or cancel
Payment is handled by Polar (merchant of record). Questions: digitalpromohub.support@gmail.com.
For AI agents (MCP)
UAParse is also a remote Model Context Protocol (MCP) server, so AI assistants and agents can parse a User-Agent for you with the parse_user_agent tool. Most MCP clients accept this config; some use a different format (for example, VS Code uses a servers key). Clients with a settings screen just need the URL https://uaparse.mike-tusa.workers.dev/mcp.
{
"mcpServers": {
"uaparse": {
"type": "http",
"url": "https://uaparse.mike-tusa.workers.dev/mcp"
}
}
}
Same limits as the API (about 20 lookups per minute without a key; each tool call is one lookup). An API key goes in an Authorization: Bearer header. Bulk parsing stays in the JSON API. Machine-readable docs: llms.txt · OpenAPI 3.1 spec · MCP endpoint POST /mcp (Streamable HTTP, stateless JSON responses).