
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
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.
Installation
In SourceWeft
- Open HEARTH 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
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
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
Claude Desktop
Add this to claude_desktop_config.json (Settings → Developer → Edit Config), then restart Claude Desktop:
Cursor
Add this to .cursor/mcp.json in your project, or to ~/.cursor/mcp.json for every project:
VS Code
Add this to .vscode/mcp.json in your workspace:
Settings
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-mcpalways fetches the latest release. Name an exact version instead, and nothing changes until you choose to upgrade. - Turn off the network.
HEARTH_OFFLINE=1stops 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_URLto an internal copy of the site's data files, which you update on your own schedule. - Verify the package. After installing, run
npm audit signaturesto check that the package was built from this repository by GitHub Actions.
For example, in Claude Desktop:
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 signaturesafter installing to check it.
Develop
From the repository root:
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:
- Bump
versioninmcp/package.json,mcp/server.jsonand the pinned example under Locked-down setup in this README. A test fails if any of them differ. - Merge to
main. - Push a tag named
mcp-v<version>, for examplemcp-v0.1.0.
The publish workflow then:
- Waits for approval in the
npm-publishenvironment. - Publishes to npm with provenance, using trusted publishing (no npm token is stored).
- Waits for npm to serve the new version, which can take several minutes.
- 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
0Version history
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