helix.mcp: Skill for Claude Code

.copilot/skills/mcp-threat-modeling/SKILL.md

mcp-threat-modeling is a skill for Claude Code, Codex from lewing/helix.mcp. It costs 15 tokens per session (850 once invoked), scanned A, original, MIT.

A STRIDE-based security review pattern for MCP servers. STRIDE is a checklist for threats such as impersonation, data changes, information leaks, and denial of service.

In plain words
What is it for?
Reviewing MCP server trust boundaries, comparing stdio and HTTP security, checking agent inputs, and identifying SSRF, secret-handling, and filesystem risks.
Why use it?
It helps account for risks that are easy to miss when an AI agent supplies tool inputs, especially prompt injection, network access, credentials, and local files.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

This is lewing/helix.mcp's own configuration. It tells Claude Code and Codex how to work on helix.mcp itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything helix.mcp configures →

Reuse

Borrowing it

Nothing to install: this file belongs to lewing/helix.mcp. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/lewing/helix.mcp/main/.copilot/skills/mcp-threat-modeling/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/lewing/helix.mcp

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for mcp-threat-modeling

README.md
[![agentmods](https://agentmods.dev/badge/skills/lewing/helix.mcp/mcp-threat-modeling/github.svg)](https://agentmods.dev/skills/lewing/helix.mcp/mcp-threat-modeling)
Your own site
<a href="https://agentmods.dev/skills/lewing/helix.mcp/mcp-threat-modeling"><img src="https://agentmods.dev/badge/skills/lewing/helix.mcp/mcp-threat-modeling/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for mcp-threat-modeling

Your own site · 80×15
<a href="https://agentmods.dev/skills/lewing/helix.mcp/mcp-threat-modeling"><img src="https://agentmods.dev/badge/skills/lewing/helix.mcp/mcp-threat-modeling.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 15 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 850 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00015 $0.00850
Opus 5 $0.00008 $0.00425
Sonnet 5 $0.00003 $0.00170
Haiku 4.5 $0.00002 $0.00085

Measured 12d ago against content hash 93ee3f5a9f40, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-12, from the pricing page.

Security

Grade A, and why

mcp-threat-modeling scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.copilot/skills/mcp-threat-modeling/SKILL.md · 64 lines

How it starts

The opening of the file, as written. The whole thing — 64 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Context

MCP (Model Context Protocol) servers have a distinctive threat model compared to typical APIs. They are invoked by AI agents which may be prompt-injected, run in two transport modes (stdio and HTTP) with very different trust boundaries, and often handle CI/infrastructure data that may contain secrets.

Patterns

MCP-Specific Trust Boundaries

Always identify these trust boundaries for any MCP server:

  1. MCP Client → Server — Stdio is process-local (trusted). HTTP is network-accessible (untrusted). Treat these as fundamentally different security postures.
  2. AI Agent → MCP Tool Parameters — Parameters come from an AI agent that may be prompt-injected. Treat all MCP tool inputs as untrusted, even in stdio mode.
  3. Server → External APIs — Outbound API calls use credentials. SSRF risk if the server fetches arbitrary URLs based on agent input.
  4. Server → Local Filesystem — Downloads and caches write to disk. Path components derived from external data require sanitization.

Stdio vs HTTP Security Divergence

Stdio MCP servers inherit the host process's security context — authentication is implicit (the user who launched the process). HTTP MCP servers are network services that need explicit authentication. A common mistake is building a tool as stdio-first, then adding HTTP transport without adding auth middleware.

AI Agent as Untrusted Input Source

MCP tool parameters originate from an AI agent, not directly from a human. An agent can be prompt-injected to:

  • Pass malicious URLs to download tools (SSRF)
  • Request unbounded batch operations (DoS)
  • Construct path-traversal payloads in file/work item names Always validate and sanitize MCP tool inputs as if they were user input from the internet.

Cache Security for MCP Servers

MCP stdio servers are often ephemeral processes. Cross-process caches (SQLite, file-based) persist data beyond session lifetime. Key concerns:

  • Auth context isolation — different tokens should get separate cache namespaces
  • Cached data may contain secrets (CI logs, build artifacts)
  • Cache location should be user-profile-scoped (not world-readable)

Read the full file on GitHub · 64 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 12d ago First seen · 64 lines · 15 tokens per session scan A 93ee3f5a9f40

Subscribe to this mod's changes

mcp-threat-modeling is a skill published in the GitHub repository lewing/helix.mcp (4 stars, last pushed today), licensed MIT. It adds 15 tokens to every session and 850 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.