Skip to main content
Glama
WYRE-AI

abnormal-mcp

by WYRE-AI

abnormal-mcp

MCP server for Abnormal Security — AI-powered threat detection, case management, and email remediation.

Tools

This server uses a decision-tree architecture. Start by calling abnormal_navigate to select a domain, then use the domain-specific tools.

Navigation

Tool

Description

abnormal_navigate

Navigate to a domain (threats, messages, remediation, abuse, cases)

abnormal_back

Return to domain selection

Threats domain

Tool

Description

abnormal_threats_list

List detected threat cases (paginated)

abnormal_threats_get

Get full details of a specific threat by ID

Messages domain

Tool

Description

abnormal_messages_list

List messages within a threat case

abnormal_messages_get

Get detailed message analysis (headers, URLs, attachments, AI analysis)

Remediation domain

Tool

Description

abnormal_remediation_manage

Trigger or check remediation actions for a message

Abuse domain

Tool

Description

abnormal_abuse_list

List phishing emails reported via the Abuse Mailbox

Cases domain

Tool

Description

abnormal_cases_list

List active security investigation cases

abnormal_cases_get

Get details of a specific case

Interactive Threat Card (MCP Apps)

  • abnormal_threats_get renders as an interactive threat card in MCP Apps hosts (Claude Desktop/web): subject, sender, attack classification, remediation status, and the messages in the threat. The card is read-only — remediation stays a deliberate, model-mediated action. Plain-JSON behavior is unchanged in other hosts. Neutral by default, brandable via window.__BRAND__ injection or MCP_BRAND_* env vars (MCP_BRAND_NAME, MCP_BRAND_LOGO_URL, MCP_BRAND_PRIMARY_COLOR, MCP_BRAND_ACCENT_COLOR, MCP_BRAND_BG, MCP_BRAND_TEXT) — no rebuild needed.

Related MCP server: blumira-mcp

Authentication

Abnormal Security uses Bearer token authentication.

Standalone (env mode)

export ABNORMAL_API_TOKEN=your-api-token
node dist/index.js

Generate your token in the Abnormal portal under Settings > Integrations > API.

Gateway mode

When deployed behind the MCP gateway, set AUTH_MODE=gateway. The gateway injects the Authorization: Bearer {token} header automatically on each request.

Running

stdio (for Claude Desktop)

npm install
npm run build
node dist/index.js

HTTP Streamable (for hosted/gateway deployment)

MCP_TRANSPORT=http AUTH_MODE=gateway node dist/index.js

Docker

docker compose up

Development

npm install
npm run dev          # watch mode
npm test             # run tests
npm run typecheck    # TypeScript type check
npm run build:ui     # rebuild the MCP Apps card bundle (only needed when ui/ changes)

License

Apache-2.0

Available Tools

10 tools
abnormal_abuse_listA

List phishing emails reported by users via the Abuse Mailbox. Returns user-submitted reports with analysis results indicating whether Abnormal confirmed the threat.

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNoOData filter expression (e.g. 'firstReportedTime gt 2024-01-01T00:00:00Z')
pageSizeNoNumber of results per page (default: 100, max: 100)
pageNumberNoPage number to retrieve (1-indexed, default: 1)

TDQS

A3.7/5.0
Behavior3/5

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

No annotations; description covers read operation but lacks details on pagination, rate limits, or any destructive behavior.

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

Conciseness4/5

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

Two sentences are concise and front-loaded, though could be slightly more condensed.

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?

Adequately covers purpose and return value for a list tool with 3 parameters and no output schema.

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 covers 100% of parameters with descriptions; description does not add additional meaning beyond schema.

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 clearly states it lists phishing emails reported via Abuse Mailbox and returns analysis results. Distinguishes from siblings like abnormal_threats_list.

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

Usage Guidelines3/5

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

Implies usage for fetching user-reported phishing incidents, but no explicit when-to-use or comparisons with siblings.

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

abnormal_cases_getA

Get detailed information about a specific security case by ID. Returns case status, analyst notes, associated threats, and timeline.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseIdYesThe numeric case ID to retrieve

