HEARTH

io.github.THORCollectivePublished by GitHub account THORCollectivev0.1.1Updated Nov 11, 2026

Search community threat hunting hypotheses by keyword, threat actor, or the log sources you have.

The publisher's own server: Hearth

Overview

AI-generated overview

Read-only access to HEARTH, a community library of threat hunting hypotheses, so an assistant can search hunts and match them to actors or log sources.

What you can do
  • Search hunts by keyword with filters for category, tactic and data sources
  • Read one hunt in full: hypothesis, rationale, notes, queries and references
  • Find hunts for a threat actor by name, alias or ATT&CK group ID, including coverage and gaps
  • List hunts a team can run with the log sources it has, and what each is missing
When to use it
Useful when planning detection or threat hunting work and you want to see what the community has already written for a given actor, technique or set of available logs. Also handy for checking which hunts your current log sources can actually support.
Requirements
Node.js 20 or later; runs locally over stdio via npx. No account, API key or declared environment variables. Network access for a daily data-change check unless HEARTH_OFFLINE=1 is set; optional HEARTH_DATA_URL and HEARTH_CACHE_DIR settings.
Before you install
Hunt text is community-written and treated as untrusted; review detection queries before running them. The server contacts hearth.thorcollective.com at most once a day unless offline mode is set, and a custom HEARTH_DATA_URL mirror must be https. Pin an exact version and verify package signatures for locked-down setups.

Installation

In SourceWeft

  1. Open HEARTH 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

HEARTH MCP server

Ask your AI assistant what to hunt for. This MCP server gives Claude, Cursor, VS Code and other MCP clients read-only access to HEARTH, the community library of threat hunting hypotheses.

Questions you can ask:

  • "What can I hunt for Volt Typhoon with firewall and appliance logs?"
  • "Find hunts for macOS persistence."
  • "We only have Windows endpoint and identity logs. Which hunts can we run fully?"
  • "Show me H432."

Tools

ToolWhat it does
search_huntsRanked keyword search, with filters for category, tactic and data sources.
get_huntOne hunt in full: hypothesis, why it matters, notes, queries and references.
hunts_for_actorHunts for a threat actor by name, alias or ATT&CK group ID. Includes coverage and gaps.
hunts_for_datasourcesHunts your team can run with the log sources it has, and what each one is missing.

Every tool is read-only. Retired hunts are hidden unless you ask for them.

Install

You need Node.js 20 or later. Each snippet runs the published package with npx.

Claude Code

sh
claude mcp add hearth -- npx -y @thorcollective/hearth-mcp

Claude Desktop

Add this to claude_desktop_config.json (Settings → Developer → Edit Config), then restart Claude Desktop:

json
{  "mcpServers": {    "hearth": {      "command": "npx",      "args": ["-y", "@thorcollective/hearth-mcp"]    }  }}

Cursor

Add this to .cursor/mcp.json in your project, or to ~/.cursor/mcp.json for every project:

json
{  "mcpServers": {    "hearth": {      "command": "npx",      "args": ["-y", "@thorcollective/hearth-mcp"]    }  }}

VS Code

Add this to .vscode/mcp.json in your workspace:

json
{  "servers": {    "hearth": {      "type": "stdio",      "command": "npx",      "args": ["-y", "@thorcollective/hearth-mcp"]    }  }}

Settings

Environment variableEffect
HEARTH_OFFLINE=1Never touch the network; serve the bundled snapshot or the last download.
HEARTH_DATA_URLFetch data from a mirror instead of https://hearth.thorcollective.com/. Must be https (http only for localhost).
HEARTH_CACHE_DIRWhere downloaded data is kept. Defaults to your platform's cache folder (~/Library/Caches/hearth-mcp on macOS).

Set them in your client's config, for example "env": { "HEARTH_OFFLINE": "1" } next to "args".

Locked-down setup (enterprise)

For teams that review every change before it reaches analysts:

  • Pin the version. npx -y @thorcollective/hearth-mcp always fetches the latest release. Name an exact version instead, and nothing changes until you choose to upgrade.
  • Turn off the network. HEARTH_OFFLINE=1 stops the daily check, so the server only uses the hunt data that shipped with the version you pinned.
  • Or use your own mirror. Set HEARTH_DATA_URL to an internal copy of the site's data files, which you update on your own schedule.
  • Verify the package. After installing, run npm audit signatures to check that the package was built from this repository by GitHub Actions.

For example, in Claude Desktop:

json
{  "mcpServers": {    "hearth": {      "command": "npx",      "args": ["-y", "@thorcollective/[email protected]"],      "env": { "HEARTH_OFFLINE": "1" }    }  }}

Releases lists every version.

Other clients

Any MCP client that supports stdio servers can run the same command: npx -y @thorcollective/hearth-mcp.

Privacy and security

  • No telemetry. The server sends nothing anywhere.
  • One small network check a day. At most once every 24 hours the server asks hearth.thorcollective.com whether the hunt data has changed. It uses conditional requests, so usually nothing is downloaded. It sends only those requests and a hearth-mcp/<version> user agent.
  • Works offline. If the site can't be reached, or sends data that fails validation, the server keeps using its last good copy, falling back to the snapshot bundled with each release.
  • Hunt text is treated as untrusted. Hunts are written by the community:
    • The server makes hidden and right-to-left characters visible, and removes hidden text.
    • It caps field lengths.
    • It labels every hunt text field as untrusted, so your assistant reads it as data, not instructions.
    • New hunts are also checked for prompt-injection text in CI before they merge.
  • Review detection queries before you run them, as you would any query from the internet.
  • Verify the package: releases are published from GitHub Actions with npm provenance. Run npm audit signatures after installing to check it.

Develop

From the repository root:

sh
npm ci && npm ci --prefix mcpnpm run build --prefix mcp      # bundle to mcp/dist and snapshot site data to mcp/datanpm test                        # unit, golden and stdio protocol testsclaude mcp add hearth-dev -- node "$PWD/mcp/dist/index.js"

The server reuses the site's own logic from src/lib, so search behaves the same way in both.

Golden queries

mcp/golden/ holds real analyst questions and the hunts a good answer must include. Adding one is the most useful way to improve search. See golden/README.md.

Releasing

Maintainers only:

  1. Bump version in mcp/package.json, mcp/server.json and the pinned example under Locked-down setup in this README. A test fails if any of them differ.
  2. Merge to main.
  3. Push a tag named mcp-v<version>, for example mcp-v0.1.0.

The publish workflow then:

  1. Waits for approval in the npm-publish environment.
  2. Publishes to npm with provenance, using trusted publishing (no npm token is stored).
  3. Waits for npm to serve the new version, which can take several minutes.
  4. Lists the release in the MCP Registry as io.github.THORCollective/hearth.

If the run fails after the npm publish, use Re-run failed jobs. A version already on npm is never published twice, so the re-run picks up at the registry step.

Source: mcp/README.md at commit b1fe49e

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 11, 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

Other Hearth integrations