DugganUSA CLI — Local STDIO MCP
io.github.pduggusaPublished by GitHub account pduggusav1.3.4Updated Oct 24, 2026
Local STDIO MCP for DugganUSA threat intel. 1.13M IOCs. Read-only. npm: dugganusa-cli.
Overview
A local read-only MCP server that lets an assistant search DugganUSA threat-intel indicators, enrich IPs, and summarize STIX feeds.
- What you can do
- Runs as a local STDIO MCP server exposing three read-only tools: search across IOCs, pulses, blog, adversaries, CISA KEV and roughly 70 indexes; enrich-ioc for IP details such as country, ASN, threat type, malware family and cross-index correlations; and stix-feed-summary for index stats and pointers to STIX 2.1 / TAXII 2.1 feeds. The README states there are no tools that write, touch the filesystem, or exec. An optional --dredd-gate flag pre-flights tool calls and logs allowed calls to stderr.
- When to use it
- Use it when an assistant needs to check whether an IP, domain, CVE or package is a known threat indicator, or to pull threat-intel context during security work. It is aimed at analysts and developers who want the corpus available in an MCP client such as Claude Desktop, Cursor or Claude Code.
- Requirements
- Node.js with npx, since it runs locally via npx -y -p dugganusa-cli dugganusa-mcp. Network access to the provider's analytics endpoint. An optional DUGGANUSA_API_KEY raises rate limits; the README says the free tier is a free registered key rather than anonymous access, with 500 queries per day.
Installation
In SourceWeft
- Open DugganUSA CLI — Local STDIO MCP in the dashboard and add it to a workspace.
- 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
dugganusa-cli
Docs: https://docs.dugganusa.com/quickstart/
You do you. I do me. We share contexts.
Your terminal and your agent keep their own context; the DugganUSA Feed lends them its context, read-only, from a binary you own.
Two binaries. One install. Threat intelligence you can check. Corpus size: live counts.
What's New (v1.5.1)
- Supply-chain scanning leveled up. The corpus now ingests OSV malicious-package feeds for both npm and PyPI — named-malicious packages, zero-heuristic, daily — alongside daily GitHub Hunt detections of malware-staging repos and install-time execution signatures. Pipe a lockfile or
--file package.jsonand known-bad packages surface next to network IOCs. This is the CI angle: catch a poisoned dependency before it ships. - Four live, no-auth, deploy-durable validation endpoints now prove feed quality:
- Novelty — feed-uniqueness: how much of what we publish adds to ThreatFox, which we also carry and credit (measured live).
- Timeliness — kev-lead: when an exploited CVE reached our corpus relative to CISA KEV, including same-day and no-receipt cases.
- Accuracy — spamhaus-validation: Spamhaus independently checks our first-hand contributions.
- Liveness — feed-efficacy: opt-in consumer reports of when our indicators actually fire on real traffic — proof the feed is operationally live, not just large.
A two-person Minnesota LLC. Most of what is in the corpus comes from other people's good work: abuse.ch, Spamhaus, CISA, OSV and the researchers we cite by name. We join it with our own GitHub hunting and edge sensors, correlate it, and hand it back with the source attached.
What it asks of you: nothing you cannot read. No agent to install, no inbound access, none of your data leaves your machine except the indicators you look up. Keep every tool you already use; this adds a second opinion beside them.
Bin rename (since v1.3.0): the scanner bin was
dugganusa-lookupin v1.2.0. It is nowdugganusa-cli. The olddugganusa-lookuppackage is dead — usedugganusa-cli. The MCP bin (dugganusa-mcp) is unchanged. Update any pinned scripts.
Install
Scanner usage
Output
The full-enrichment (correlate) link is key-gated (free key required).
Exit codes
Exit 1 on match is the whole point. Block deployments containing known-bad indicators before they ship.
CI/CD examples
API key
The STIX feed is API-key-enforced: anonymous requests and unregistered keys get 401; a registered key past its daily limit gets 429. The free tier is a free registered key — not anonymous. Register here: analytics.dugganusa.com/stix/register
Free tier: 10 queries/day (pricing). Set the key via --key flag or DUGGANUSA_API_KEY env var.
What's in the index
Indicators sourced from external feeds (abuse.ch SSLBL, URLhaus, Spamhaus, CISA KEV, OSV malicious-package feeds for npm + PyPI, and more), plus DugganUSA original research, our exploit harvester, daily GitHub Hunt detections, and our edge honeypots. Cross-correlated across the whole corpus (live counts).
Same corpus, your terminal.
MCP server (dugganusa-mcp)
Local STDIO MCP server. Wire it into any MCP client, your AI assistant gets the DugganUSA threat-intel corpus as read-only tools.
A small MCP server you can read end to end, so adding it to your agent costs you very little trust.
Three tools, that's it
- search — full-text across IOCs, blog, adversaries, CISA KEV and the rest of the corpus (live counts).
- enrich-ioc — IP enrichment: country, ASN, threat type, malware family, cross-index correlations.
- stix-feed-summary — index stats + pointers to our STIX 2.1 / TAXII 2.1 feeds.
No tools that write. No tools that touch your filesystem. No tools that exec. Read-only, all the way down.
Wire it into Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
Restart Claude Desktop. Three tools appear in the picker. Same pattern works for Cursor, Windsurf, Claude Code, or any MCP client that speaks STDIO.
Local policy enforcement: --dredd-gate
Pre-flights every tool call: validates tool name, required arguments, logs allowed calls to stderr. Read the verdict function in mcp/lib/serve.js (function dreddVerdict). This is the hook where you wire stricter policy: deny lists, IP allow-lists, per-tool rate limits, or a remote dredd verdict endpoint.
Default is off. Turn it on if your environment is anything more than your laptop.
Why this MCP exists
A STDIO MCP server runs on your machine with your permissions, so the question to ask of any of them, ours included, is how much you have to trust it. We tried to make the answer "very little":
- Read-only tool surface only — no write, no exec
- No third-party MCP SDK dependency (every line is in this repo)
- Customer owns the binary, runs it locally, sees every request before it leaves the machine
- Optional
--dredd-gatelocal policy hook - Zero npm runtime dependencies
This is that MCP.
Auditing the binary
Read the bytes you're running:
Should return nothing.
Source layout under mcp/:
mcp/serve.js— bin entry, argv parser (~45 LOC)mcp/lib/serve.js— JSON-RPC 2.0 over STDIO (~125 LOC)mcp/lib/tools.js— three tool schemas + handlers (~80 LOC)mcp/lib/upstream.js— HTTPS request to analytics.dugganusa.com (~40 LOC)
Tests:
10 tests covering the dispatch surface and live network calls. Every release runs them in CI before publishing.
Provenance
Releases ≥ v1.3.0 are published via npm Trusted Publishing (GitHub Actions OIDC) with --provenance. Verify:
You get signed attestation that the published bytes came from a specific commit in a specific GitHub workflow run. No long-lived tokens involved.
Checking our work
We get things wrong and say so in public: corrections are dated and kept next to the original claim at dugganusa.com. Every verdict carries the source it came from, so you can check it against that source instead of taking our word. If something here is wrong, open an issue; that is the most useful thing you can send us.
Part of the DugganUSA ecosystem
- VS Code Extension
- DugganUSA Feed
- AIPM — AI Presence Management: what AIs say about you
- dugganusa.com — research, methodology, receipts
License
MIT — DugganUSA LLC, Minnesota. Contact: [email protected].
Free tier means free. Audit it. Fork it. Tell us when we got something wrong.
DugganUSA Defender Family
Same DugganUSA Feed, surfaced wherever you live. Open source, MIT licensed, receipts on every repo.
Backed by the DugganUSA Feed. Numbers are live: /api/v1/search/stats. Pricing: analytics.dugganusa.com/pricing. Contact: [email protected].
Threat intelligence you can check.
Source: README.md at commit 71d3783
Tools
0Version history
1- v1.3.4LatestSep 16, 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

