Source profileQuality 91/100

WYRE-AI/msp-claude-plugins/msp-claude-plugins/ironscales/ironscales/skills/api-patterns/SKILL.md

IRONSCALES API Patterns

Ironscales MCP fundamentals: API-key plus company-ID header authentication and the per-tenant scoping that follows from it, the nine tools this server registers and what each one actually changes, offset/limit pagination without a total count, rate-limit behavior, and how API failures surface to the model.

Source repository stars
42
Declared platforms
0
Static risk flags
0
Last source update
2026-08-28
Source checked
2026-08-28

Decision brief

What it does: where it fits

Ironscales MCP fundamentals: API-key plus company-ID header authentication and the per-tenant scoping that follows from it, the nine tools this server registers and what each one actually changes, offset/limit pagination without a total count, rate-limit behavior, and how API failures surface to the model.

Best for

    Not for

    • Tasks that require unconfirmed production actions or broad system permissions.
    • Environments where the pinned source and install steps cannot be inspected.

    Compatibility matrix

    Platform support, with evidence labels

    PlatformStatusEvidenceWhat to check
    CodexNot declaredNo explicit evidencePortability before use
    Claude CodeNot declaredNo explicit evidencePortability before use
    CursorNot declaredNo explicit evidencePortability before use
    Gemini CLINot declaredNo explicit evidencePortability before use
    Open the compatibility checker

    Installation

    Inspect first. Install second.

    The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

    Source-detected install commandSource
    npx skills add https://github.com/WYRE-AI/msp-claude-plugins --skill "msp-claude-plugins/ironscales/ironscales/skills/api-patterns"
    Safe inspection promptEditorial

    Inspect the Agent Skill "IRONSCALES API Patterns" from https://github.com/WYRE-AI/msp-claude-plugins/blob/5005f73ba2f52cd299f58aa6bb79f4e70ae87103/msp-claude-plugins/ironscales/ironscales/skills/api-patterns/SKILL.md at commit 5005f73ba2f52cd299f58aa6bb79f4e70ae87103. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

    Workflow

    What the source asks the agent to do

    1. 01

      Connection & Authentication

      Ironscales uses a static API key combined with a company ID for authentication. The MCP Gateway injects these via headers on every upstream call to https://appapi.ironscales.com:

      Ironscales uses a static API key combined with a company ID for authentication. The MCP Gateway injects these via headers on every upstream call to https://appapi.ironscales.com:Generate credentials at: Ironscales Platform Settings APIEnvironment Variables (self-hosted):
    2. 02

      API Key + Company ID

      Ironscales uses a static API key combined with a company ID for authentication. The MCP Gateway injects these via headers on every upstream call to https://appapi.ironscales.com:

      Ironscales uses a static API key combined with a company ID for authentication. The MCP Gateway injects these via headers on every upstream call to https://appapi.ironscales.com:Generate credentials at: Ironscales Platform Settings APIEnvironment Variables (self-hosted):
    3. 03

      Available MCP Tools

      This server registers nine tools and no others. Anything not in these tables does not exist.

      This server registers nine tools and no others. Anything not in these tables does not exist.The server uses progressive disclosure: it advertises the navigation tools first, and the domain tools become visible once you navigate.ironscalesemailclassify does not classify an incident. It POSTs a raw email you assemble (sender required; subject, bodies, headers, URLs, and attachment metadata optional) to /api/v1/email/classify and returns a verdic…
    4. 04

      Navigation

      The server uses progressive disclosure: it advertises the navigation tools first, and the domain tools become visible once you navigate.

      The server uses progressive disclosure: it advertises the navigation tools first, and the domain tools become visible once you navigate.
    5. 05

      Incidents

      Review the “Incidents” section in the pinned source before continuing.

      Review and apply the “Incidents” source section.

    Permission review

    Static risk signals and limitations

    No configured static risk pattern was detected

    This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.

    Evidence record

    Why each signal appears

    EvidenceSourceComputedTestedEditorial
    SignalValueEvidence typeMeaning
    Quality score91/100ComputedDocumentation, specificity, maintenance, and trust rules
    Repository stars42SourceRepository attention, not individual Skill quality
    Compatibility0 platformsSourceDeclared in the catalog source record
    Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

    Pinned source

    Provenance and original SKILL.md

    Repository
    WYRE-AI/msp-claude-plugins
    Skill path
    msp-claude-plugins/ironscales/ironscales/skills/api-patterns/SKILL.md
    Commit
    5005f73ba2f52cd299f58aa6bb79f4e70ae87103
    License
    Apache-2.0
    Collected
    2026-08-28
    Default branch
    main
    View the original SKILL.md

    Ironscales MCP Tools & API Patterns

    Overview

    The Ironscales MCP server provides AI tool integration with the Ironscales anti-phishing platform. It exposes tools for listing and investigating phishing incidents, asking Ironscales' AI to classify a raw email, taking remediation actions against delivered mail, managing sender allowlists, and reading company-wide phishing statistics. Authentication uses an API key and company ID passed as request headers.

    Connection & Authentication

    API Key + Company ID

    Ironscales uses a static API key combined with a company ID for authentication. The MCP Gateway injects these via headers on every upstream call to https://appapi.ironscales.com:

    HeaderDescription
    X-IronScales-API-KeyYour Ironscales API key
    X-IronScales-Company-IDYour Ironscales company (tenant) ID

    Generate credentials at: Ironscales Platform > Settings > API

    Environment Variables (self-hosted):

    export IRONSCALES_API_KEY="your-api-key"
    export IRONSCALES_COMPANY_ID="your-company-id"
    

    The Company ID scopes all API requests to a specific tenant. MSPs managing multiple clients require a separate API key and company ID per client. There is no cross-tenant query.

    Requests carry a 30-second timeout.

    Available MCP Tools

    This server registers nine tools and no others. Anything not in these tables does not exist.

    Navigation

    The server uses progressive disclosure: it advertises the navigation tools first, and the domain tools become visible once you navigate.

    ToolDescription
    ironscales_navigateMove to a domain: incidents, email, remediation, stats, allowlist
    ironscales_statusCheck API connection status and list available domains
    ironscales_backReturn to the domain navigation menu

    Incidents

    ToolDescription
    ironscales_incidents_listList phishing incidents, filtered by status and/or severity
    ironscales_incidents_getGet one incident in full by incident_id

    Email Classification

    ToolDescription
    ironscales_email_classifySubmit a raw email to Ironscales AI and get a verdict back. Stateless — see below

    Remediation

    ToolDescription
    ironscales_remediation_actTake one of five remediation actions against an incident's mail

    Statistics & Reporting

    ToolDescription
    ironscales_stats_companyCompany-wide phishing statistics for a period of 7d/30d/90d/1y

    Allowlist Management

    ToolDescription
    ironscales_allowlist_manageadd, remove, or list allowlist entries typed email/domain/ip

    The one tool whose name misleads

    ironscales_email_classify does not classify an incident. It POSTs a raw email you assemble (sender required; subject, bodies, headers, URLs, and attachment metadata optional) to /api/v1/email/classify and returns a verdict. It takes no incident ID, writes nothing, and changes no state. The only tool on this server that changes incident state is ironscales_remediation_act.

    Pagination

    ironscales_incidents_list uses offset-based pagination.

    • Pass offset (default 0) and limit (default 50, max 100).
    • The tool response does not carry a total count. The server unwraps the vendor's list and returns only the records plus the offset and limit you asked for.

    Example tool response shape:

    {
      "incidents": [ ... ],
      "offset": 0,
      "limit": 50
    }
    

    Pagination workflow:

    1. Call with offset=0 and limit=50.
    2. If the returned incidents array is exactly limit long, there may be more — call again with offset=50.
    3. Stop when a page returns fewer than limit records. Do not try to compute the number of pages up front; you have no total to compute it from.

    Narrow with status and severity before paging. Those two are the only filters ironscales_incidents_list accepts — there is no source parameter, so a user-reported-versus-AI-detected split has to be partitioned client-side from the records you get back.

    Rate Limiting

    Ironscales enforces per-endpoint rate limits.

    • HTTP 429 responses indicate rate limiting.
    • Use exponential backoff before retrying.
    • Use status and severity filters to limit result volumes.
    • Avoid unnecessary polling.

    Error Handling

    Upstream HTTP failures do not reach you as a JSON error body. The server raises them as tool errors whose message is prefixed by category, with the vendor's message field appended when present.

    StatusMessage you will seeResolution
    400Ironscales API error (HTTP 400): …Check required parameters and enum values — status, severity, action, operation, entry_type, period
    401Ironscales authentication failed: …Verify API key and company ID
    403Ironscales access forbidden: …API key lacks permissions for this operation
    404Ironscales resource not found: …Incident ID or resource does not exist
    429Ironscales rate limit exceeded: …Wait and retry with exponential backoff
    5xxIronscales API error (HTTP 5xx): …Retry; contact Ironscales support if persistent

    Two failures are raised by the server itself before any HTTP call:

    • Ironscales credentials not configured… — neither gateway-scoped nor environment credentials were available.
    • entry_type and value are required for add/remove operations.ironscales_allowlist_manage was called with operation=add or operation=remove and no entry.

    A 400 that reads like a rejected enum is usually a value that does not exist. There is no resolved status, no source filter, no block_domain or allowlist_sender remediation action.

    Best Practices

    • Filter with status and severity rather than pulling the whole queue; they are the only server-side filters available.
    • Page until a short page rather than until a total — no total is returned.
    • Verify incident status with ironscales_incidents_list before remediating. A closed incident rejects remediation with an error that reads like a permissions failure.
    • Treat ironscales_incidents_get output as vendor pass-through. Only id, subject, status, severity, sender, created_at, recipients[], recipient_count, and threat_indicators[] are read and normalised by this server; verify anything else is present before branching on it.
    • Check ironscales_stats_company weekly to track phishing trends. Its payload is vendor pass-through too — inspect the response before writing logic against a field name.

    Related Skills

    • incidents - Incident lifecycle, remediation, and allowlist management

    Frequently asked questions

    What to verify before installation and use

    What does the IRONSCALES API Patterns source document cover?

    Ironscales MCP fundamentals: API-key plus company-ID header authentication and the per-tenant scoping that follows from it, the nine tools this server registers and what each one actually changes, offset/limit pagination without a total count, rate-limit behavior, and how API failures surface to the model.

    How do I install IRONSCALES API Patterns?

    The source record exposes this install command: npx skills add https://github.com/WYRE-AI/msp-claude-plugins --skill "msp-claude-plugins/ironscales/ironscales/skills/api-patterns". Inspect the command and pinned source before running it.

    Alternatives

    Compare before choosing

    Computed 10045,960

    coreyhaines31/marketingskills

    ab-testing

    When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program

    Computed 10029,236

    garrytan/gbrain

    bulk-ingestion

    End-to-end discipline for turning any large data source (audio libraries, email takeouts, document corpora, chat exports, API dumps) into brain pages at scale. The lifecycle spine: SCHEMA → ACCESS → TRIAL → EVALUATE → IMPROVE → CODIFY → TEST → SKILLIFY → BULK → MONITOR. State is tracked in a durable JSON manifest (see MANIFEST-PATTERN.md) so any crash, session boundary, or subagent fan-out resumes from ground truth instead of memory.

    Computed 10025,136

    alirezarezvani/claude-skills

    app-store-optimization

    App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklist

    Computed 1005,277

    dotnet/skills

    migrate-vstest-to-mtp

    Migrates .NET test projects from VSTest to Microsoft.Testing.Platform (MTP). Use when user asks to "migrate to MTP", "switch from VSTest", "enable Microsoft.Testing.Platform", "use MTP runner", set OutputType=Exe only for test projects in Directory.Build.props, or mentions EnableMSTestRunner, EnableNUnitRunner, or UseMicrosoftTestingPlatformRunner. USE FOR: MTP behavioral differences vs VSTest (exit code 8, zero tests discovered, --ignore-exit-code, TESTINGPLATFORM_EXITCODE_IGNORE); centralizing