TDQS

A4.1/5.0
Behavior4/5

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

No annotations provided, but the description transparently states that it returns case status, analyst notes, associated threats, and timeline. This is sufficient for a read-only operation without side effects.

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?

The description is a single, front-loaded sentence with no wasted words. It efficiently communicates the tool's purpose and return content.

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

Completeness5/5

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

Given one required parameter and no output schema, the description adequately covers what the tool does and what it returns (status, notes, threats, timeline). It is complete for this simple retrieval tool.

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% with parameter 'caseId' described as 'The numeric case ID to retrieve'. The description adds no additional meaning beyond what the schema provides, meeting the baseline for high coverage.

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 'Get detailed information about a specific security case by ID' with a clear verb (Get) and resource (security case). It clearly distinguishes from siblings like abnormal_cases_list (which lists cases) and other detailed get tools.

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

Usage Guidelines3/5

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

The description implies usage when you have a specific case ID but does not explicitly state when to use this tool versus alternatives. No when-not-to-use or alternative comparison is given.

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

abnormal_cases_listB

List all active security investigation cases in Abnormal Security. Cases group related threats for analyst review and workflow management.

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNoOData filter expression (e.g. 'createdTime gt 2024-01-01T00:00:00Z')
pageSizeNoNumber of results per page (default: 100, max: 100)
pageNumberNoPage number to retrieve (1-indexed, default: 1)

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden for behavioral transparency. It communicates that only 'active' cases are returned, which is a meaningful behavioral trait, and that cases group related threats—useful context for what the returned data represents. However, it does not disclose pagination behavior beyond what the schema already shows, nor does it mention authentication requirements, rate limits, or the absence of certain fields. Given the simple read/list nature, the disclosure is adequate but not rich.

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

Conciseness4/5

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

The description is a single focused sentence that front-loads the main action and resource, and adds one clarifying clause about cases grouping threats. It is appropriately sized with no filler. It could arguably use one more sentence for usage guidance, but as written it is concise and well-structured.

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

Completeness3/5

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

For a simple list tool with zero required parameters, full schema coverage, and no output schema, the description is mostly sufficient: it names the resource, the active-case scope, and the grouping concept. Gaps include not mentioning the default page size, not explaining what fields will be returned (though no output schema exists), and not differentiating from the sibling get tool. These are moderate gaps rather than fatal ones.

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 description coverage is 100%, so the baseline is 3. The description adds minimal parameter-level meaning: it does not explain the OData filter syntax, page size limits, or page numbering beyond what the schema already states. No extra semantics are needed for an agent to call it, but it also does not add value like examples of valid filter expressions.

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

Purpose4/5

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

The description states a specific verb ('List') and resource ('active security investigation cases in Abnormal Security'), and clarifies that cases group related threats for analyst review and workflow management. However, it does not explicitly differentiate itself from its sibling abnormal_cases_get, which is a close cousin that retrieves case details—though the 'List' verb plus the pagination parameters make the list intent clear enough.

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

Usage Guidelines3/5

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

There is no explicit when-to-use or alternative guidance. The phrase 'active security investigation cases' implies a read-only listing use case, and the pagination parameters imply enumeration, but it does not name sibling tools like abnormal_cases_get or abnormal_threats_list as alternatives for getting details or related threats. The context is clear enough for a simple list call but leaves selection reasoning to the agent.

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

abnormal_messages_getA

Get detailed analysis of a specific message within a threat case. Returns full message metadata, headers, URLs, attachments, and AI-based threat analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
threatIdYesThe threat ID (UUID) that contains the message
messageIdYesThe message ID to retrieve (URL-encoded email message ID)

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description must disclose behavior. It lists return contents (metadata, headers, URLs, attachments, AI analysis), which is helpful. It does not mention idempotency, error conditions, or permissions, but for a retrieval tool this is acceptable.

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?

A single, clear sentence followed by return data list. No fluff, front-loaded key information. Every word adds value.

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?

