SecOps Field Notes

io.github.getlarkwrightPublished by GitHub account getlarkwrightv0.1.1Updated Nov 7, 2026

CVSS scoring, IOC extraction, email header triage, hash/JWT/timestamp decoding, CISA KEV lookup.

VerifiedSTDIODesktop onlyDeveloper ToolsSecurity & Monitoring

Overview

AI-generated overview

Local MCP server giving an assistant security-triage tools: CVSS scoring, IOC extraction and defanging, email header analysis, hash/JWT/timestamp decoding and…

What you can do
  • Score CVSS 3.1 vectors or metrics and extract, refang and defang IPs, domains, URLs, emails, CVE ids and hashes from text
  • Analyze raw email headers: Received chain order and hop delays, origin IP, SPF/DKIM/DMARC verdicts and mismatch warnings
  • Identify hash types by shape and decode JWTs into header, payload and readable times
  • Convert timestamps between epoch, FILETIME, ISO 8601 and RFC 2822, and peel chained base64/hex/URL/HTML-entity/ROT13 layers
  • Check whether a CVE is on CISA's exploited-in-the-wild list and read the latest field note
When to use it
Useful for incident triage, phishing analysis and vulnerability write-ups where an analyst repeatedly scores CVEs, pulls indicators out of reports, inspects email headers or decodes tokens and timestamps. It is a local helper for the work done before and after enrichment services, not a replacement for them.
Requirements
Runs as a local process over stdio, via npx (Node 18 or newer) or the published Docker image. No account, API key, environment variable or header is needed. Only the KEV lookup and the latest field note make network calls; everything else works offline.
Before you install
Inputs are text you paste in, so email headers, tokens and indicators are sent to the assistant and, for KEV and field-note lookups, requests go to CISA and an RSS feed. JWT signatures are not verified, so decoded claims should not be trusted as authentic. It performs no enrichment lookups and does not read your disk.

Installation

In SourceWeft

  1. Open SecOps Field Notes in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

secops-field-notes-mcp

The things a security analyst does by hand a dozen times a shift, as tools your coding agent can call: score a CVE, pull the indicators out of a report and defang them for the ticket, read a phishing email's headers properly, work out what kind of hash that is, decode a JWT, turn a timestamp into something a human can read, peel a base64-of-hex payload, and check whether a CVE is on CISA's exploited-in-the-wild list.

Free, MIT, no account, no telemetry. Everything except the KEV lookup runs entirely on your machine.

Install

Pin the version.

Claude Code

claude mcp add secops-field-notes -- npx -y github:getlarkwright/secops-field-notes-mcp#v0.1.1

Claude Desktop, Cursor, or any client with a JSON config

json
{  "mcpServers": {    "secops-field-notes": {      "command": "npx",      "args": ["-y", "github:getlarkwright/secops-field-notes-mcp#v0.1.1"]    }  }}

Docker

json
{  "mcpServers": {    "secops-field-notes": {      "command": "docker",      "args": ["run", "-i", "--rm", "ghcr.io/getlarkwright/secops-field-notes-mcp:0.1.1"]    }  }}

Node 18 or newer for the npx route. Also in the official MCP registry as io.github.getlarkwright/secops-field-notes-mcp.

Tools

ToolWhat it answersNetwork
cvss_scoreCVSS 3.1 base score from a vector or the eight metrics, exactly as FIRST computes itnone
extract_iocsEvery IP, domain, URL, email, CVE id and hash in a blob of text — refanged on the way in, defanged on the way outnone
defang_texthxxp[://], [.], [at] and backnone
analyze_email_headersThe Received chain in order with hop delays, the origin IP, SPF/DKIM/DMARC, and the mismatches phishing triage looks fornone
identify_hashbcrypt, Argon2, yescrypt, Unix crypt, LM:NT, MD5/NTLM, SHA-1/224/256/384/512 — by shape, with what that impliesnone
decode_jwtHeader, payload, times as dates; flags alg:none, expiry, tokens that never expirenone
convert_timestampEpoch s/ms/µs, Windows FILETIME, ISO 8601, RFC 2822 — into every formnone
decode_layersChain base64 / hex / URL / HTML-entity / ROT13 decoding and see each layernone
lookup_kevIs this CVE exploited in the wild — CISA KEV date added, due date, ransomware use, required actionCISA feed, cached 1h
latest_field_noteWhat got exploited this weekRSS

analyze_email_headers

Paste the raw source. It unfolds the headers, reads the Received lines in chronological order (they are stored newest-first), computes the delay at each hop, finds the first public IP in the chain, reads the authentication verdicts, and then says what a triage analyst would say:

From        "IT Helpdesk" <[email protected]>Reply-To    [email protected]Auth        SPF pass · DKIM pass · DMARC failOrigin IP   192.0.2.44
Received chain (origin first, 3 hops):   1. [10.0.0.5] [192.0.2.44] → relay.example-news.com  2026-09-05 13:59:50Z   2. relay.example-news.com [198.51.100.9] → mx3.corp.example  2026-09-05 14:00:15Z  +25s   3. mx3.corp.example [203.0.113.30] → inbox.corp.example  2026-09-05 14:00:20Z  +5s
Warnings:  ! From domain (corp.example) ≠ Return-Path domain (mailer.example-news.com) …  ! Reply-To goes to a different domain (evil-mail.example) than From (corp.example) — classic BEC pattern.  ! DMARC verdict: fail.

cvss_score

The arithmetic is the FIRST specification's, including the Roundup function done in integer arithmetic so floating-point noise never pushes a 4.0 to a 4.1. Log4Shell's vector scores 10.0; AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H scores 9.8. Both are in the test suite.

What it does not do

  • No account, no signup, no key. No telemetry.
  • Nothing is read from your disk; every input is text you pass in.
  • No verification of JWT signatures — it decodes, and says so on every result.
  • One network call in the package: lookup_kev fetches CISA's public catalog (about 1.7 MB) and keeps it for an hour. Everything else never opens a socket.
  • It does not query VirusTotal, AbuseIPDB or any enrichment service. Those need keys and accounts; this server is for the work you do before and after them.

Licence

MIT © Larkwright LLC. Written by James Son — network, security, and automation engineer. The logic is the same as the free Field Kit desktop app's security tools, so the two stay in step. Corrections welcome.

Source: README.md at commit ec9e614

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.1LatestNov 7, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts