mcpField
A
Abnormal MCP Server

Abnormal MCP Server

Local
github.comSecurity0Updated 4w ago

About Abnormal MCP Server

Abnormal MCP Server connects MCP clients to Abnormal Security for security teams investigating threats, messages, identity events, and vendor cases. Read operations are the default; remediation and evidence downloads require separate opt-ins.

Key features

  1. 01Threat and message searches
  2. 02Employee, ATO, and vendor case lookup
  3. 03Mailbox campaigns and Detection 360 reports
  4. 04Optional remediation with confirmation gates
  5. 05Optional message and attachment evidence downloads

Use cases

  1. 01Review threat and message activity
  2. 02Investigate account takeover and vendor cases
  3. 03Remediate threats after enabling response tools
  4. 04Retrieve message or attachment evidence

MCP support

Exposes Abnormal Security data and, when explicitly enabled, response and evidence-download tools to MCP clients. It supports stdio by default and optional Streamable HTTP.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"gregdog-mcp-server-abnormal": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"ABNORMAL_API_TOKEN",
"-e",
"ABNORMAL_BASE_URL",
"-e",
"ABNORMAL_ALLOW_RESPONSE",
"-e",
"ABNORMAL_ALLOW_EVIDENCE_DOWNLOAD",
"-e",
"ABNORMAL_MAX_EVIDENCE_BYTES",
"ghcr.io/gregdog/mcp-server-abnormal:v1.1.0"
],
"env": {
"ABNORMAL_API_TOKEN": "<ABNORMAL_API_TOKEN>",
"ABNORMAL_BASE_URL": "<ABNORMAL_BASE_URL>",
"ABNORMAL_ALLOW_RESPONSE": "<ABNORMAL_ALLOW_RESPONSE>",
"ABNORMAL_ALLOW_EVIDENCE_DOWNLOAD": "<ABNORMAL_ALLOW_EVIDENCE_DOWNLOAD>",
"ABNORMAL_MAX_EVIDENCE_BYTES": "<ABNORMAL_MAX_EVIDENCE_BYTES>"
}
}
}
}
Run commanddocker run -i --rm -e ABNORMAL_API_TOKEN -e ABNORMAL_BASE_URL -e ABNORMAL_ALLOW_RESPONSE -e ABNORMAL_ALLOW_EVIDENCE_DOWNLOAD -e ABNORMAL_MAX_EVIDENCE_BYTES ghcr.io/gregdog/mcp-server-abnormal:v1.1.0
Environment variables to set
ABNORMAL_API_TOKENSecretAbnormal REST API bearer token
ABNORMAL_BASE_URLAbnormal API base URL
ABNORMAL_ALLOW_RESPONSEEnable response MCP tools (remediation)
ABNORMAL_ALLOW_EVIDENCE_DOWNLOADEnable evidence download MCP tools (EML and attachments)
ABNORMAL_MAX_EVIDENCE_BYTESMax bytes per evidence download from Abnormal

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
ocighcr.io/gregdog/mcp-server-abnormal:v1.1.0

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

Abnormal MCP Server

CI Go License

A secure, open-source Model Context Protocol server for Abnormal Security.

This project is not an official Abnormal product and is not endorsed by Abnormal AI.

Overview

abnormal-mcp lets MCP clients such as Cursor and Claude Desktop query Abnormal Security over stdio (default) or Streamable HTTP. It uses a lightweight handwritten client against the Abnormal Security Client API.

MCP Client
    → Abnormal MCP Server (stdio or HTTP)
        → Abnormal REST API

The server is read-only by default. Response and evidence download tools are opt-in and independent. Abnormal authorization still applies to every request.

Features

Read (always on)

  • Threat list and get from the Threat Log
  • Threat links and attachment metadata
  • Threat action status poll (abnormal_threat_action_get)
  • Message search with ergonomic filters (since, sender, sender_domain, recipient, subject, url, attachment, sender_ip, judgement)
  • Search activity list and status
  • Message remediation history
  • AI Security Mailbox (formerly Abuse Mailbox) campaigns and unanalyzed reports
  • Employee profile, identity (Genome), and recent logins
  • ATO case list, detail, and analysis
  • Vendor list, detail, activity, and vendor compromise cases
  • Detection 360 report list (false positives and missed attacks)
  • US, EU, and FedRAMP base URLs (configurable)

