1. Conduid
  2. AI
  3. mcp
MCP server · AI

mcp

Model Context Protocol (MCP) security proxy for SapperAI

Unclaimed ai
39Low

Scored 5 months ago · breakdown

About mcp

mcp is an MCP server published by git+sapper-ai in the AI category: model Context Protocol (MCP) security proxy for SapperAI.

Install

Install
npx @sapper-ai/mcp
Claude Code
claude mcp add core-gitsappe -- npx -y @sapper-ai/mcp
npx
npx -y @sapper-ai/mcp

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

✦

Ask AI about mcp

Powered by Claude · Grounded in docs

I know everything about mcp. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

  • ✓README presentThe repository ships documentation.
  • !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.

4 checks have not been run yet.

README

SapperAI

Lightweight, rules-based security framework for AI systems. Detect and block prompt injection, command injection, and other threats in real-time.

AI agents with tool-calling capabilities face critical security risks:

  • Prompt injection: Malicious instructions in user input override system behavior
  • Command injection: Dangerous commands executed through tools (rm -rf, SQL injection, etc.)
  • Data exfiltration: Secrets leaked through tool arguments or LLM outputs

SapperAI provides zero-dependency threat detection with:

  • ✅ 96% detection rate (48/50 malicious samples blocked)
  • ✅ Zero false positives (0/100 benign samples blocked)
  • ✅ Sub-millisecond latency (p99: 0.0018ms for rules-only)
  • ✅ Fail-open design (availability over security)

Quick Start

npm install sapper-ai
# or
pnpm install sapper-ai
import { createGuard } from 'sapper-ai'

const guard = createGuard()
const decision = await guard.check({ toolName: 'shell', arguments: { cmd: 'ls' } })

CLI: Scan -> Harden (Recommended)

# 1) Scan your repo (interactive in a TTY)
npx sapper-ai scan

# 2) If you skipped prompts, you can harden explicitly:
npx sapper-ai harden --apply

# 3) To include system-level protection (writes to your home directory):
npx sapper-ai harden --apply --include-system

CI-friendly scan (deterministic, no prompts):

npx -y sapper-ai@0.6.0 scan --policy ./sapperai.config.yaml --no-prompt --no-open --no-save

Architecture

┌──────────────────────────────────────────────────────────────┐
│                        SapperAI Stack                        │
├──────────────────────────────────────────────────────────────┤
│                                                              │
│  @sapper-ai/types (11 types, no deps)                        │
│      │                                                       │
│      └─► @sapper-ai/core (60+ rules, policy engine)          │
│              │                                               │
│              ├─► @sapper-ai/mcp (stdio proxy + CLI)          │
│              │                                               │
│                                                              │
└──────────────────────────────────────────────────────────────┘

Detection Pipeline:
  ToolCall → RulesDetector → DecisionEngine → Guard → Block/Allow

Packages

Package Description Use Case
sapper-ai Single-install wrapper (createGuard + presets + CLI) Default entry point
@sapper-ai/types TypeScript type definitions Custom detectors, integrations
@sapper-ai/core Core detection engine (RulesDetector, DecisionEngine, Guard) Direct integration
@sapper-ai/mcp MCP security proxy Wrap any MCP server

Direct Integration (Advanced)

import { AuditLogger, DecisionEngine, Guard, RulesDetector } from '@sapper-ai/core'
import type { Policy } from '@sapper-ai/types'

const policy: Policy = {
  mode: 'enforce',
  defaultAction: 'allow',
  failOpen: true,
}

const detector = new RulesDetector()
const engine = new DecisionEngine([detector])
const auditLogger = new AuditLogger()
const guard = new Guard(engine, auditLogger, policy)

const decision = await guard.preTool({
  toolName: 'executeCommand',
  arguments: { command: 'rm -rf /' },
})

if (decision.action === 'block') {
  throw new Error(`Blocked: ${decision.reasons.join(', ')}`)
}

Detection Capabilities

Threat Categories (60+ Patterns)

  • Prompt Injection: "ignore previous", "system prompt", "jailbreak", "bypass"
  • Command Injection: rm -rf /, SQL injection (' OR '1'='1), XXE
  • Path Traversal: ../, /etc/passwd, /etc/shadow
  • Data Exfiltration: API keys, secrets, process.env
  • Code Injection: eval(), __import__(), system(), template injection

Educational Context Suppression

False positive reduction for documentation/tutorials containing security keywords.

Performance

Benchmark results (Rules-only pipeline, vitest bench):

RulesDetector.run - small (50B)     737,726 ops/sec  p99: 0.0018ms
DecisionEngine.assess - small       391,201 ops/sec  p99: 0.0030ms
DecisionEngine.assess - large (5KB)  30,785 ops/sec  p99: 0.0424ms

Verified Metrics (MVP)

  • Test Coverage: 80 tests (19 types + 50 core + 11 mcp)
  • Detection Rate: 96% (48/50 malicious samples)
  • False Positives: 0% (0/100 benign samples)
  • Edge Cases: 0% false positives (0/20 edge case samples)
  • Latency: p99 < 10ms (Rules-only)

Installation

# Full monorepo (for development)
git clone https://github.com/sapper-ai/sapperai.git
cd sapperai
pnpm install
pnpm build

Development

# Build all packages
pnpm build

# Run tests (80 tests across 3 packages)
pnpm test

# Run deterministic security smoke tests
pnpm --filter @sapper-ai/core run test:smoke

# Type checking
pnpm exec tsc -b --noEmit

# Benchmarks
pnpm --filter @sapper-ai/core run bench

Operations Docs

  • Runbook index: docs/ops/README.md
  • Watch + quarantine: docs/ops/watch-quarantine.md
  • Threat intel + blocklist: docs/ops/threat-intel.md
  • Adversary campaigns: docs/ops/adversary.md

License

MIT

README copy captured when this server was indexed; it may lag the repository. The original is authoritative.

Questions

About mcp

How do I install mcp?

Run npx @sapper-ai/mcp, then add the server to your MCP client's configuration.

Is mcp safe to use with an AI agent?

Its trust score is 39 out of 100 (low). It passes 1 of the 2 static security checks run so far; the failures are listed above. It has no ConduID identity yet, so agent calls to it are not receipted.

Is mcp still maintained?

Conduid hasn't recorded a commit date for this repository yet. Check the repository directly for recent activity.