# humane-proxy

Screens messages for self-harm and criminal intent before they reach an LLM. Use it to flag risky prompts and alert an operator.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 27
- Author: Vishisht16
- License: Apache-2.0 · policy=link-only · description only; the file stays with the author
- Source: https://github.com/Vishisht16/Humane-Proxy
- Updated: 2026-07-29
- HTML: https://affpapa.org/en/nevibecode/mcp/humane-proxy

## What it does

humane-proxy checks each message before forwarding it to an upstream language model. A self-harm signal can trigger a block and a response with crisis contacts; suspected criminal intent is blocked or flagged. Safe messages continue to the model. In MCP mode, an agent can call `check_message_safety`, `get_session_risk`, and `list_recent_escalations`.

The checks can run through a cascade of heuristics, semantic embeddings, and an LLM reasoning stage. Embeddings require the `onnx` or `ml` extra, while the reasoning stage needs an API key. The base setup uses heuristics and SQLite storage, so those later stages are optional. For Claude Code, the setup command passes `OPENAI_API_KEY` and `GROQ_API_KEY`; checks that call those APIs depend on the corresponding keys being available.

## Requirements
- Needs: Python and uv (commands run via uvx)
- Environment variables: `OPENAI_API_KEY`, `GROQ_API_KEY` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add humane-proxy -e OPENAI_API_KEY=<OPENAI_API_KEY> -e GROQ_API_KEY=<GROQ_API_KEY> -- uvx humane-proxy
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from humane-proxy <command>

### Codex

**Platform CLI**
```bash
codex mcp add humane-proxy --env OPENAI_API_KEY=<OPENAI_API_KEY> --env GROQ_API_KEY=<GROQ_API_KEY> -- uvx humane-proxy
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from humane-proxy <command>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "humane-proxy": {
            "command": "uvx",
            "args": [
                "humane-proxy"
            ],
            "env": {
                "OPENAI_API_KEY": "<OPENAI_API_KEY>",
                "GROQ_API_KEY": "<GROQ_API_KEY>"
            }
        }
    }
}
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from humane-proxy <command>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "humane-proxy": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "humane-proxy"
            ],
            "env": {
                "OPENAI_API_KEY": "<OPENAI_API_KEY>",
                "GROQ_API_KEY": "<GROQ_API_KEY>"
            }
        }
    }
}
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from humane-proxy <command>

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e OPENAI_API_KEY=<OPENAI_API_KEY> -e GROQ_API_KEY=<GROQ_API_KEY> humane-proxy uvx humane-proxy
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from humane-proxy <command>

## When to use it
- screen a prompt for self-harm before forwarding it to an LLM
- flag suspected criminal intent and notify an operator
- check an individual message with an MCP tool
- inspect session risk and recent escalations

## Example prompts
- Check this message for safety with `check_message_safety`.
- Get the risk level for this session using `get_session_risk`.
- List recent escalations with `list_recent_escalations`.

## Similar
- [REA](https://affpapa.org/en/nevibecode/mcp/rea.md) — MCP server · ★ 386989
- [World Monitor](https://affpapa.org/en/nevibecode/mcp/world-monitor.md) — MCP server · ★ 89408
- [mcp](https://affpapa.org/en/nevibecode/mcp/kubeshark-mcp.md) — MCP server · ★ 12109
- [Robin: AI-Powered Dark Web OSINT](https://affpapa.org/en/nevibecode/mcp/robin-ai-powered-dark-web-osint.md) — MCP server · ★ 7658
- [jshookmcp](https://affpapa.org/en/nevibecode/mcp/jshookmcp.md) — MCP server · ★ 2061
- [OpenOSINT](https://affpapa.org/en/nevibecode/mcp/openosint.md) — MCP server · ★ 1802

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
