Skip to main content
Glama
threadlinqs-cmd

Intel Threadlinqs MCP

Get Detections

get_detections
Read-onlyIdempotent

List detection logic in SPL, KQL, or Sigma, with optional filtering by threat ID or detection type. Paginated results include next_cursor to page through large sets.

Instructions

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).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
typeNoDetection type: spl, kql, or sigma
limitNoMax results (default 15, max 100)
cursorNoOpaque pagination cursor (next_cursor from a prior result). Decoded to an offset; ignored when offset is given.
offsetNoRow offset for pagination (default 0). Or pass cursor from a prior result.
threat_idNoFilter detections for a specific threat ID

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
dataYes
totalNoTotal matching rows, when the handler reports one.
has_moreNoTrue when another page may exist.
next_cursorNoOpaque cursor for the next page, or null when this is the last page or the endpoint ignores offset.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed14 schema fields changedv8.1.1
    • addedInput schema / properties / cursor
      Added value: +{
      +  "description": "Opaque pagination cursor (next_cursor from a prior result). Decoded to an offset; ignored when offset is given.",
      +  "type": "string"
      +}
    • changedInput schema / properties / limit / description
      Previous value: -"Max results (default 50, max 200)"New value: +"Max results (default 15, max 100)"
    • changedInput schema / properties / offset / description
      Previous value: -"Pagination offset (default 0)"New value: +"Row offset for pagination (default 0). Or pass cursor from a prior result."
    • removedInput schema / properties / search
      Removed value: -{
      -  "description": "Keyword search (matches detection name and description)",
      -  "type": "string"
      -}
    • removedInput schema / properties / severity
      Removed value: -{
      -  "description": "Severity level filter",
      -  "enum": [
      -    "critical",
      -    "high",
      -    "medium",
      -    "low"
      -  ],
      -  "type": "string"
      -}
    • changedInput schema / properties / type / description
      Previous value: -"Detection language filter"New value: +"Detection type: spl, kql, or sigma"
    • removedInput schema / properties / type / enum
      Removed value: -[
      -  "spl",
      -  "kql",
      -  "sigma",
      -  "all"
      -]
    • removedOutput schema / properties / count
      Removed value: -{
      -  "type": "number"
      -}
    • addedOutput schema / properties / data / items
      Added value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "detection_type": {
      +      "description": "spl | kql | sigma",
      +      "type": "string"
      +    },
      +    "id": {
      +      "description": "Detection ID — pass to get_detection_detail / export_detection.",
      +      "type": "string"
      +    },
      +    "name": {
      +      "type": "string"
      +    },
      +    "severity": {
      +      "type": "string"
      +    },
      +    "threat_id": {
      +      "description": "Owning threat — pass to get_threat.",
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / has_more / description
      Added value: +"True when another page may exist."
    • addedOutput schema / properties / next_cursor
      Added value: +{
      +  "description": "Opaque cursor for the next page, or null when this is the last page or the endpoint ignores offset.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • removedOutput schema / properties / next_offset
      Removed value: -{
      -  "type": [
      -    "number",
      -    "null"
      -  ]
      -}
    • addedOutput schema / properties / total
      Added value: +{
      +  "description": "Total matching rows, when the handler reports one.",
      +  "type": "integer"
      +}
    • addedOutput schema / required
      Added value: +[
      +  "data"
      +]
  2. First observedv0.1.0

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is established. The description adds valuable behavioral context: pagination mechanics (has_more, next_cursor reusable as offset/cursor) and the specific precedence rule (cursor ignored when offset given). This enriches the annotation-based safety signals with concrete runtime behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three efficient sentences with zero wasted words. Front-loads the core purpose, then filters, then pagination mechanics. Every clause adds information that isn't elsewhere, and the structure logically groups listing behavior, filtering, and pagination in order of importance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema, which relieves the description of explaining return values. With 5 parameters, no required fields, pagination mechanics explained, and read-only idempotent semantics assumed from annotations, this is reasonably complete. Minor gap: doesn't name sibling alternatives (search_detections) for when broader search is needed, but the complexity is low enough that the description suffices.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all five parameters are documented in the schema. The description adds the relationship between cursor and offset (cursor decoded to offset, ignored when offset given), which is genuinely helpful beyond the schema. However, the individual parameter descriptions in the schema are already thorough; the description's contribution is mainly the cursor/offset interaction nuance, warranting baseline 3 rather than higher.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states a specific verb+resource ('List detection logic') and enumerates the content formats (Splunk SPL, Microsoft KQL, Sigma). It distinguishes from siblings like search_detections (which implies a search action) and get_detection_detail (singular detail) by specifying this is a listing operation with filters. Clear differentiation from sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clarifies pagination behavior and mentions optional filtering by threat_id or type, giving clear usage context. However, it doesn't explicitly contrast with search_detections or get_detection_detail, nor state when to prefer this over those alternatives. The pagination guidance is strong but sibling differentiation is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

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