{
  "markdown": "# Kontra\n\n### The Tenth Man Protocol\n\n> *\"If nine agree, I disagree.\"*\n\nAn MCP tool that stress-tests your decisions with structured contrarian analysis — so blind spots surface before consequences do.\n\n[![npm](https://img.shields.io/npm/v/kontra-mcp)](https://www.npmjs.com/package/kontra-mcp) [![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](LICENSE)\n\n## What You Get\n\nYou say:\n\n> *\"Use kontra to challenge this: We should rewrite our backend from Node.js to Rust. Context: Current stack is Node.js, team of 3, shipping weekly.\"*\n\nKontra returns:\n\n---\n\n### BLIND SPOTS\n\n- **You're measuring the cost of rewriting but not the cost of pausing.** A team of 3 shipping weekly has momentum. The rewrite doesn't just cost engineering hours — it costs 3-6 months of feature development, customer feedback loops, and market positioning that your competitors won't pause for.\n\n- **Rust's safety guarantees solve problems you may not have.** If your Node.js backend isn't failing due to memory bugs or concurrency issues, you're optimizing for a class of problems that isn't hurting you. The rewrite is a solution — what's the problem it solves that your team is actually experiencing?\n\n- **The team's Rust proficiency is unproven at production scale.** Writing Rust that compiles is not the same as writing Rust that ships. Borrow checker fluency, async runtime decisions (Tokio vs. async-std), ecosystem maturity for your specific domain — these are all unknowns that compound under deadline pressure.\n\n### HIDDEN ASSUMPTIONS\n...\n\n### THE STRONGEST COUNTER-ARGUMENT\n...\n\n### WHAT-IF SCENARIOS\n...\n\n---\n\nThat's `counter` mode — the default. There are three more.\n\n## Quick Start\n\n### Claude Code\n\n```bash\nclaude mcp add kontra -- npx -y kontra-mcp\n```\n\nThen ask: *\"Use kontra to analyze my decision to...\"*\n\n<details>\n<summary>Claude Desktop</summary>\n\nAdd to your Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS):\n\n```json\n{\n  \"mcpServers\": {\n    \"kontra\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"kontra-mcp\"]\n    }\n  }\n}\n```\n\n</details>\n\n<details>\n<summary>Cursor / VS Code</summary>\n\nAdd to your MCP settings:\n\n```json\n{\n  \"kontra\": {\n    \"command\": \"npx\",\n    \"args\": [\"-y\", \"kontra-mcp\"]\n  }\n}\n```\n\n</details>\n\n## Modes\n\n### `counter` — The Tenth Man\n\n> *\"Consensus is never to be mistaken for correctness.\"*\n\nThe default. Assumes your decision is wrong and builds the strongest possible case against it.\n\n**Produces:** Blind Spots, Hidden Assumptions, The Strongest Counter-Argument, What-If Scenarios\n\n**Best for:** Major decisions where you need someone to steelman the opposing side. Architecture choices, strategy pivots, hiring plans, product bets.\n\n---\n\n### `probe` — The Interrogator\n\n> *\"A good question does more damage to a bad decision than any argument ever could.\"*\n\nAsks 7-10 pointed questions across five lenses — no answers, no analysis, just the questions you haven't asked yourself.\n\n**Produces:** Questions across Motivation, Evidence, Alternatives, Stakes, and Timing\n\n**Best for:** Early-stage decisions where you suspect your reasoning has gaps but aren't sure where. Forces you to confront what you've skipped over.\n\n---\n\n### `redteam` — The Red Team Commander\n\n> *\"Think like an adversary — not a hypothetical one, but a specific, intelligent opponent who wants this decision to fail.\"*\n\nConstructs 3-5 concrete failure scenarios with likelihood ratings, trigger events, cascade sequences, early warning signs, and mitigations.\n\n**Produces:** Ranked failure scenarios with likelihood estimates, plus an Overall Vulnerability Assessment (1-10 scale)\n\n**Best for:** Plans that are already in motion. Launch timelines, migration strategies, organizational changes — anything where you need to know exactly how it breaks.\n\n---\n\n### `premortem` — The Postmortem From the Future\n\n> *\"Prospective hindsight increases the ability to identify reasons for future outcomes by 30%.\"*\n\nImagines the decision was made 12 months ago and failed catastrophically. Writes the full postmortem.\n\n**Produces:** Executive Summary, What Happened (Failure Narrative), Timeline, Root Causes, Signals We Missed, Lessons Learned\n\n**Best for:** High-stakes, hard-to-reverse decisions. Useful when the team is confident and you need to break the spell of inevitability.\n\n## Usage\n\n**Counter a strategy decision:**\n\n> *\"Use kontra to challenge this: We're going all-in on AI agents for our product roadmap.\"*\n\n**Probe a career move:**\n\n> *\"Use kontra in probe mode to question my decision to leave my job and start a SaaS company. Context: I have 8 months of runway, no co-founder, and a B2B idea with 3 LOIs.\"*\n\n**Red team a launch plan:**\n\n> *\"Use kontra in redteam mode against our plan to launch in 6 weeks. Context: We have no staging environment, 40% test coverage, and one DevOps engineer.\"*\n\n**Pre-mortem a hiring decision:**\n\n> *\"Use kontra in premortem mode on: We're hiring 5 junior engineers instead of 2 seniors. Context: Current team is 4 seniors, shipping velocity is the bottleneck.\"*\n\n### Tool Parameters\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `statement` | string | Yes | The decision, plan, or conclusion to analyze |\n| `context` | string | No | Additional background, constraints, or data |\n| `mode` | enum | No | `counter` (default), `probe`, `redteam`, or `premortem` |\n\n## What This Is NOT\n\n- **Not a pros-and-cons generator.** Kontra doesn't weigh both sides. It attacks one side — yours — with full force.\n- **Not a risk assessment framework.** No probability matrices or color-coded dashboards. Structured argumentation, not bureaucratic process.\n- **Not a generic \"be careful\" warning.** Every output is specific to your decision and context. No boilerplate applies-to-anything advice.\n- **Not a replacement for human judgment.** Kontra surfaces what you might miss. You still decide.\n\n## How It Works\n\nKontra uses the **prompt-return pattern**. When called, it constructs a carefully engineered adversarial prompt and returns it as the tool response. Your MCP client's own LLM processes the prompt and produces the analysis.\n\n- **No API keys needed** — uses your client's existing LLM\n- **No additional network calls** — prompt is returned, not executed\n- **Works with any MCP client** — Claude Desktop, Claude Code, Cursor, VS Code\n\nAnalysis quality scales with model capability. Stronger models produce sharper, more specific contrarian analysis.\n\n## Configuration\n\n| Environment Variable | Default | Description |\n|---------------------|---------|-------------|\n| `KONTRA_DEFAULT_MODE` | `counter` | Default analysis mode |\n| `KONTRA_LOG_LEVEL` | `info` | Log verbosity (`debug` \\| `info` \\| `warn` \\| `error`) |\n\n## License\n\nApache-2.0\n",
  "bytes": 6797,
  "sha": "923e7a4605a3a7ca7633b08d0ecad3b1adc83fbb89e4ba314a8b4d47ef9f80b4",
  "repo_slug": "bluwork/kontra-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_bluwork_kontra_mcp_d50a899f/readme"
}