AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Lookup Misp

skill-liberty91ltd-cti-skills-lookup-misp · by Liberty91LTD

Use when you need to query a MISP instance for existing events/attributes/objects, or push new intel into MISP — adding attributes to an event, creating an event, or uploading a STIX 2 bundle as one or more events. Two-way integration. Commonly invoked by /ip-investigation and friends to check whether an indicator is already known to your CTI sharing community, and by analytical skills that want…

— No reviews yet
0 installs
39 views
0.0% view→install

Install

$ agentstack add skill-liberty91ltd-cti-skills-lookup-misp

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • ✓ Prompt-injection patterns
  • ✓ Secret / credential exfiltration
  • ✓ Dangerous shell & filesystem operations
  • ✓ Untrusted network calls
  • ✓ Known-malicious package signatures

What it can access

  • ✓ Network access No
  • ✓ Filesystem access No
  • ✓ Shell / process execution No
  • ✓ Environment & secrets No
  • ✓ Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-liberty91ltd-cti-skills-lookup-misp)

Reliability & compatibility

✓ Security review passed
0 installs to date
— no reviews yet
● 2mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Lookup Misp? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

lookup-misp

Two-way bridge to a MISP threat-intelligence platform. Unlike the other lookup-* skills, this one also writes — it can create events, add attributes, tag events, and import STIX 2 bundles. Treat write commands as deliberate actions; don't use them in autonomous enrichment loops.

When to invoke

Read:

  • An indicator was found by another lookup (VT, OTX, …) — check whether MISP already has it
  • An analyst wants the most recent published events for a threat actor or campaign
  • You need to export a slice of MISP as a STIX 2 bundle for sharing

Write:

  • A finished investigation produced indicators that should be shared with the community
  • An existing event needs to be enriched with newly observed attributes
  • A STIX 2 bundle written via /stix-bundle should be pushed into MISP as event(s)

Do NOT invoke for:

  • Bulk enrichment (use VT/OTX first; only push the high-confidence subset to MISP)
  • Pivoting on raw indicators — MISP is a curated dataset, not a scanning service. Use Shodan/Censys for that.

How to invoke

Single Python CLI (stdlib only — no install).

Read operations

# Search published events containing a value, optionally filtered by tag/date/published
python3 tools/clis/misp.py search-events --value 1.2.3.4 --tag tlp:white --limit 20
python3 tools/clis/misp.py search-events --tag misp-galaxy:threat-actor=\"APT28\" --from 2026-01-01

# Search attributes (the most common indicator lookup)
python3 tools/clis/misp.py search-attributes --type ip-dst --value 1.2.3.4
python3 tools/clis/misp.py search-attributes --type sha256 --value  --limit 5

# Inspect a single event (full attribute + object detail)
python3 tools/clis/misp.py get-event 12345

# Search objects within an event
python3 tools/clis/misp.py search-objects --event-id 12345 --name file

# Resolve tag names → ids (needed before applying tags)
python3 tools/clis/misp.py list-tags --search tlp

# Export a search result as a STIX 2 bundle (cross-platform sharing)
python3 tools/clis/misp.py search-events --tag malware-family:lockbit --returnFormat stix2 > out.json

Write operations

# Add one attribute to an existing event
python3 tools/clis/misp.py add-attribute 12345 \
  --type ip-dst --value 185.220.101.45 \
  --category 'Network activity' \
  --comment 'C2 observed 2026-04-25' \
  --to-ids true \
  --distribution 1 \
  --tags 'tlp:amber,kill-chain:command-and-control'

# Create a new event (skeleton — add attributes/objects after)
python3 tools/clis/misp.py create-event \
  --info 'APT28 C2 cluster — April 2026' \
  --threat-level 2 --analysis 1 \
  --distribution 1 \
  --tags 'tlp:amber,misp-galaxy:threat-actor="APT28"'

# Upload a STIX 2 bundle as one or more events (the canonical bulk-import path)
python3 tools/clis/misp.py upload-stix data/stix-bundles/2026-04-26-apt28-c2.json \
  --publish --galaxies-as-tags --force-contextual-data

# Tag an existing event (resolves tag name → id automatically)
python3 tools/clis/misp.py tag-event 12345 'tlp:amber'

# Publish an event (makes it visible to other orgs at the chosen distribution)
python3 tools/clis/misp.py publish-event 12345

