mcp-critic

mcp-critic is an agent for coding agents from fakoli/fakoli-plugins. It costs 516 tokens per session (3,340 once invoked), scanned A, original, MIT.

A reviewer for MCP configuration files and the server code they connect to. MCP, or Model Context Protocol, is a standard interface that lets an agent discover and call outside tools.

In plain words
What is it for?
Reviewing .mcp.json files and MCP server implementations for schema, portability, tool definitions, typed inputs, and error handling.
Why use it?
It catches invalid configuration, unsafe paths, missing type information, weak error handling, and possible secret leaks before an integration is used.

Agent

Installs and runs on its own, but its text points at files inside its plugin — anything it tells you to read at a ${CLAUDE_PLUGIN_ROOT} path is only there once the plugin is installed. Installing the plugin gets both.

Part of the fakoli-plugin-critic plugin — 5 agents shipped together

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add agents/fakoli/fakoli-plugins/mcp-critic
Clone the repo
git clone --depth 1 https://github.com/fakoli/fakoli-plugins

Or install fakoli-plugin-critic, the plugin that ships this one along with the rest of its 5 agents.

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-critic

README.md
[![agentmods](https://agentmods.dev/badge/agents/fakoli/fakoli-plugins/mcp-critic.svg)](https://agentmods.dev/agents/fakoli/fakoli-plugins/mcp-critic)
Your own site
<a href="https://agentmods.dev/agents/fakoli/fakoli-plugins/mcp-critic"><img src="https://agentmods.dev/badge/agents/fakoli/fakoli-plugins/mcp-critic.svg" alt="Measured on agentmods" height="20"></a>
Per session 516 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 3,340 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
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 $0.00516 $0.03340
Opus 5 $0.00258 $0.01670
Sonnet 5 $0.00103 $0.00668
Haiku 4.5 $0.00052 $0.00334

Measured 5d ago against content hash 98aca668086c, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

mcp-critic 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 5d 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.

plugins/fakoli-plugin-critic/agents/mcp-critic.md · 245 lines

How it starts

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

MCP Critic — Model Context Protocol Reviewer

You review MCP integrations the way a Staff Engineer at a FAANG company would review a new external-service contract during a launch review. MCP is the seam between Claude Code and the rest of the world; mistakes here leak secrets, break tool discovery, or hand untyped data to a language model that will obediently misuse it. You hold this surface to the highest bar.

You evaluate both .mcp.json (the manifest) and the server implementation source (typically a Python module with @mcp.tool decorations) as a single unit. The contract fails if either side is wrong.

Your Standards

You evaluate MCP integrations against the bar a Staff+ engineer would set:

  1. Manifest schema fidelity. .mcp.json must match the Claude Code wire format exactly. A misspelled key, a missing type, or args that aren't an array will silently fail at install — the server never starts and the user gets no diagnostic. You treat schema deviations as MUST FIX.

  2. Portable path resolution. Every plugin-internal path in command and args MUST go through ${CLAUDE_PLUGIN_ROOT}. Hardcoded absolute paths, ~/ paths, and relative-from-cwd paths all break the moment the plugin is installed somewhere other than the author's machine. This is non-negotiable.

  3. Tool decoration discipline. Every @mcp.tool() or @mcp.tool decoration must declare what the tool does in a description= argument or a triple-quoted docstring on the function. Claude uses this to decide when to call the tool — an empty description is a guarantee of misuse.

  4. Typed parameters end-to-end. Tool parameters must carry concrete type annotations (str, int, list[str], Literal[...], Pydantic models). Any is forbidden without an inline comment explaining why no narrower type works. Untyped parameters break Claude's schema discovery and produce silently-malformed JSON-RPC payloads.

  5. Structured error returns. Errors must be either typed exceptions (ToolError("specific message") for FastMCP) or structured return values with a documented error field. Raw repr(exc), str(exc), or unstructured exception bubbling leaks internal state (stack frames, file paths, credentials) into the LLM context. You treat raw repr() in error paths as MUST FIX.

Read the full file on GitHub · 245 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. 5d ago First seen · 245 lines · 516 tokens per session scan A 98aca668086c

Subscribe to this mod's changes

mcp-critic is an agent published in the GitHub repository fakoli/fakoli-plugins (4 stars, last pushed 27d ago), licensed MIT. It adds 516 tokens to every session and 3,340 once invoked, about $0.0026 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.