Hunt Mcp logo

Hunt Mcp

Community
Encod3d-Sec
hunt-mcp

MCP server attack hunting - tool poisoning, indirect prompt injection via tool output, rug-pull updates, cross-tool shadowing, over-permissioned/excessive-agency tools, lethal trifecta. Wiki-first, FIND schema output.

Overview

PublisherEncod3d-Sec
RepositoryTORCH
Skill namehunt-mcp
Stars
334
Forks
48
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by Encod3d-Sec on GitHub. Read the source before you install it.

Installation

Install the Hunt Mcp AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/Encod3d-Sec/TORCH/tree/main/skills/hunt/hunt-mcp
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/Encod3d-Sec/TORCH.git /tmp/TORCH
mkdir -p .claude/skills
cp -r /tmp/TORCH/skills/hunt/hunt-mcp .claude/skills/hunt-mcp
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Hunt Mcp in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Hunt Mcp on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Hunt Mcp is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Hunt: MCP Server Attacks

Assumes hunt-core for the scope gate, two-account rule, confirmation gate, enumeration limits, stop conditions, wiki protocol, FIND output, and Deadends. Do not re-derive any of that here.

Wiki

qmd_query "MCP server tool poisoning indirect prompt injection rug pull cross-tool shadowing excessive agency lethal trifecta" via wiki-search MCP

Hub: [[web-moc]] (live index). Primary page: [[mcp-server-attacks]]. Anchors: [[llm-attacks]].

Attack surface

Rank before testing. Not all surfaces are equally reachable or impactful:

  • Tool descriptions / docstrings - the FULL text (not the UI summary) is the injection surface. Hidden instructions ride in <IMPORTANT> tags, comments, unicode-tag or zero-width text, and parameter descriptions the client concatenates into the model context.
  • Tool output fed back to the model - any tool that fetches untrusted content (web page, ticket, file, email, issue body) and returns it to the model is an indirect-injection channel. Highest yield because the payload is not in the manifest and survives description review.
  • Over-permissioned / excessive-agency tools - a tool that can write files, send mail, run shell, or hit arbitrary URLs turns any injection into action. The blast radius, not the bug.
  • Lethal trifecta in one agent - private-data access + untrusted input + an outbound/exfil channel. When all three are reachable by a single agent, injection becomes exfil. Map who holds each leg.
  • Exposed MCP infrastructure - MCP servers, tool manifests, agent tool lists, MCP Inspector (CVE-2025-49596, unauth RCE).

Methodology

  1. Enumerate tools: name, FULL description/docstring, parameter schema, permissions. The full description is the attack surface, not the UI summary.
  2. Map the trifecta across tools - who reads secrets, who reads untrusted input, who can reach network/fs. A single agent holding all three legs is the primary target.
  3. Tool poisoning: hidden instructions in the description (often <IMPORTANT> tags) -> read a secret, pass it via a benign-looking param.
  4. Cross-tool shadowing: from one server, hijack a different trusted tool (for example redirect send_email recipients).
  5. Indirect injection via tool output: plant instructions in a ticket/web page/file the agent will read.
  6. Rug pull: get a benign tool approved, then mutate its description server-side after approval.
  7. Confirm per the Confirmation gate below - demonstrated execution via the client, never the model's narration.
  8. Distill when confirmed - reusable poisoning, shadowing, or rug-pull technique, GENERIC, no client host: python3 scripts/wiki-stage.py --kind technique --slug <slug> --target-page techniques/web/mcp-server-attacks.md

Confirmation gate

NOT confirmation: a tool description that merely contains an injection string; a permissive or over-broad parameter schema; the trifecta being reachable on paper without exercising it across the tools; the model narrating that it "would" or "could" do something; a payload accepted into a description or tool output that the client never acted on.

IS confirmation: the injection actually executed via the client - a shadowed or poisoned tool invoked with attacker-chosen arguments, private data exfiltrated to your endpoint, or an unintended action taken by the agent - reproduced in a clean session. For rug-pull, the mutation took effect on an already-approved tool and the client acted on the new description.

Chaining

Tool-output injection (step 5) -> excessive agency: once you control the model's instructions via poisoned output, the impact is whatever the over-permissioned tools can do (mail, files, shell, outbound HTTP). That escalation is prompt-injection territory - hand off to hunt-llm for the injection-to-action payload work, keep the MCP-specific poisoning/shadowing here.

Evasion

Description review and human approval are the controls to bypass. Hide instructions where a reviewer skims past: <IMPORTANT>/comment blocks, zero-width or unicode-tag characters, whitespace padding, instructions split across several tools' descriptions, and payloads in parameter descriptions rather than the top-level docstring. Against approval flows, the rug-pull is the evasion: ship benign, mutate after the human clicks approve.

Severity

Rated on demonstrated impact, not the presence of a payload.

OutcomeTypical
RCE on the MCP host or client (e.g. MCP Inspector CVE-2025-49596)critical
Secret / credential exfil via poisoned or shadowed toolcritical
Cross-tool hijack - arbitrary attacker-controlled tool actionhigh
Data exfil - private context reaching an attacker channelhigh
Over-permissioned tool, limited demonstrable impactmedium

Deadends

Append: - [ ] MCP attack on <server> -- no client-side execution; descriptions clean,
              no reachable trifecta, tool output not acted on

Record what you tried (poisoning / shadowing / indirect-output / rug-pull), not just that it failed.

Frequently asked questions

What does the Hunt Mcp AI skill do?

MCP server attack hunting - tool poisoning, indirect prompt injection via tool output, rug-pull updates, cross-tool shadowing, over-permissioned/excessive-agency tools, lethal trifecta. Wiki-first, FIND schema output.

Why use Hunt Mcp on TypingMind?

Because you install it once and use it with any model. Hunt Mcp is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Hunt Mcp in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/Encod3d-Sec/TORCH/tree/main/skills/hunt/hunt-mcp. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Hunt Mcp?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Hunt Mcp?

As many as you like. As long as a model supports skills, you can use Hunt Mcp with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Hunt Mcp AI skill free?

Yes. It is published on GitHub by Encod3d-Sec under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