# self-inspect-mcp [Health: Active]

**Category:** 🗣️ Conversational AI  
**Repository:** https://github.com/ejentum/self-inspect-mcp  
**GitHub Stars:** 7  
**npm Downloads (last month):** 98  
**Views:** 2  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/self-inspect-mcp

## Description
Send a thought, get one metathought that makes your agent inspect its own assumptions. Keyless.

## Tools
Capabilities this server exposes over MCP:

- **self_inspect** — Self-Inspect. Express a thought, or describe the task you are working on, and you always get back ONE metathought: a short abstract question that makes you inspect your own task and assumptions before continuing. Use it whenever you want a self-check: after forming a hypothesis, before committing to an answer, when a long chain feels like it has drifted, when you notice you are agreeing to please, or when you are about to assert something from memory. There is no failure case: it always returns a metathought to question yourself with, selected by a transparent heuristic over an open CSV (no LLM). Keyless and free. DO NOT call for factual lookups or as a substitute for doing the task. Absorb the question and act on it; do not echo it verbatim to the user.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "self-inspect-mcp": {
    "command": "npx",
    "args": ["-y","self-inspect-mcp"]
  }
}
```

## Documentation

## What self-inspect-mcp does

The self-inspect-mcp MCP server gives an agent a question it may not have generated during its own reasoning. The input is a thought or task description; the output is a short metathought that directs attention toward an assumption, commitment, missing evidence, unsupported inference, or confidence judgment. It does not provide an answer, advice, or a model-generated critique.

The MCP interface exposes one tool, `self_inspect`, with a required `thought` input. The tool returns the selected metathought text. The REST endpoint also returns a label alongside the metathought, while the MCP response is described as metathought text.

Use it as a checkpoint after forming a hypothesis, before taking an action, before committing to a plan or final response, or when the agent has reached a genuine reasoning obstacle. The project’s evaluation reports that calling it at every step can produce artificial corrections, so the documented use pattern is selective rather than scheduled.

## How it works

The selector normalizes the thought by lowercasing it, applying Unicode NFKC normalization, replacing non-alphanumeric characters with spaces, collapsing whitespace, and tokenizing the result. It then scores cognitive lenses from `selfinspect.csv`. Lens-name tokens receive greater weight than matching content tokens gathered from that lens’s questions.

The highest-scoring lens wins. Ties use defined ordering rules, and the selected lens’s question is chosen using local content matches and operator rank. If no lens has a signal, a universal question is selected from a small default set using a stable hash of the input. The result is therefore always non-empty, and the same input produces the same metathought.

The implementation does not call an LLM, use embeddings, or perform semantic similarity matching. The self-inspect-mcp MCP server can therefore produce an auditable, model-independent record of the question returned.

## Setup and configuration

The hosted Streamable HTTP MCP endpoint is available at `https://api.ejentum.com/self-inspect-mcp` and requires no API key. Claude Code can register it with an HTTP transport command, while Claude Desktop, Cursor, and other HTTP-MCP clients can use a server entry with the endpoint URL. Hosted access is subject to per-IP rate limits: 60 requests per minute for MCP and 120 requests per minute for REST.

For a local stdio deployment, the repository provides the `mcp/` package and the npm package can be launched with `npx self-inspect-mcp`. Setting `SELF_INSPECT_LOCAL=1` makes the selector run locally. The repository also includes a standalone Python file with the CSV embedded and no external dependencies; it can be called from the command line or imported as a Python function.

The local Python implementation is tested for byte-identical parity with the JavaScript engine. This supports using the same selector locally, through JavaScript, or through the hosted endpoint.

## Tools and capabilities

- Call `self_inspect` with a thought and receive one metathought.
- Use the REST endpoint with a JSON `thought` field and receive a label plus metathought.
- Run the selector through hosted HTTP MCP, local stdio, JavaScript, or the standalone Python implementation.
- Inspect and modify the open CSV question data when changing routing coverage.
- Distinguish routed results from universal defaults through the REST selector’s `matched` flag.

## Limitations and notes

The self-inspect-mcp MCP server does not reason about the input with a language model and does not validate whether the returned question is relevant to the agent’s actual situation. The agent must answer the metathought and decide how to revise its reasoning.

A deterministic result is not automatically a useful intervention. The project’s evaluation describes better results when the agent responds with a concrete counterexample and rebuilds its claim, and worse results when the tool is invoked mechanically at every step. Hosted interfaces are keyless but rate-limited per IP. Local stdio use avoids the hosted network path, while the Python distribution is intended to reproduce the published selector rather than add a separate reasoning system.

_Full upstream README: https://allmcps.com/mcp/self-inspect-mcp/readme_

