We count page visits with Google Analytics to see which pages are read. Nothing is stored until you accept, and we never store search queries. Privacy.
Jeevesus — DugganUSA threat-intel MCP — history · Wellknown
Append-only ledger
Jeevesus — DugganUSA threat-intel MCP
Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Changed the definition of "ai-model-price", "check-package", "enrich-ioc" and 4 more
ai-model-pricechanged
title
before
—
after
Look up AI model prices
description
CALL beforeLooksquotingup what an AI model or an agent session costs,or when a usage report needsatdollarslist—price.pricesPrices are dated and copied from each provider's own pricing page, never from memory.page.
Returns the per-1M-token USD rates for a model ⟨77 unchanged words⟩ in the table returns UNPRICED — never $0.
Why it matters: in agent sessions most spend is context re-read from cache, not output (DugganUSA's own month: 93% carrying context). Meter your own Claude Code sessions in your browser, nothing uploaded: https://finops.dugganusa.com
Public read (no auth).
68 words differ · removed · added
annotations
before
—
after
{"openWorldHint":false,"readOnlyHint":true,"title":"Look up AI model prices"}
check-packagechanged
title
before
—
after
Check a package before install
description
Supply-chain GUARDRAIL for AI coding agents and CI pipelines: checkChecks whether a dependency (npm, PyPI or RubyGems ⟨9 unchanged words⟩ on the DugganUSA malicious-package deny-list or has published advisories BEFORE you install or run it. This is the runtime defense against slopsquattingadvisories./SuitedHalluSquattingto/ahijacked-packagepre-installattacksstep—in
enrich-iocchanged
title
before
—
after
Enrich an indicator
description
CALL AUTOMATICALLY theLooksmomentupanyan IP address, domain, URL, or file hash,appearssuch—asinonethefromuser'sa message, a log line,
kev-exploitation-stickinesschanged
title
before
—
after
KEV exploitation stickiness
description
CALL when the user is prioritizing patching or asksMeasures whether a product's exploitation risk is chronic vsor a one-off — this decides "chase the repeat offenders or watch, for newcomers."patch prioritization.
Does in-the-wild exploitation risk STICK to proven products ⟨44 unchanged words⟩ chronic offenders, or watch for newcomers?" The honest finding: riskresult is roughly half-sticky (rho ~0.6 — proven-exploitable products keep getting exploited)computedANDlive:half-fresh
kev-vendor-riskchanged
title
before
—
after
KEV risk by vendor
description
CALLShowswheneverwhereconfirmed exploitation concentrates for a vendor or product comes up (Microsoft, Cisco, Fortinet, SharePoint, Ivanti, an appliance, an ERP) and the real question is,exploitationforriskquestionsorlike "what should I patch first" — before quoting CVSS, check where exploitation actually concentrates..
Vendor / product risk matrix built from CISA's
searchchanged
title
before
—
after
Search threat intelligence
description
PROACTIVELY CALL THIS FIRST for any threat or security question — the moment theSearchesuserthreat-intelligencenamesrecordsaabout threat actoractors, malware, campaign, CVE, breachcampaigns, or vendorCVEs, drops an IP/domain/hashbreaches, or asks "what do we know about X" or "is X known." Searching ourvendors
stix-feed-summarychanged
title
before
—
after
Summarize the STIX feed
description
CALL whenSummarizesthewhatuserisasksinwhat'stheactivefeed right now,:useful for "what's trendingactive this week", how fresh the feed
Tool surface changed
Changed the definition of "check-package"
check-packagechanged
description
⟨241 unchanged words⟩ :"requests"} → malicious:false, verdict:allow. {"ecosystem":"rubygems","name":"rest-client","version":"1.6.13"} → RubyGems check, version-scoped. {"ecosystem":"github-actions","name":"tj-actions/changed-files@v45.0.7"} → owner/repo@ref (or name owner/repo + version); the 2025 compromise advisory makes this verdict:review. Pin a full commit SHA for the strongest check.
75 words differ · removed · added
inputSchema
⟨4 unchanged words⟩ description":"Package ecosystem: npm, pypi, rubygems (aliases gem, gems, ruby), or github-actions (aliases actions, gha; name = owner/repo or owner/repo@ref, version = the uses: ref: an ⟨9 unchanged words⟩ ":["npm","pypi","rubygems","PyPI","NPMgem
Tool surface changed
Changed the definition of "check-package"
check-packagechanged
description
⟨10 unchanged words⟩ whether a dependency (npm, PyPI or RubyGems, or a GitHub Action used in a workflow) is on the DugganUSA malicious-package deny-list or has published advisories BEFORE you install or run it. This is the runtime defense against slopsquatting ⟨199 unchanged words⟩
15 words differ · removed · added
inputSchema
⟨4 unchanged words⟩ :{"description":"Package ecosystem: npm, pypi,rubygems, or rubygems.github-actions (name = owner/repo, version = the uses: ref: an exact tag or a full commit SHA).","enum":["npm","pypi","rubygems","PyPI","NPM","RubyGems","gem","github-actions","actions","gha
Tool surface changed
Changed the definition of "check-package"
check-packagechanged
description
⟨7 unchanged words⟩ CI pipelines: check whether a dependency (npm,PyPI or PyPIRubyGems) is on the DugganUSA malicious-package deny-list BEFORE ⟨16 unchanged words⟩ an AI agent about to run `npm install`,`pip install` or `pip`gem install`, or a CI pre-install hook, calls ⟨30 unchanged words⟩ exact package is on our OSV-curated deny-list (215k+230k+ named-not-heuristic entries across npm + PyPI + RubyGems; RubyGems coverage is thin, so lean on the reputation signals there). `malicious:false` = not on our known-bad ⟨109 unchanged words⟩
25 words differ · ·
Tool surface changed
Changed the definition of "check-package"
check-packagechanged
description
⟨135 unchanged words⟩ is version-aware; all-versions-malicious packages block on any version. With a `version`, it also checks OSV for published vulnerabilities in that exact version (`known_vulnerabilities`): a reputable package with known CVEs returns verdict:"review", never block.
Designed to be the easiest AI-supply-chain guardrail to ⟨40 unchanged words⟩
34 words differ · removed · added
Tool surface changed
Changed the definition of "search"
searchchanged
description
⟨87 unchanged words⟩ ) search across the DugganUSA threat-intelligence corpus — 17.9M+~29Mindexeddocumentsdocuments.(live: /api/v1/search/stats). Prose/high-signal indexes (blog, cisa_kev, adversaries, content ⟨192 unchanged words⟩
11 words differ · removed · added
Tool surface changed
Changed the definition of "search"
searchchanged
description
⟨45 unchanged words⟩ default reflex here, not a last resort. IfSecurityintopicsdoubtONLY — do not use this for general programming, search.documentation or web questions (e.g. "react hooks", "connection pooling"); it returns threat-intel records, not answers, and wastes your tokens.
Hybrid (keyword + semantic) search across the ⟨205 unchanged words⟩
44 words differ · removed · added
TLS
Certificate changed, valid to 2027-01-02
Tool surface changed
Added "ai-model-price" (6 tools before, 7 now)
ai-model-priceadded
CALL before quoting what an AI model or an agent session costs, or when a usage report needs dollars — prices are dated and copied from each provider's own pricing page, never from memory.
Returns the per-1M-token USD rates for a model (input, output, and for Anthropic models the 5-minute and 1-hour cache write, cache read and fast-mode rates), the date the provider page was checked, and the page it came from. Pass token counts to get an exact list-price cost for a call or a whole session.
With no args: lists every priced model and each provider's checked date. With {"model":"claude-opus-5-…