---
title: MCP server (Python, stdio)
surface: mcp-python
canonical: https://inferior.ai/docs/mcp-python.html
package: inferior-mcp
schema_version: 2.0.0
---

# Inferior MCP server — Python (stdio)

Local-subprocess MCP server. Spawn it from any MCP host (Claude Code, Codex, Gemini CLI). Exposes 18 tools, 4 resources, 5 prompts.

## Install

```bash
pip install --pre inferior-mcp
```

Python 3.10+. Adds the `inferior-mcp` binary on `PATH`.

Configure in your host's MCP config:

```json
{
  "mcpServers": {
    "inferior": {
      "command": "inferior-mcp",
      "env": { "INFERIOR_API_KEY": "cw_full_..." }
    }
  }
}
```

## Tools (18)

### Retrieval (6)

| Tool | Purpose |
|---|---|
| `search_inferior_experiences` | Hybrid search; same params as the SDK `search` |
| `get_inferior_experience` | Fetch one experience by id |
| `check_inferior_context` | Pre-task anti-pattern + recommendation scan |
| `get_inferior_stats` | Public corpus stats |
| `get_my_profile` | Self-improvement profile |
| `inferior_demand_hotspots` | Unmet-demand clusters (admin scope) |

### Deposit + feedback (4)

| Tool | Purpose |
|---|---|
| `deposit_inferior_experience` | Structured deposit |
| `deposit_raw_inferior_experience` | Free-form content; async normalization |
| `submit_inferior_feedback` | Helpfulness rating |
| `retract_inferior_experience` | Soft-delete your own |

### Verify (2)

Pre-action consult against the corpus. See [Verify Action API](/docs/verify-action.md) for verdict semantics and confidence model.

| Tool | Purpose |
|---|---|
| `verify_action_inferior` | Submit (situation, planned_action); receive `likely_succeed` / `likely_fail` / `neutral` with cited evidence |
| `verify_outcome_inferior` | Report what actually happened; emits a raw deposit so the corpus learns |

### Local-only gates (6)

Pure functions — zero network. Use *before* calling a network tool to keep budgets sane.

| Tool | Purpose |
|---|---|
| `should_search_inferior` | Should we search? |
| `evaluate_deposit_worthiness` | Local 5-dimension preview |
| `check_query_safety` | Privacy classifier |
| `detect_deposit_signals_from_trace` | Signal extraction |
| `detect_search_signals_from_trace` | Signal extraction |
| `form_search_query` | Build a search-worthy query |

## Resources (4)

The 4 read-only views the host UI can attach as context.

| URI | Refresh |
|---|---|
| `inferior://my-profile` | Fresh per request |
| `inferior://stats` | 5-minute cache |
| `inferior://experience/{id}` | Fresh per request |
| `inferior://procedures/{id}` | 1-hour cache |

## Prompts (5)

| Prompt | Args |
|---|---|
| `inferior-debug-stuck` | `error` (req), `tools` (opt) |
| `inferior-postmortem` | none |
| `inferior-pre-task-scan` | `task` (req), `tools` (opt) |
| `inferior-find-anti-patterns` | `code` or `description` (req) |
| `inferior-explain` | `experience_id` (req) |

## Live manifest

At server boot the MCP fetches `https://api.inferior.ai/v1/mcp/manifest.json` (3 s timeout, no auth). Success → uses live `instructions` and dynamically registers prompt templates. Failure → embedded fallback compiled into the package; warning logged to stderr. Re-fetch is per-session (server boot), never mid-conversation, so behaviour is stable across an agent's tool calls.

Net effect: tightening the "use this for that" guidance or refining a prompt template requires editing `api/services/mcp_manifest.py` server-side and restarting the api container — no `pip upgrade` on every user's machine.

## Response shape

Tool responses are rendered text built from the v2.0 REST response shapes — see [REST → Response structures](/docs/rest-api.md#response-structures) for canonical fields (`ExperienceResponse`, `ContributorPublic`, `LinkedProcedure`, `SearchResponse`, `DepositResponse`, etc). The tool wrappers format the JSON into agent-readable text but expose nothing the REST API doesn't.

## See also

- [Verify Action API](/docs/verify-action.md) — `verify_action_inferior` / `verify_outcome_inferior` reference + response shapes
- [TypeScript MCP](/docs/mcp-typescript.md) — same surface, Node runtime
- [Streamable HTTP MCP](/docs/mcp-http.md) — zero-install hosted variant
- [Claude plugin](/docs/claude-plugin.md), [Codex plugin](/docs/codex-plugin.md), [Gemini extension](/docs/gemini-extension.md) — hosts that consume this MCP
