Skip to main content

Threat research with MCP

The urlquery MCP server gives an AI assistant direct access to urlquery evidence: browser analyses of URLs, the reports they produce, infrastructure observed across reports, and URL reputation. Ask an investigation question in plain language. The assistant chooses the tools, follows the evidence across reports, and returns the report IDs, hashes, and queries you need to check its conclusions.

You do not need to learn the tool names first. They are listed below so you know what the assistant can reach for.

What you can investigate​

Use caseWhat the assistant can do
Triage a suspicious URL or reportExplain redirects, contacted hosts, detections, scripts, downloads, and the screenshot without you reading the full report.
Investigate an indicatorFind where a domain, IP, URL, ASN, hash, or Telegram bot token appears, and show representative reports.
Map related infrastructurePivot through certificates, cookies, technologies, response traits, and observed host-to-host interactions.
Compare activity over timeShow what is new, rising, persistent, or declining between two periods.
Prepare an incident handoffCollect report IDs, hashes, date windows, evidence, confidence, and open questions in a summary another analyst can reproduce.
Analyze a new URLSubmit an authorized analysis, wait for it to finish, and continue straight into triage.

Questions you can ask​

  • “Summarize report <REPORT_ID>. Explain the redirect chain, detections, and the most important network behavior.”
  • “Investigate example.com over the last 30 days. Show representative reports and related infrastructure, and separate observations from assessment.”
  • “Compare phishing activity matching tags:phishing AND url.tld:xyz between July and August. What is new, persistent, or declining?”
  • “Find hosts sharing this certificate hash and say which relationships are distinctive enough to follow up.”
  • “Build an incident handoff for this report with evidence, IOCs, confidence, and unresolved questions.”
  • “Submit this URL as a restricted analysis, wait for it, and explain the completed report.”

A submission opens the URL in urlquery's analysis browser and creates a report. Before you ask for one, make sure you are authorized to analyze the URL and say which visibility you want.

Get connected​

You need an API key and an MCP client that supports remote servers over Streamable HTTP. Connect an MCP client has step-by-step setup for Claude Code, Codex, VS Code, Cursor, Claude Desktop, opencode, and other clients.

How it works​

You ──question──▶ AI assistant ──tool call + x-apikey──▶ mcp.urlquery.net ──▶ urlquery API
▲ │
└──────────── bounded evidence ◀─────────┘
  1. You ask a question. The assistant's model decides which urlquery tools to call and with what arguments.
  2. Your MCP client sends each tool call to https://mcp.urlquery.net/mcp with your API key in the x-apikey header.
  3. The server calls the urlquery API as you, so you see exactly the reports, alerts, and features your account can see, and the calls count against your API key's rate limits.
  4. The server returns compact, bounded results: summaries first, paginated drill-down tools for detail, and image content for screenshots.

Results keep report IDs, hashes, queries, dates, and counts, so the final answer can be checked against the source evidence.

:::note What your model provider sees Tool results become part of the assistant's conversation. The model provider your MCP client uses processes the report content, URLs, and indicators it retrieves, under that provider's terms. Use a client and provider that are approved for the data you investigate. :::

Tools at a glance​

The server exposes 25 tools. Only submit_url changes anything: it starts an analysis and creates a report. Every other tool only reads.

GroupToolsUse them to
Submitsubmit_url, submit_statusAnalyze a new URL and wait for its report.
Report overviewget_report, report_guide, get_report_jsonRead a compact summary, learn how to interpret report fields, or export the full report JSON.
Report evidenceget_report_detections, list_report_http_transactions, get_report_http_transaction, list_report_technologies, list_report_resources, list_report_indicators, list_report_artifacts, list_report_javascriptDrill into alerts, traffic, technologies, captured content, indicators, extracted files, and scripts, page by page.
Report contentget_report_screenshot, get_report_resourceView the screenshot and download captured content by hash, in bounded chunks.
Searchsearch_reports, search_syntaxFind reports with the search syntax.
Analysisreport_trends, compare_report_periods, pivot_indicatorSummarize a report population over time, compare periods, and pivot on one indicator.
Host Profileget_host_profile, pivot_host_fact, pivot_host_relations, hunt_hostsProfile a host, find hosts sharing a fact, follow host-to-host relations, and hunt by graph shape.
Reputationreputation_checkCheck a URL's exact URL and FQDN reputation over the last 30 days.

The tool reference documents every argument, default, and limit.

Evidence boundaries​

Good answers say what the evidence does not show. Expect the assistant to respect these limits, and push back when it does not:

  • Visibility, not prevalence. Search and trend results describe the reports your API key can see, not how common something is worldwide.
  • Bounded results. Lists are paginated and content is returned in chunks. A summary built from the first page has not seen the rest.
  • No alert is not "safe". Missing detections or reputation entries do not show that a URL is benign. See weighing alerts.
  • Relations are leads. Shared certificates, cookies, IPs, or host-to-host interactions support an investigation; they do not establish ownership, campaign membership, or attribution.
  • One visit, one moment. A report shows what one browser saw at one time with one set of settings. Sites change and cloak.
  • Submissions have effects. A new analysis contacts the URL and creates a public, restricted, or private report.

:::caution Shared Host Profile observations Host Profile data comes from a shared corpus of derived observations and is not filtered by the visibility of the reports it came from. Do not submit sensitive internal hosts or URLs on the assumption that a private report keeps their infrastructure out of Host Profile. :::

Next steps​