/ Directory / Playground / cti-expert
● Community 7onez ⚡ Instant

cti-expert

by 7onez · 7onez/cti-expert

Defensive CTI + OSINT analysis skill for Claude Code — 67+ commands and 35 techniques, no API keys required.

cti-expert turns Claude Code into a junior cyber threat intelligence analyst: it enumerates analytic techniques (ACH, SATs, diamond model, kill-chain mapping), pulls OSINT from public sources, and writes up findings in structured formats (STIX-flavored, MITRE ATT&CK-aligned). It is a defensive skill — it does not include offensive or exploit tooling.

Why use it

Key features

Live Demo

What it looks like in practice

cti-expert-skill.replay ▶ ready
0/0

Install

Pick your client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "cti-expert-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/7onez/cti-expert",
        "~/.claude/skills/cti-expert"
      ],
      "_inferred": true
    }
  }
}

Open Claude Desktop → Settings → Developer → Edit Config. Restart after saving.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "cti-expert-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/7onez/cti-expert",
        "~/.claude/skills/cti-expert"
      ],
      "_inferred": true
    }
  }
}

Cursor uses the same mcpServers schema as Claude Desktop. Project config wins over global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "cti-expert-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/7onez/cti-expert",
        "~/.claude/skills/cti-expert"
      ],
      "_inferred": true
    }
  }
}

Click the MCP Servers icon in the Cline sidebar, then "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "cti-expert-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/7onez/cti-expert",
        "~/.claude/skills/cti-expert"
      ],
      "_inferred": true
    }
  }
}

Same shape as Claude Desktop. Restart Windsurf to pick up changes.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "cti-expert-skill",
      "command": "git",
      "args": [
        "clone",
        "https://github.com/7onez/cti-expert",
        "~/.claude/skills/cti-expert"
      ]
    }
  ]
}

Continue uses an array of server objects rather than a map.

~/.config/zed/settings.json
{
  "context_servers": {
    "cti-expert-skill": {
      "command": {
        "path": "git",
        "args": [
          "clone",
          "https://github.com/7onez/cti-expert",
          "~/.claude/skills/cti-expert"
        ]
      }
    }
  }
}

Add to context_servers. Zed hot-reloads on save.

claude mcp add cti-expert-skill -- git clone https://github.com/7onez/cti-expert ~/.claude/skills/cti-expert

One-liner. Verify with claude mcp list. Remove with claude mcp remove.

Use Cases

Real-world ways to use cti-expert

How to enrich a suspicious indicator (IP, domain, hash) with public OSINT

👤 SOC analysts, incident responders, blue-team engineers ⏱ ~15 min intermediate

When to use: You have an IOC from an alert and need context before escalating.

Prerequisites
  • Skill cloned — git clone https://github.com/7onez/cti-expert ~/.claude/skills/cti-expert
Flow
  1. Submit the indicator
    Enrich 185.234.218.95 using public OSINT — WHOIS, passive DNS (free sources), reputation feeds.✓ Copied
    → Structured context: ASN, geo, historical resolutions, known bad
  2. Map to MITRE ATT&CK if applicable
    If this matches a known campaign, map to ATT&CK tactics/techniques.✓ Copied
    → TTP list with ATT&CK IDs
  3. Write up
    Produce a tactical report: what it is, confidence level, recommended actions.✓ Copied
    → Short, decision-oriented write-up

Outcome: A defensible enrichment you can attach to a ticket in minutes.

Pitfalls
  • Treating reputation scores as ground truth — Record the source + date; note confidence explicitly
  • OSINT queries accidentally tip off the target — Only use passive sources; no active scanning
Combine with: filesystem

Draft a campaign write-up from a handful of artifacts

👤 CTI analysts producing internal reports ⏱ ~45 min advanced

When to use: You've been asked to turn a pile of IOCs, TTPs, and notes into a readable brief.

Flow
  1. Collate the artifacts
    Here are the IOCs and notes. Cluster them by diamond-model facet (adversary, capability, infra, victim).✓ Copied
    → Diamond-model-shaped clustering
  2. Map to ATT&CK
    Map observed behaviors to ATT&CK; note coverage gaps.✓ Copied
    → Coverage matrix
  3. Write the brief
    Produce an executive section, a tactical section, and an IOC appendix.✓ Copied
    → 3-part report

Outcome: A consistent, audience-tiered report ready for review.

Pitfalls
  • Inflating confidence language ('almost certainly') — Force IC-style qualifiers (high/moderate/low) with reasoning

Run an ACH (Analysis of Competing Hypotheses) walk-through

👤 Analysts wrestling with ambiguous attribution ⏱ ~30 min advanced

When to use: Multiple actors could explain the evidence; you want structure before picking one.

Flow
  1. List hypotheses + evidence
    Hypotheses: H1, H2, H3. Evidence: E1–E10. Set up the ACH matrix.✓ Copied
    → Matrix with consistency marks per cell
  2. Identify diagnostic evidence
    Which evidence items have the highest diagnostic value?✓ Copied
    → Evidence ranked by ability to discriminate
  3. Report the least-inconsistent hypothesis
    Pick the least-inconsistent hypothesis and list what would flip it.✓ Copied
    → Selection + counter-evidence triggers

Outcome: A transparent attribution decision with documented reasoning.

Pitfalls
  • Anchoring on the first hypothesis — Force the matrix first, conclusion last

Combinations

Pair with other MCPs for X10 leverage

cti-expert-skill + filesystem

Process a directory of raw alerts into structured findings

Enrich every IOC under alerts/2025-04-01/ and produce a consolidated daily tactical report.✓ Copied

Tools

What this MCP exposes

ToolInputsWhen to callCost
indicator-enrichment IOC (IP/domain/hash/URL) Triage of any incoming indicator free OSINT queries
attck-mapping observed behaviors When writing up campaigns or detections 0
structured-analytic-techniques hypotheses + evidence Ambiguous analysis problems 0
report-templates findings Final reporting step 0

Cost & Limits

What this costs to run

API quota
depends on the OSINT sources used; all default sources are free-tier
Tokens per call
2–10k tokens per indicator workflow
Monetary
free
Tip
Start with passive sources only; add paid feeds only if coverage gaps justify it

Security

Permissions, secrets, blast radius

Credential storage: none by default; any paid feed API key lives in env vars
Data egress: only the OSINT endpoints you allow-list

Troubleshooting

Common errors and fixes

Rate limited by a public source

Throttle or switch to an alternate source — many OSINT endpoints are sensitive

Claude hallucinates an enrichment result

Require citations for every claim; reject unsourced enrichment

ATT&CK mapping is too generic

Provide concrete behaviors (processes, commands, network patterns), not high-level summaries

Alternatives

cti-expert vs others

AlternativeWhen to use it insteadTradeoff
claude-cybersecurity-skillYou want broader security skills, not just CTIWider but shallower in CTI specifics
claude-security-research-skillYou're researching vulnerabilities rather than triaging indicatorsDifferent job entirely

More

Resources

📖 Read the official README on GitHub

🐙 Browse open issues

🔍 Browse all 400+ MCP servers and Skills