# januscope

Local policy proxy for MCP tools. It enforces read-only rules, redacts sensitive customer data, and records tool executions.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 32
- Author: giancarloerra
- License: AGPL-3.0 · policy=link-only · description only; the file stays with the author
- Source: https://github.com/giancarloerra/JanuScope
- Updated: 2026-10-23
- HTML: https://affpapa.org/en/nevibecode/mcp/januscope

## What it does

The proxy intercepts traffic between an MCP client and downstream servers using a single YAML configuration file known as a Lens. It cuts off destructive capabilities like table drops or arbitrary file edits before they execute. At the same time, the tool scrubs personal details from returned payloads and injects database schemas upfront.

Execution stays strictly on the local machine with no remote gateway handling your traffic. Node.js 20 or newer is required to run the proxy. You also must supply `JANUSCOPE_USER`, `JANUSCOPE_TEAM`, and `JANUSCOPE_SESSION` in your environment, or initialization fails immediately.

The package bundles 20 preconfigured policies for databases, GitHub, and SaaS APIs. Audit events write directly to a local JSONL file for verification. Because rules apply at the proxy layer, upstream endpoints still accept whatever traffic clears your filters.

## Requirements
- Needs: Node.js (commands run via npx)
- Environment variables: `JANUSCOPE_USER`, `JANUSCOPE_TEAM`, `JANUSCOPE_SESSION` — 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 --env JANUSCOPE_USER=<JANUSCOPE_USER> --env JANUSCOPE_TEAM=<JANUSCOPE_TEAM> --env JANUSCOPE_SESSION=<JANUSCOPE_SESSION> --transport stdio januscope -- npx -y januscope
```
Replace <…> with your own values

### Codex

**Platform CLI**
```bash
codex mcp add januscope --env JANUSCOPE_USER=<JANUSCOPE_USER> --env JANUSCOPE_TEAM=<JANUSCOPE_TEAM> --env JANUSCOPE_SESSION=<JANUSCOPE_SESSION> -- npx -y januscope
```
Replace <…> with your own values

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "januscope": {
            "command": "npx",
            "args": [
                "-y",
                "januscope"
            ],
            "env": {
                "JANUSCOPE_USER": "<JANUSCOPE_USER>",
                "JANUSCOPE_TEAM": "<JANUSCOPE_TEAM>",
                "JANUSCOPE_SESSION": "<JANUSCOPE_SESSION>"
            }
        }
    }
}
```
Replace <…> with your own values

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "januscope": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "januscope"
            ],
            "env": {
                "JANUSCOPE_USER": "<JANUSCOPE_USER>",
                "JANUSCOPE_TEAM": "<JANUSCOPE_TEAM>",
                "JANUSCOPE_SESSION": "<JANUSCOPE_SESSION>"
            }
        }
    }
}
```
Replace <…> with your own values

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e JANUSCOPE_USER=<JANUSCOPE_USER> -e JANUSCOPE_TEAM=<JANUSCOPE_TEAM> -e JANUSCOPE_SESSION=<JANUSCOPE_SESSION> januscope npx -y januscope
```
Replace <…> with your own values

## When to use it
- stop destructive actions such as deleting database tables
- strip email addresses and sensitive attributes from model context
- log every tool interaction into a local JSONL audit trail
- inject database schemas beforehand to reduce token overhead

## Example prompts
- Query the orders database and verify that personal email fields remain masked
- Attempt an update query against the database to confirm read-only policy enforcement

## 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
