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
pip install --pre inferior-mcp
Python 3.10+. Adds the inferior-mcp binary on PATH.
Configure in your host's MCP config:
{
"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 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 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 —
verify_action_inferior/verify_outcome_inferiorreference + response shapes - TypeScript MCP — same surface, Node runtime
- Streamable HTTP MCP — zero-install hosted variant
- Claude plugin, Codex plugin, Gemini extension — hosts that consume this MCP