For a simple retrieval tool with two parameters and no output schema, the description covers purpose and return data. Could add context about prerequisites (must have threatId from a list), but overall complete enough.

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% with clear parameter descriptions. The tool description adds minimal extra meaning beyond 'within a threat case'. Baseline 3 is appropriate.

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?

The description clearly states the verb 'Get' and the specific resource 'detailed analysis of a specific message within a threat case'. It distinguishes from siblings like abnormal_messages_list (lists messages) and abnormal_threats_get (gets threat details).

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 implies usage when you need detailed analysis of a specific message, but does not explicitly exclude when to use alternatives or provide negative guidance. It is clear enough for an agent to infer appropriate use.

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

abnormal_messages_listB

List messages contained within a specific threat case. Returns message IDs and summary data for all emails associated with the threat.

ParametersJSON Schema
NameRequiredDescriptionDefault
threatIdYesThe threat ID (UUID) to list messages for

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are supplied, so the description must carry the full behavioral burden. It states the return content (message IDs and summary data) but does not disclose whether the operation is read-only, any side effects, permissions required, or limits/pagination. This is a notable gap given zero annotation coverage.

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?

The description is two sentences with no filler. The primary action and return value are front-loaded, making it immediately scannable and free of unnecessary verbosity.

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?

For a tool with only one parameter and no output schema, the description adequately covers what it returns (message IDs and summary data). It does not describe potential pagination or sorting, but for such a simple list operation, the description is reasonably complete.

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 the threatId parameter is fully described in the schema. The description adds no extra semantic detail beyond what the schema already provides, so the baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the action ('List messages') and the resource ('within a specific threat case'). It distinguishes from siblings like abnormal_messages_get (singular message) and abnormal_threats_list (list threats) by specifying the message listing scope, though it does not explicitly name alternatives.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus sibling tools such as abnormal_messages_get or abnormal_threats_list. The description implies it is for listing all messages associated with a threat, but it does not clarify scenarios where a single message fetch would be more appropriate.

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

abnormal_navigateA

Discover available Abnormal Security tools by domain. Returns tool names and descriptions for the selected domain. All tools are callable at any time — this is a help/discovery aid, not a prerequisite.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesThe domain to explore: - threats: Threat detection — list and inspect detected threat cases - messages: Message analysis — list and inspect individual emails within a threat - remediation: Remediation — trigger or check email remediation actions - abuse: Abuse mailbox — list phishing emails reported by users - cases: Security cases — list and inspect analyst investigation cases

TDQS

A4.3/5.0
Behavior4/5

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

No annotations are provided, so the description must carry behavioral disclosure. It states that the tool only returns tool names/descriptions and explicitly disclaims being a prerequisite, strongly implying a non-mutating metadata lookup. It stops short of explicitly saying 'read-only/no side effects,' but the discovery-aid framing covers the main behavioral traits.

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?

Two sentences, front-loaded with the core action and return value, followed by a clarifying disambiguation sentence. There is zero filler and every sentence earns its place.

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

Completeness5/5

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

For a one-parameter, no-output-schema discovery tool, the description covers what it does, what it returns, and its relationship to other tools (non-prerequisite). Given the low complexity, nothing essential is missing.

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%: the only parameter 'domain' has an enum with a detailed description for each value. The tool description adds no parameter-level information beyond 'by domain'/'selected domain,' so the schema carries the semantic weight — baseline 3 applies.

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?

States a specific verb 'Discover' and resource 'available Abnormal Security tools' scoped by domain, and specifies the return value ('tool names and descriptions'). This clearly distinguishes it from sibling tools, which are operational (list/get/manage) rather than meta-discovery.

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?

Explicitly frames itself as a 'help/discovery aid' and states 'All tools are callable at any time' — making clear it is not a prerequisite. This gives useful context for when to call it and an explicit exclusion, though it does not name specific alternative tools or elaborate on when not to use it.

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

abnormal_remediation_manageA

Trigger or check the status of a remediation action for a specific threat message. Supports requesting remediation (removal from mailboxes) or checking current remediation status.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction to perform: 'remediate' removes the message, 'unremediate' restores it, 'status' checks current state
threatIdYesThe threat ID (UUID) containing the message to remediate
messageIdYesThe message ID to remediate