All commands accept --dry-run (preview the HTTP call without sending) and --insecure (skip TLS verification, common on internal MISP deployments).

The CLI exits 2 if MISP_URL or MISP_API_KEY is unset (when not in dry-run). Report missing credentials; do not fabricate.

Distribution levels

--distribution N on add-attribute and create-event:

| N | Meaning | Use when | |---|---|---| | 0 | Your org only | Drafting, unverified, sensitive sources | | 1 | This community | Published intel for your MISP server's users | | 2 | Connected communities | Trusted federated sharing | | 3 | All communities | Open community sharing | | 4 | Sharing group | Named-partner sharing (needs sharing-group id) | | 5 | Inherit event | Attributes that should track their parent event |

Default to 0 while drafting. Bump to 1+ only after review and TLP alignment.

STIX 2 round-tripping

This is the killer feature. The pack already writes STIX 2.1 bundles via /stix-bundle; upload-stix pushes them into MISP intact:

  1. Run an investigation (e.g. /ip-investigation)
  2. Build a STIX bundle from the findings (/stix-bundle)
  3. Apply TLP + Admiralty (/apply-tlp, /score-source)
  4. python3 tools/clis/misp.py upload-stix --galaxies-as-tags
  5. Review in MISP → add context → publish

For exporting MISP → STIX, set --returnFormat stix2 on search-events.

Gotcha: MISP's STIX 2 importer rejects inline TLP marking-definition objects (the STIX 2.0 definition_type: "tlp" shape that /stix-bundle produces). Either drop the marking-definition from the bundle and apply TLP via tag-event after import, or trim the bundle to references only. See tools/integrations/misp.md for details.

Response format

Read commands return:

source: misp
operation: search-events | search-attributes | get-event | ...
query_time: 
filters: 
count: 
events|attributes|objects: []
raw: 

Write commands return:

source: misp
operation: add-attribute | create-event | upload-stix | ...
query_time: 
event_id|event|attribute: 
result|raw: 

Source reliability (Admiralty default)

Default rating for downstream /score-source: B2 (usually reliable, probably true). MISP is a sharing platform — the underlying org's reliability matters more than MISP itself. Adjust based on the event's Org/Orgc:

  • Sector CSIRT or national CERT (CIRCL, FIRST, ISAC) → A1
  • Reputable vendor (Mandiant, CrowdStrike, ESET) → A2 / B2
  • Anonymous community contributor → C3
  • Your own org (self-hosted) → A1 — primary source

Read the event tags too: admiralty-scale:source-reliability="b" and admiralty-scale:information-credibility="2" are common.

Operational notes

  • Distribution is sticky. Once a published event syncs to other servers, it can't be recalled. Default to draft (0) and review before publishing.
  • Tagging matters. TLP, kill-chain, and galaxy tags drive how MISP routes events to subscribers. Don't skip them.
  • PyMISP exists — for complex workflows (sightings, warninglists, feed management) the PyMISP library is the right tool. This CLI covers the 80% case for query + write, stdlib-only.
  • Don't autopublish. --publish on upload-stix is convenient but bypasses the human review step. Skip it for intel you haven't manually validated.

Related skills

  • /stix-bundle — write STIX 2.1 bundles that this CLI's upload-stix consumes
  • /lookup-virustotal, /lookup-otx — community reputation lookups; chain before pushing to MISP
  • /score-source — apply Admiralty rating before publishing
  • /apply-tlp — set TLP markings before publishing
  • /intelligence-sharing — broader sharing-model context (TAXII, ISACs, MISP communities)
  • /lookup-opencti — the knowledge-base sibling; MISP = community exchange, OpenCTI = internal knowledge graph
  • /ip-investigation, /domain-investigation, /hash-investigation, /url-investigation — produce findings that MISP write commands consume

See also

  • Integration setup: tools/integrations/misp.md
  • Python CLI source: tools/clis/misp.py
  • MISP project: https://www.misp-project.org/
  • OpenAPI reference: https://www.misp-project.org/openapi/
  • PyMISP (full SDK, when this CLI isn't enough): https://github.com/MISP/PyMISP
  • Tag taxonomies: https://github.com/MISP/misp-taxonomies
  • Galaxy clusters: https://github.com/MISP/misp-galaxy

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.