Intel Threadlinqs MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {} |
| prompts | {} |
| resources | {} |
| completions | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_startedA | Start here. Returns the Threadlinqs Intelligence tool catalog, categories, tiering, and usage guidance. No API call — read this before using other tools. |
| search_vulnerabilitiesA | Query the real-time CVE feed — validated against CVE.org and enriched from open sources (CVSS, EPSS exploitation probability, CISA KEV, public PoCs/exploits, nuclei detection templates, affected products/packages, plus platform-native trending/priority). Sort by trending|latest|priority|cvss|epss; filter by severity, kev (KEV-only), has_poc, nuclei, epss_min, window (days), vendor, cwe, or free-text query. Returns COMPACT cards {cve_id, severity, cvss, epss_percentile, is_kev, has_poc/exploit/nuclei, priority, trending, vendors, age} — call get_cve(id) for full detail. |
| search_threatsA | The deterministic threat-catalog query tool. Returns LEAN summary rows {id, title, severity, category, status, threat_actor, nation_state, affected_products, cves, cvss_score, summary, created} — call get_threat for full detail on a specific id. Combine a free-text |
| get_threatA | Get the full detail for a single threat by its ID (e.g. TL-2026-0042): overview, MITRE techniques, IOCs, detections, timeline, and tags. For that threat's malware families, tools, targeted sectors/regions, affected OS and campaigns, call get_threat_enrichment. |
| get_recent_threatsA | List the most recently published threats. Paginated: pass limit (default 15, max 100) and offset to page through older threats; the result includes has_more and an opaque next_cursor (reusable as offset/cursor). |
| get_detectionsA | List detection logic (Splunk SPL, Microsoft KQL, Sigma). Optionally filter by threat_id or detection type. Paginated: pass limit (default 15, max 100) and offset to page; the result includes has_more and an opaque next_cursor (reusable as offset/cursor). |
| search_iocsA | Search indicators of compromise (IPs, domains, hashes, URLs). Filter by value substring and/or category. Pass limit (default 25, max 100); the result includes has_more (true when the page is full, so more may exist). NOTE: the indicator endpoint does not yet honor offset — narrow with a more specific value/type substring rather than paging. |
| get_mitre_coverageB | Get MITRE ATT&CK coverage across the platform. Optionally filter by tactic. |
| get_mitre_techniqueA | Get details for a specific MITRE ATT&CK technique by ID (e.g. T1059 or T1059.001). |
| get_threat_enrichmentA | Reference-grounded enrichment for one threat by ID: the malware families and tools used, targeted sectors/regions, affected operating systems, named campaigns, AI/ML (ATLAS) techniques, and per-technique mitigations + detection data sources. Complements get_threat (overview/MITRE/IOCs/detections) — call this for the "what malware/tools were used and who was targeted" view. |
| get_malware_intelligenceA | Pivot on a malware FAMILY by name (e.g. "LockBit", "Vidar", "Emotet"). Returns the canonical family + type, prevalence (threat/actor counts, first/last seen), the threats deploying it, the actors using it, and its most-common ATT&CK techniques. For an offensive TOOL (Cobalt Strike, Mimikatz) use get_tool_intelligence instead. Call resolve_entity first if unsure of the canonical name. |
| get_tool_intelligenceA | Pivot on an offensive tool / utility / RMM / LOLBin by name (e.g. "Cobalt Strike", "Mimikatz", "AnyDesk", "PsExec"). Returns the canonical tool + class, prevalence, the threats and actors using it, and its most-common ATT&CK techniques. |
| get_campaign_intelligenceA | Pivot on a named campaign / operation by name (e.g. "Snowflake campaign", "ClickFix"). Returns the threats in the campaign, the actors involved, prevalence, and common ATT&CK techniques. |
| resolve_entityA | Normalize an actor / malware / tool / sector / region / technique name or alias to its canonical reference form + stable UUID (e.g. "fancy bear" → "APT28"). Call this BEFORE pivoting (get_actor / get_malware_intelligence / get_tool_intelligence / search_threats) when unsure of the canonical name. Optional type narrows the lookup. |
| get_actorA | Get a lean threat-actor profile by name or alias: actor metadata, attribution counts, attributed-threat summary rows, MITRE tactic rollup + technique ids, IOC category counts (no raw values), CVE/CWE/tool summaries, and relationships. For heavy detail use the follow-up tools: get_threat(id) for a full threat, search_detections / get_detection_detail for detection bodies, search_iocs for IOC values, get_infrastructure_pivots for shared infrastructure. |
| search_actorsA | List attributed threat actors with aggregate stats (threat_count, severity levels, categories, nation_state). Returns the full roster in one call, or narrow it with the optional tool / malware / sector filters (e.g. tool="Cobalt Strike" → only actors that used it). Use get_actor for a single actor's full profile. Not paginated; the response carries a total count. |
| get_cveA | Look up a CVE by identifier (e.g. CVE-2024-3400): description, CVSS, affected products, references, and linked threats. |
| get_cweA | Look up a CWE by identifier (e.g. CWE-79): weakness name, description, severity, related CVEs, and mitigation guidance. |
| get_platform_statsA | Get aggregate platform statistics: threat, detection, IOC, MITRE technique, and actor counts. |
| get_similar_threatsA | Threats similar to a given threat, with the EVIDENCE behind each link: per-channel score breakdown, which signal dominates, the concrete shared techniques / IOCs / CVEs, and quality flags for stale or high-confidence-low-evidence links. Use explain_correlation for a full decomposition of one specific pair. |
| get_landscape_briefingA | Get the latest threat-landscape briefing — a synthesized posture summary of recent threat activity. |
| get_daily_themeB | Get the day's landscape theme and top threat tags. |
| get_threat_levelA | Get the computed current threat-landscape level (a 0–25 rating of overall posture). |
| get_ioc_blast_radiusA | Map the blast radius of one indicator: the threats that contain it, the MITRE techniques those threats use, and the actors + sibling IOCs in the same campaigns. Use this to scope impact of a single IOC; for a richer multi-source dossier on one indicator use get_ioc_intelligence instead. |
| get_ioc_intelligenceA | Get the composite intelligence dossier for one indicator: linked threats, actor attribution, related IOCs, and enrichment context in a single call. Prefer this over search_iocs when you already have an exact indicator value and want its full story. |
| get_ioc_dnsA | Return stored DNS enrichment for an IP or domain indicator (reverse-IP and subdomain records previously resolved and cached in the platform dataset). This reads stored data — it is NOT a live lookup at call time. Use get_ioc_intelligence for the full stored dossier. |
| get_infrastructure_pivotsA | For a given threat, surface cross-threat infrastructure links — shared IPs/domains and DNS-derived overlaps that tie it to other campaigns. Use to widen from a single threat to its infrastructure neighborhood; use get_similar_threats for TTP/actor-based similarity instead. |
| get_osintA | Community corroboration for a threat or an indicator from the TL_OSINT_Scan layer (tweetfeed.live, CC0). Given threat_id, returns the matched community tags, the corroborated indicator count, and whether the community saw an indicator BEFORE our report. Given ioc_value, returns sightings, reporters, tags and every linked threat. Community-sourced and heavily concentrated (~73% of recent submissions come from a single reporter) — treat as corroborating evidence, never as authoritative attribution. |
| search_xscan_indicatorsA | Search the canonical community-indicator set (TL_OSINT_Scan / tweetfeed.live, CC0) — indicators the community reported that were also matched against our corpus. Filter by tag, type, ASN, country, minimum linked-threat count, or a value substring. There is deliberately NO family filter: the upstream AI family field is populated on under 1% of rows, so a family argument would return nothing. Use tag instead (community tags carry the family signal). Community-sourced and heavily concentrated (~73% of recent submissions come from a single reporter) — corroborating, not authoritative. |
| get_c2A | Query the live C2 (command-and-control) intelligence center. Pick a view: 'beacons' (active C2 beacon snapshots — default), 'configs' (full extracted C2 configs), 'operators' (operator clusters), 'watermarks' (Cobalt Strike watermark index), 'correlations' (cross-C2 correlations), 'timeline' (activity over time), 'stats' (aggregate counts). Use generate_c2_blocklist when you want firewall-ready output rather than raw records. |
| generate_c2_blocklistA | Compile a firewall-ready C2 blocklist of active command-and-control IPs observed recently. Returns deduplicated network indicators ready to drop into a denylist. Use this for actionable blocking; use get_c2 with view="beacons" when you need the underlying beacon detail. |
| get_correlationsA | Read precomputed cross-dataset correlations. Choose an engine: 'overview' (rollup of all engines — default), 'mitre-heatmap', 'adversary-infra', 'ioc-consensus', 'cve-velocity', 'attribution', 'detection-debt', or 'enrichment'. Use 'overview' first to see what's available, then drill into a specific engine. |
| predict_mitre_transitionsA | Predict the MITRE ATT&CK techniques most likely to follow (or precede) a given technique, with observed probabilities and example threats. Use forward to anticipate the next step in a kill chain; reverse to infer what came before. Pair with get_mitre_technique for the technique definition. |
| get_threat_simulationsA | Get the adversary-emulation / simulation playbooks attached to a threat — step-by-step commands by platform for safely reproducing the behavior in a lab. Use to operationalize detection testing for a specific threat. |
| list_debriefsA | List recent daily intelligence debriefs (newest first) with their per-day rollups: new/updated threats, themes, MITRE techniques, IOC breakdown, actors, and severity counts. Use to scan recent days; use get_debrief for the full detail of one date. Pass limit (default 30, max 100); the result includes has_more (true when the page is full, so older debriefs may exist). NOTE: the debriefs endpoint does not yet honor offset — it serves the most recent window. |
| get_debriefA | Get the full daily intelligence debrief for a specific calendar date (YYYY-MM-DD): posture summary, themes, threats grouped by severity, MITRE coverage, IOC distribution, actor attribution, and detection status. Find available dates first with list_debriefs. |
| export_stixA | Export a threat, actor, or CVE as a STIX 2.1 bundle for ingestion into a TIP/SIEM. Provide at least one of threat_id, actor, or cve_id. Returns a {type:"bundle", objects:[...]} with indicator (per IOC), attack-pattern (per MITRE technique), intrusion-set (actor), vulnerability (CVE), malware/threat-actor, and relationship objects. Set include_osint=true to add |
| export_attack_navigatorA | Export a MITRE ATT&CK Navigator layer (enterprise-attack) for visualization. Pass actor= to score techniques attributed to one actor, or all=true for platform-wide coverage. Returns {name, versions, domain, techniques:[{techniqueID, score, color, comment}]}, capped at 600 techniques. |
| list_threat_categoriesA | List every threat category with its threat count across the whole corpus. Use to discover valid category filters for search_threats. |
| search_detectionsA | Keyword search across detection logic (SPL/KQL/Sigma) by rule text, technique, or threat. Optionally filter by type (spl|kql|sigma) or severity. Paginated via limit (default 25, max 200) + offset. |
| get_detection_detailA | Get the full detail for one detection rule by its ID, including the complete query text (SPL/KQL/Sigma), metadata, and the threat it maps to. |
| list_simulationsA | List adversary-emulation simulation scenarios across the platform (atomic test commands grouped by threat). Pass limit (default 50, max 200). |
| get_threat_transcriptsA | Get the AI agent analysis transcripts for a threat — the step-by-step reasoning the research agents produced while profiling it. |
| get_mitre_gap_analysisA | Prioritized list of MITRE ATT&CK techniques with the weakest detection coverage (detection debt), so you can target where to build detections next. Optionally filter by tactic. |
| get_enrichment_overviewA | Health and coverage overview of the enrichment sources (CVE/EPSS/KEV, IOC reputation, DNS, etc.) feeding the platform. |
| get_roadmapA | Get the Threadlinqs Intelligence platform roadmap — shipped, in-progress, and planned capabilities. |
| get_changelogA | Get the recent platform changelog (new threats, detections, features). Pass limit (default 20, max 100). |
| export_detectionA | Export one detection rule in a specific format. format=spl|kql|sigma returns the raw query text for that flavor; format=json returns the full detection object. |
| get_latest_debriefA | Get the most recent daily intelligence debrief in full detail (resolves the latest date for you). |
| get_threat_bundleA | One-shot dossier for a threat: the full threat detail plus its simulations and analysis transcripts (include="summary" returns just the threat). Fewer round-trips than calling get_threat + get_threat_simulations + get_threat_transcripts separately. |
| get_threat_hunting_bundleA | Flagship one-call hunting dossier for a threat: full detail + similar threats + simulations + infrastructure pivots, composed server-side. Best single tool to scope a hunt around one threat. |
| get_daily_intel_bundleA | One-shot "what happened" bundle: the day's debrief (latest by default, or pass date) plus platform stats, the top recent threats, and the correlations overview. |
| bulk_get_threatsA | Fetch up to 20 threats by ID in one call. Returns {threats, missing, count}. Use when you already have a list of threat IDs. |
| bulk_get_cvesA | Fetch up to 20 enriched CVEs by ID in one call. Returns {cves, missing, count}. |
| get_actor_intelligenceA | Composite intelligence picture for a threat actor: the full actor profile plus cross-actor attribution correlations in one call. |
| get_cve_intelligenceB | Composite CVE dossier: the enriched CVE detail plus exploitation-velocity context and any detections that reference it, in one call. |
| healthA | Lightweight liveness probe: confirms the API is reachable and your key is valid, and returns platform counts + the latest debrief date. |
| huntA | Run a deterministic SIEM-style query over the pre-joined observation index (~106k rows across tool, malware, ioc, mitre, cve, attribution, dns and infra observations). Use this INSTEAD of chaining many search_threats calls when the question is an aggregate ("how many X grouped by Y") or crosses observation types ("threats using tool A that also have IOC type B"). Append "| stats count by " to aggregate; without it you get matching rows. Call hunt_schema first if you do not know the field names. |
| hunt_schemaA | The hunt query grammar: every filterable field and alias, which fields are scoped observables vs denormalized, the operators, the stats-pipe form, worked examples, and how fresh the index is. Call once before writing a hunt query. |
| get_attribution_evidenceA | Why a threat is attributed to an actor: the verdict, canonical actor, confidence, scope, the cited evidence chain, which signals fired, suspected alternatives and the analyst reasoning. Crucially it also reports |
| get_attribution_coverageA | Corpus-level attribution honesty: how many threats are genuinely assessed vs merely actor-labelled at ingest vs uncovered, broken down by confidence, scope and reason code, plus the research backlog, contradictions, top actors and the research clock (last real assessment, not last nightly intake). |
| explain_correlationA | Why two threats are linked: the per-channel similarity decomposition (techniques, IOCs, CVEs, products, CWEs, context), which channel dominates and by how much, the concrete shared artifacts, the signal count, and quality flags for high-confidence/low-evidence and stale links. Use when get_similar_threats gives a score and you need the evidence behind it. Pass the pair in either order. Returns 404 when the engine has no edge between them. |
| get_correlation_pathA | Shortest evidence path between two threats across the similarity graph: the intermediate threats, each hop's dominant linking signal and shared artifacts, and the weakest-link strength of the whole path. Answers "is this incident connected to that campaign, and through what". Returns found:false with a reason (no edges vs different components) rather than an empty array. |
| get_entity_profileA | One-call dossier for any node in the intelligence graph — threat, technique, actor, IOC or CVE. Returns its centrality/pivot rank, top graph neighbours with edge fidelity, and type-specific rollups (linked threats, techniques with risk scores, IOCs with consensus and rarity, campaigns, related CVEs). Best token-per-call ratio in the graph family: replaces five or six separate lookups. |
| get_pivotal_entitiesA | The hubs and bridges of the intelligence graph ranked by weighted degree and approximate betweenness — where a single detection buys the most coverage. NOTE: betweenness is an ego-bridge heuristic, not exact Brandes; the response says so in |
| get_graph_campaignsA | Campaign clusters the engine assembled from the similarity graph (connected components + label propagation): label, member count, cohesion, member threat IDs, top actors, top techniques, shared IOCs and nation-states. Distinct from get_campaign_intelligence, which looks up a NAMED campaign mentioned in threat text — this one reports clusters the engine derived itself. |
| get_technique_rulesA | MITRE ATT&CK technique PAIRS mined from the corpus with support, confidence and lift — which techniques travel together far above chance. Complements predict_mitre_transitions exactly: that answers sequence (what follows what), this answers co-occurrence (what appears alongside what). |
| get_engine_statusA | Is the intelligence pipeline healthy? Per-engine row counts, last-compute times and derived ok/stale/empty status; the nightly graph pipeline's staged progress, current stage and degraded flag; recent failures; and the latest held-out accuracy eval (AUC). Check this before reasoning over correlation output if freshness matters. |
| get_osint_trendsA | What the security community is surging on right now (tweetfeed.live, CC0), joined against our own corpus coverage: trending tags with movement, TLD distribution, novelty, top producers, daily volume — plus |
| get_community_campaignsA | Campaign clusters from the community OSINT layer (tweetfeed.live, CC0): cluster name, confidence, targeted brand, first/last seen, indicator count and types, tags and reporters. Cluster labels are UPSTREAM AI output, not Threadlinqs attribution — do not present them as our assessment. On an upstream proxy failure the response carries community_error rather than erroring; report "community feed unavailable", not "no campaigns". |
| get_c2_dns_intelA | Reverse-DNS unmasking of C2 beacon infrastructure: which domains ride on each beacon IP, infrastructure fidelity (dedicated / mixed / shared), compromised-host flags and sample domains. Answers "what else lives on this C2 infrastructure". Filter by fidelity to separate adversary-owned infrastructure from shared hosting. |
| get_correlation_subgraphA | The N-hop neighbourhood around any graph node — nodes, edges, and each edge's fidelity — for incremental exploration of the correlation graph. Start at depth 1 and expand: a whole-corpus graph exceeds every response budget. For a pre-aggregated single-entity view prefer get_entity_profile, which is cheaper and usually what you want; use this when you need the actual edge topology. |
| search_corpus_semanticA | Vector + rerank retrieval over the whole corpus, returning ranked source cards. Use when keyword search fails — conceptual or paraphrased questions where the exact terms do not appear in the text. Complements search_threats, which is boolean/exact over structured filters. Depends on the AI Search binding and is rate-limited; a 503 means the index is unavailable, not that nothing matched. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| triage_cve | Triage a CVE end-to-end: severity, exploitation status, exposure, and prioritized remediation. |
| profile_actor | Build a threat-actor dossier: TTPs, targeting, attribution confidence, and notable campaigns. |
| hunt_ioc | Hunt an indicator: linked threats/actors and recommended detection or blocking. |
| map_detections_to_mitre | Map a threat's detections (SPL/KQL/Sigma) to ATT&CK techniques and flag coverage gaps. |
| daily_brief | Produce today's intel brief: posture summary, top new threats, and the day's theme. |
| assess_exposure | Assess exposure for a CVE, actor, or technique: what is covered vs uncovered, with recommended actions. |
| build_c2_blocklist | Compile a deduplicated, copy-pasteable C2/IOC blocklist of network indicators mapped to threats. |
| hunt_corpus | Answer an aggregate or cross-observable question with TLQL over the hunt index. |
| explain_link | Explain why two threats are linked, with the evidence and the shortest path between them. |
| map_campaign | Map a campaign: member threats, shared infrastructure, pivotal entities, and the subgraph. |
| review_detection_gaps | Find the highest-value detection debt: uncovered ATT&CK techniques ranked by exposure. |
| write_detection | Draft a deployable detection rule for a technique or threat, grounded in existing corpus logic. |
| review_attribution | Audit whether a threat's actor attribution is evidence-backed or a pending stub. |
| predict_next_move | Forecast likely next (or preceding) ATT&CK techniques from observed activity. |
| malware_dossier | Profile a malware family or offensive tool: usage, actors, threats, and related entities. |
| pivot_infrastructure | Pivot from an indicator or threat across DNS, hosting, and adjacent infrastructure. |
| osint_sweep | Fold community/OSINT signal into corpus intelligence and surface coverage lead time. |
| export_for_tooling | Produce STIX, ATT&CK Navigator, or SIEM-ready detection exports for downstream tools. |
| plan_purple_team | Build a purple-team plan for a threat: simulations to run and the detections they should trip. |
| sweep_vulnerabilities | Triage the vulnerability feed by exploitability and exposure, not by CVSS alone. |
| period_review | Review a day or span of intelligence from the debrief archive. |
| platform_status | Check corpus health, engine status, enrichment completeness, and recent changes. |
| orient | Orient an agent to the platform: catalog, corpus shape, categories, and query grammar. |
| research_question | Answer an open-ended question by semantic search across the corpus, then verify. |
| bulk_enrich | Enrich a list of threat or CVE ids efficiently in batched calls. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| platform-stats | Aggregate platform statistics: threat, detection, IOC, MITRE technique, and actor counts. |
| recent-threats | The most recently published threats (latest 20). |
| landscape-briefing | The latest synthesized threat-landscape posture briefing. |
| ui-mitre-matrix | Interactive MITRE ATT&CK Matrix (MCP Apps). Rendered inline by hosts that support the io.modelcontextprotocol/ui extension; ignored elsewhere. |
| ui-threats | Interactive Threat Feed (MCP Apps). Rendered inline by hosts that support the io.modelcontextprotocol/ui extension; ignored elsewhere. |
| ui-detections | Interactive Detection Library (MCP Apps). Rendered inline by hosts that support the io.modelcontextprotocol/ui extension; ignored elsewhere. |
| ui-iocs | Interactive IOC Triage (MCP Apps). Rendered inline by hosts that support the io.modelcontextprotocol/ui extension; ignored elsewhere. |
| ui-vulns | Interactive Vulnerability Triage (MCP Apps). Rendered inline by hosts that support the io.modelcontextprotocol/ui extension; ignored elsewhere. |
| ui-graph | Interactive Correlation Graph (MCP Apps). Rendered inline by hosts that support the io.modelcontextprotocol/ui extension; ignored elsewhere. |
| ui-threat | Interactive Threat Dossier (MCP Apps). Rendered inline by hosts that support the io.modelcontextprotocol/ui extension; ignored elsewhere. |
| ui-hunt | Interactive Hunt Results (MCP Apps). Rendered inline by hosts that support the io.modelcontextprotocol/ui extension; ignored elsewhere. |
| ui-actor | Interactive Actor Dossier (MCP Apps). Rendered inline by hosts that support the io.modelcontextprotocol/ui extension; ignored elsewhere. |
| ui-c2 | Interactive C2 Infrastructure (MCP Apps). Rendered inline by hosts that support the io.modelcontextprotocol/ui extension; ignored elsewhere. |
| ui-detection | Interactive Detection Workbench (MCP Apps). Rendered inline by hosts that support the io.modelcontextprotocol/ui extension; ignored elsewhere. |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/threadlinqs-cmd/intelthreadlinqs-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server