TDQS

A3.9/5.0
Behavior3/5

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

Discloses that 'remediate' removes messages and 'unremediate' restores, but does not mention authentication, rate limits, or side effects. No annotations provided, so description partially fulfills the burden.

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?

Two sentences, front-loaded with the main verb and resource, no redundant words.

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

Completeness3/5

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

Covers action semantics well but lacks information about return values, especially for the 'status' action, and does not mention prerequisites like already having a threatId from another tool.

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

Parameters4/5

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

With 100% schema coverage, the description adds value by explaining the meaning of each action enum ('remediate' removes, 'unremediate' restores, 'status' checks), going beyond the schema definitions.

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?

The description clearly states it triggers or checks the status of a remediation action for a specific threat message, distinguishing it from sibling tools that list or get threats/cases.

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

Usage Guidelines3/5

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

The description implies usage when remediation or status checking is needed, but lacks explicit guidance on when not to use or alternatives.

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

abnormal_statusC

Show connection status and available domains

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description carries full burden, but it only says 'show', which suggests a read-only operation but doesn't explicitly disclose safety (e.g., no side effects, no data mutation). It also doesn't mention whether authentication is required, any rate limits, or the response format. For a status tool, it would be helpful to state it's non-destructive and safe to call.

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

Conciseness4/5

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

The description is a single, clear sentence with no fluff. It front-loads the purpose. It could potentially be improved by adding a bit more context, but as is, it is concise.

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

Completeness2/5

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

Given no annotations, no output schema, and a status tool, the description is too thin. An agent benefits from knowing what 'connection status' includes (e.g., API, auth), what 'available domains' means, and whether this should be called first. The description is adequate for a trivial tool but leaves gaps for a status check.

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

Parameters4/5

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

There are zero parameters, so the description doesn't need to explain parameter semantics. The baseline is 4 for 0 params, which fits. The description correctly implies no parameters are needed.

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

Purpose3/5

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

The description states a clear purpose: it shows connection status and available domains. It is a specific resource (connection status) and result (domains), but it doesn't distinguish it from siblings like abnormal_cases_get or abnormal_threats_list, which are also about showing information. The verb 'show' is explicit, but the description is generic compared to the granular siblings.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives. There are no prerequisites, no conditions like 'use this when checking connectivity before other operations', and no mention of alternative tools. The description implies it's a general status check, but it doesn't state when that is preferred over other operations.

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

abnormal_threats_getA

Get detailed information about a specific threat case by ID. Returns threat details including classification, severity, and related message IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
threatIdYesThe unique threat ID (UUID format)

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It discloses that the tool returns threat details (classification, severity, message IDs) but does not mention side effects, authorization requirements, or error behavior. This is adequate but leaves gaps.

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?

Two sentences with no wasted wording. The purpose is front-loaded, and the description is efficiently structured for quick parsing.

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?

Given the low complexity (1 parameter, no output schema), the description adequately covers what is returned. However, it does not differentiate from other get tools like abnormal_cases_get, and sibling tools are not referenced. Slightly above average completeness.

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?

The input schema already fully describes the single parameter threatId as a UUID with 100% coverage. The description adds no additional semantic value beyond restating the parameter's purpose, so the baseline score of 3 is appropriate.

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?

The description clearly states the verb 'Get' and the resource 'detailed information about a specific threat case by ID'. It distinguishes from siblings like abnormal_threats_list (which lists threats) and abnormal_cases_get (which gets a different entity).

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 implies usage for a single threat when you have its ID, and the sibling tools list includes abnormal_threats_list for listing, but it does not explicitly state when to use this versus alternatives or mention prerequisites like needing a valid threat ID.

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

abnormal_threats_listB

List detected threats and cases from Abnormal Security. Returns a paginated list of threat IDs with summary information.

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNoOData filter expression (e.g. 'receivedTime gt 2024-01-01T00:00:00Z')
pageSizeNoNumber of results per page (default: 100, max: 100)
pageNumberNoPage number to retrieve (1-indexed, default: 1)

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the burden of behavioral disclosure. It states the tool is paginated and returns threat IDs with summary information, which is useful. It does not mention read-only status, authentication needs, rate limits, or what exactly 'summary information' contains.

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?