Response (opt-in: ABNORMAL_ALLOW_RESPONSE=true)

  • Search remediation (delete, move_to_inbox) with confirm: true preview gate
  • Threat remediate / unremediate with confirm: true preview gate
  • ATO case status update with confirm: true preview gate
  • Detection 360 report submit (false positive, missed attack/spam/graymail) with confirm: true preview gate

Evidence download (opt-in: ABNORMAL_ALLOW_EVIDENCE_DOWNLOAD=true)

  • Message EML download (by ABX message ID or search cloud_message_id)

  • Attachment analysis signals and attachment download

  • Metadata + bounded preview by default; optional base64 embed (max 1 MiB in tool output)

  • stdio transport (default) and opt-in Streamable HTTP

  • Native Go binary and Docker image

  • MCP Registry listing on tagged releases (io.github.GregDog/mcp-server-abnormal)

Quick Start

Create an Abnormal REST API token in the Abnormal portal under Integrations → Abnormal REST API.

export ABNORMAL_API_TOKEN="your-token"
abnormal-mcp serve

Installation

From source
git clone https://github.com/GregDog/mcp-server-abnormal.git
cd mcp-server-abnormal
make build
Docker
docker run --rm -i \
  -e ABNORMAL_API_TOKEN \
  ghcr.io/gregdog/mcp-server-abnormal serve

Client configuration

Cursor (stdio)

See examples/cursor.mcp.json.

Claude Desktop

See examples/claude-desktop.json.

Tools

27 read tools are always registered. With ABNORMAL_ALLOW_EVIDENCE_DOWNLOAD=true, five evidence tools are added (32 total). With ABNORMAL_ALLOW_RESPONSE=true, four response tools are added (31 total, or 36 with both gates enabled).

AreaTools
Threatsabnormal_threats_list, abnormal_threat_get, abnormal_threat_action_get, abnormal_threat_links_list, abnormal_threat_attachments_list
Searchabnormal_search_messages, abnormal_search_activities_list, abnormal_search_activity_get
Messagesabnormal_message_remediation_history
Mailboxabnormal_mailbox_campaigns_list, abnormal_mailbox_campaign_get, abnormal_mailbox_unanalyzed_list
Employeesabnormal_employee_get, abnormal_employee_identity_get, abnormal_employee_logins_list
ATO casesabnormal_cases_list, abnormal_case_get, abnormal_case_analysis_get, abnormal_case_action_get
Vendorsabnormal_vendors_list, abnormal_vendor_get, abnormal_vendor_activity_list, abnormal_vendor_cases_list, abnormal_vendor_case_get
Detection 360abnormal_detection360_reports_list
URL rewriteabnormal_url_rewrite_clicks_list
Audit logsabnormal_audit_logs_list
Evidence (opt-in)abnormal_message_eml_get, abnormal_search_message_eml_get, abnormal_message_attachment_get, abnormal_message_attachment_download, abnormal_search_attachment_download
Response (opt-in)abnormal_search_remediate, abnormal_threat_remediate, abnormal_case_update, abnormal_detection360_report_submit

See docs/tools.md for parameters.

Configuration

VariableDefaultPurpose
ABNORMAL_API_TOKEN(required)Bearer token
ABNORMAL_BASE_URLhttps://api.abnormalplatform.com/v1API base URL
ABNORMAL_ALLOW_RESPONSEfalseEnable response tools (Phase 2+)
ABNORMAL_ALLOW_EVIDENCE_DOWNLOADfalseEnable evidence download (Phase 5+)
ABNORMAL_MCP_TRANSPORTstdiostdio or http

Full list: docs/configuration.md.

Security

Read tools are always on. Response and evidence tools require explicit opt-in.

Local use only: this server has no built-in authentication or RBAC. Use stdio (default) or loopback HTTP on the same machine. Do not expose the HTTP endpoint on a network without your own access controls.

See docs/security.md and SECURITY.md.

Development

make check
make test-access    # optional live API smoke test
make test-phase34   # Phase 3/4 live smoke test
make test-phase5    # Phase 5 evidence smoke test (requires ABNORMAL_ALLOW_EVIDENCE_DOWNLOAD)

See docs/development.md.

License

Apache-2.0. See LICENSE.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.