CtrlK
BlogDocsLog inGet started
Tessl Logo

mcp-server-audit

Security audit of Model Context Protocol (MCP) servers — tool poisoning, prompt injection via tool descriptions and results, unscoped/over-privileged tools, path traversal in file tools, command injection in shell/exec tools, SSRF in fetch tools, secret leakage through tool output, missing approval gates on state-changing actions, confused-deputy and rug-pull tool redefinition, token passthrough, and unsafe stdio/HTTP transport config. Covers auditing both first-party and third-party MCP servers (Python FastMCP, Node MCP SDK) and their client configs (Claude Desktop, Cursor, Cline, Windsurf, Zed). Use when reviewing, hardening, or hunting bugs in an MCP server, an agent's tool integrations, or a mcpServers config block. 中文触发词:MCP审计、工具投毒、提示注入、智能体安全、MCP服务器漏洞

74

Quality

93%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

SKILL.md
Quality
Evals
Security

Quality

Content

82%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A strong, dense audit playbook: threat model, per-channel checklists, executable greps, and a rigorous PoC-required reporting format, with no padding and no hand-holding. Its main weaknesses are two repo-specific leftovers that assume context absent from the skill, the lack of an explicit iterate-on-failure loop, and all detail inlined in one file rather than split across references.

Suggestions

Remove or generalize the repo-specific references ("this repo's own server", "this repo ships a redact.py") — they point to code and files that are not part of the skill bundle and will confuse a generic deployment.

Add a short iteration loop for findings, e.g. 'if the PoC call fails, re-check whether the sink is reachable; only report after a confirmed call' — this would close the workflow_clarity gap between checkpoints and a recovery loop.

Consider moving the per-threat deep-dives (§2–§7) or the source-audit grep recipes (§8) into a references/ file, keeping SKILL.md as the threat-model overview plus quick-kill checklist.

DimensionReasoningScore

Conciseness

The body is lean, checklist-driven, and assumes Claude's competence (no re-explanation of SSRF, path traversal, or command injection). However, two lines are repo-context leftovers that don't earn their place in a standalone skill: "Good sign (this repo's own server): active tools require `approve=true`..." and "this repo ships a `redact.py` — check it actually covers the tokens in scope", which reference context not present in the bundle.

4 / 5

Actionability

Fully executable guidance: copy-paste-ready grep recipes for both Python and Node ("grep -rnE \"os\\.system|subprocess.*shell=True|eval\\(|exec\\(|open\\(.*\\.\\.\" ."), a concrete tool-shape-to-bug mapping table, and a fill-in report template with exact fields including a mandatory "PoC: <exact tool call + input that proves it>". This is an instruction-heavy skill and its guidance is specific throughout.

5 / 5

Workflow Clarity

A clear sequence exists (§0 quick-kill checklist → threat model → per-channel hunts → §8 source greps → §9 report format) with real validation checkpoints ("Confirm reachability before you write it up", "Kill anything you can't prove with a concrete call"). It falls short of the anchor-5 pattern because there is no explicit error-recovery or iteration loop between checkpoints.

4 / 5

Progressive Disclosure

Ten well-organized, clearly headed sections in a single ~160-line file with no external references. Structure is good, but the skill exceeds the under-50-line simple-skill exception and inlines per-threat-class deep-dives and grep recipes that could live in reference files; additionally, the "this repo's own server" / "redact.py" mentions point to bundle files that do not exist, which is a minor organization/navigation gap.

4 / 5

Total

17

/

20

Passed

Description

100%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

An excellent description: it comprehensively enumerates concrete vulnerability classes, names both server SDKs and client configs for trigger matching, and closes with an explicit, specific 'Use when' clause plus non-English triggers. No fluff, no over-claims, and minimal conflict risk with adjacent security skills.

DimensionReasoningScore

Specificity

The description enumerates eleven concrete finding classes — "tool poisoning, prompt injection via tool descriptions and results, unscoped/over-privileged tools, path traversal in file tools, command injection in shell/exec tools, SSRF in fetch tools, secret leakage through tool output, missing approval gates on state-changing actions, confused-deputy and rug-pull tool redefinition, token passthrough, and unsafe stdio/HTTP transport config" — which matches the comprehensive-coverage anchor. Score 4 would require minor gaps in coverage, and none are visible.

5 / 5

Completeness

Both halves are explicit: the "what" is the enumerated audit classes, and the "when" is a concrete trigger clause — "Use when reviewing, hardening, or hunting bugs in an MCP server, an agent's tool integrations, or a mcpServers config block." Not 4, because the when-clause is specific rather than merely present.

5 / 5

Trigger Term Quality

Natural phrases users would actually say are well covered: "MCP server", "tool poisoning", "mcpServers config block", "reviewing, hardening, or hunting bugs", plus named clients ("Claude Desktop, Cursor, Cline, Windsurf, Zed") and Chinese trigger words. This matches the comprehensive-synonyms anchor; the client-config names serve the same role file extensions do in the anchor example.

5 / 5

Distinctiveness Conflict Risk

Clear niche (MCP server security) with distinct triggers — "MCP", "mcpServers config block", "tool poisoning" — that will not fire for generic code-review or security skills. Voice is third person ("Covers auditing..."), so no voice penalty applies.

5 / 5

Total

20

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository
Awarexone/Agentic-Bug-Hunter
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.