A single sentence that gets straight to the point: what is listed, the source system, and the return shape. There is no filler or redundant restatement of the tool name.

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

Completeness3/5

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

For a simple list tool with fully described parameters, the description is mostly sufficient. However, there is no output schema, and 'summary information' is vague; the agent cannot predict the exact response structure or pagination metadata. The ambiguity around 'threats and cases' also leaves a gap in context.

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 description coverage is 100%, so the schema already documents filter, pageSize, and pageNumber. The description adds no extra parameter semantics beyond saying the result is paginated, which the schema already communicates through pageSize/pageNumber.

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

Purpose4/5

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

The description uses a specific verb ('List') and names the resource ('detected threats and cases from Abnormal Security'), so an agent can tell this is a listing operation. However, the phrase 'threats and cases' is ambiguous next to sibling abnormal_cases_list, and the mention of 'threat IDs' muddies whether cases are actually included.

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

Usage Guidelines2/5

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

There is no guidance on when to choose this tool over abnormal_cases_list, abnormal_threats_get, or abnormal_cases_get. The description implies a listing use case but provides no exclusions or alternative guidance.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 5 tool updatesv1.2.5
    • Addedabnormal_cases_list
    • Addedabnormal_messages_list
    • Addedabnormal_navigate
    • Addedabnormal_status
    • Addedabnormal_threats_list
  2. 5 tool updatesv1.2.0
    • Removedabnormal_cases_list
    • Removedabnormal_messages_list
    • Removedabnormal_navigate
    • Removedabnormal_status
    • Removedabnormal_threats_list
  3. 10 tool updatesv1.0.0
    • First observedabnormal_abuse_list
    • First observedabnormal_cases_get
    • First observedabnormal_cases_list
    • First observedabnormal_messages_get
    • First observedabnormal_messages_list
    • First observedabnormal_navigate
    • First observedabnormal_remediation_manage
    • First observedabnormal_status
    • First observedabnormal_threats_get
    • First observedabnormal_threats_list

TDQS

A3.6/5.0
Disambiguation4/5

Each tool targets a distinct resource-action pair, but cases and threats can be slightly confused since both have get-by-ID tools. The descriptions clarify that cases group related threats, so agents should mostly select correctly, though the boundary could be clearer.

Naming Consistency4/5

The pattern abnormal_<resource>_<verb> is mostly consistent (list/get for cases, threats, messages), but abnormal_navigate and abnormal_status break the pattern, and remediation_manage uses a vaguer verb. Overall, the convention is clear and predictable with only minor exceptions.

Tool Count5/5

10 tools is well within the sweet spot for a security-focused MCP server. The count covers the major domains (cases, threats, messages, remediation, abuse reporting) without unnecessary bloat.

Completeness4/5

The core read-heavy workflows are well covered: list/get cases, threats, messages, plus remediation and abuse reports. Notable gaps include the lack of an update-case or update-threat operation, and abuse reports only support listing without a get-detail tool, but these are minor for a typical analyst workflow.

Maintenance

ActivityActive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that integrates ThreatBook's threat intelligence API, offering 15 specialized tools for security analysis. It enables AI models to perform IP reputation checks, domain investigations, file sandbox analysis, and vulnerability intelligence lookups.
    50
    MIT
  • F
    license
    Not graded
    quality
    A
    maintenance
    An MCP server for Blumira SIEM platform, enabling management of security event detection, alerts, and threat response through Blumira's API.
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    An MCP server for Blackpoint Cyber MDR platform, enabling management of security monitoring, threat detection, and incident response through Blackpoint's API.
    Apache 2.0
  • F
    license
    Not graded
    quality
    A
    maintenance
    An MCP server for Huntress managed security platform, enabling management of agents, incidents, reports, and threat detections through Huntress's API.
    1
    -

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/WYRE-AI/abnormal-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server