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.
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.
- 中文 README: README.zh-CN.md
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),nbformatparses.ipynbdirectly, 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 (
languageserverLSP, 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
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
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.
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.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
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.
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.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.