shadow-perception-mcp

shadow-perception-mcp

An MCP server that scans data science artifacts (Jupyter notebooks, R scripts, code) and runs a 5-voice compliance council to detect issues like leakage and fairness, outputting signed verdicts.

Category
Visit Server

README

shadow-perception-mcp

Shadow's eye. Reads what a knowledge worker is looking at (Kaggle notebook / Power BI dashboard / R analysis / trading terminal) and feeds it to a deterministic 5-voice council. Sign-off on the observation with Ed25519 so the artifact is procurement-grade.

Companion product to alex-jb/shadow-mentor — Shadow's banking loan council. Same Ed25519 attestation primitive, same 5-voice architecture, different target audience.

What it does

Point Shadow's eye at a Jupyter notebook, Power BI report, or R session. Five voices review it:

  • Leakage — train/test contamination, target leakage, temporal leakage
  • Fairness — protected-class proxies (ECOA §701 / GDPR Art. 9) in features
  • Reproducibility — seed pinning, environment lock, deterministic ops
  • Compliance — Kaggle competition rules, SR 11-7 model risk, EU AI Act Art. 22
  • Ops — inference latency, memory, deploy footprint

Each voice returns SHIP / REWORK / BLOCK. Ed25519 signature over the verdict — attach to your Kaggle submission or share with a teammate as proof of pre-submit review.

Install (as MCP server)

// ~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "shadow-perception": {
      "command": "npx",
      "args": ["-y", "shadow-perception-mcp"]
    }
  }
}

Then in Claude Desktop: /perception scan this notebook.

Install (as CLI, no MCP)

npm install -g shadow-perception-mcp
shadow-perception scan my-kaggle-notebook.ipynb

Three MCP tools shipped

  • shadow_perception_scan — read a Jupyter notebook, R script, or code file; return structured observations (imports / functions / cells / detected leakage patterns).
  • shadow_perception_council — run the 5-voice council on structured observations; return verdict + per-voice rationale + adverse-action codes.
  • shadow_perception_attest — Ed25519 sign the verdict; produces an attestation JSON that anyone with the public key can verify.

Why fork perception from shadow-mentor?

  • Bank counsel review face — Shadow banking edition sells to Raymond James, LPL, Stifel. Bank counsel does not want "watches employee screens" in the same procurement contract. Keeping perception in a separate repo shrinks their sign-off surface.
  • Different audience — Kaggle competitors and data scientists want a mentor that sees their notebook. Bank counsel wants a mentor that never leaves the VPC. Same architecture, different distribution.
  • Same primitive — Ed25519 attestation + 5-voice council + MCP server pattern is verbatim from shadow-mentor. Nothing new to invent; just a new vertical rubric.

Why start with Kaggle first

  • Cheapest to build: Python LSP is mature (pyright), nbformat parses .ipynb directly, Kaggle API exposes competition rules. Zero vision needed.
  • Most differentiated: no OSS tool today runs a 5-voice pre-submit council on a Kaggle notebook with Ed25519 sign-off. Copilot / Cursor autocomplete; they don't audit.
  • Biggest audience: ~15M Kaggle users as of 2026.

Roadmap

  • v0.1 (this release) — Kaggle notebook scan + council + attestation
  • v0.2 — Power BI (XMLA endpoint parse, DAX measure council)
  • v0.3 — R (languageserver LSP, ggplot2 features council)
  • v0.4 — Trading terminal (Interactive Brokers ib_insync, pre-trade council)
  • v0.5 — Vision fallback (Claude Vision on charts / dashboards where LSP is blind)

Verticals ship as separate SKILL.md files on skills.sh so users install only what they need.

Relationship to shadow-mentor

Shadow banking council + Shadow perception mcp = the full "compliance council + reality reader" story used in the IEEE VR 2027 paper "Ambient Council for Regulated AI Decisions." Both repos MIT, both authored by Alex Ji, both share the Ed25519 attestation primitive so decisions from either can be cross-verified with the same public key.

License

MIT — see LICENSE.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured