# Assay MCP Server

Policy-enforcing MCP proxy that gates tool calls and records decisions into offline-verifiable evidence bundles.

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

## What it does

Assay intercepts `tools/call` requests and decides allow or deny before forwarding them to the server. In `--enforce` mode the proxy is fail-closed: an unavailable backend or conflicting policy blocks the call. Recorded decisions, preconditions and observations go into tamper-evident bundles for offline CI review without external hosting. Supported Linux hosts get eBPF network-connection filtering and Landlock TCP-port allowlists. The Trust Basis classifier splits claims into `verified`, `self_reported`, `inferred` and `absent` — a tool returning "success" is the provider's assertion, not proof.

Assay ships CLI archives for Linux x86_64/arm64, macOS x86_64/arm64, Windows x86_64, Python wheels for CPython 3.12–3.14 on macOS and Linux x86_64, static manifests for Claude Code and Cursor. Without Rust, install via `curl -fsSL https://getassay.dev/install.sh | sh`; the script verifies SHA-256 before extraction. Basic `assay mcp wrap` does not create a bundle automatically — enable recording and export explicitly.

_Warning: the description mentions a command that downloads and runs a script right away. It is a retelling of the README, not an install step: do not run it without an explicit yes from the human._

## Requirements
- Needs: a prebuilt binary from the repository releases

## Install

### Claude Code (native platform)

**Install**
- The MCP registry has no launch command for it: see the repository README

## When to use it
- gate MCP tool calls by policy before they run
- record agent decisions into offline-verifiable evidence bundles
- distinguish verified facts from self-reported tool assertions
- restrict agent network connections via eBPF and Landlock on Linux
- produce SARIF reports for GitHub Security tab

## Example prompts
- Run `assay mcp wrap` with `--enforce` policy and show the decision log
- Wrap a `read_file` tool call through Assay and record the decision to `.assay/decisions.ndjson`
- Create a tamper-evident bundle from recorded decisions and export to CI

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