vigil-fraud-alert-mcp
Vigil Fraud Alert — API + MCP Server
Proximity-based card fraud detection for Vigil / Ebenova Solutions.
Turns the Vigil proximity engine into a callable REST API and MCP server with Claude-powered transaction analysis, risk scoring, and AML report generation.
Quick Start
cd vigil-fraud-alert-mcp
npm install
npm run build # esbuild — fast, no memory issues
npm run start:http # REST API + MCP on http://localhost:3000Test it's running:
curl http://localhost:3000/
curl http://localhost:3000/api/v1/healthClaude Desktop Setup (stdio MCP)
Add to %APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"vigil-fraud-alert": {
"command": "node",
"args": ["C:/projects/ProximityGuard/vigil-fraud-alert-mcp/dist/index.js"]
}
}
}Restart Claude Desktop. You'll have 13 tools available instantly.
MCP Tools (13 total)
Core Authorization
Tool | What it does |
| Run a transaction through the proximity engine → approve/decline |
| Get card config + GPS freshness |
| Switch home / travel / lockdown |
| Push fresh GPS snapshot |
| Add country + date range travel plan |
Transactions & Alerts
Tool | What it does |
| Query decision history |
| Record "was this you?" response |
| List fraud alerts by status/severity |
| Advance alert through investigation workflow |
| Live risk score 0–100 per card |
AI-Powered (Claude Haiku / Sonnet)
Tool | What it does |
| AI risk analysis — factors, SMS copy, recommendation |
| Emergency card lockdown + alert escalation |
| Full AML compliance report (Claude Sonnet) |
REST API
Core endpoints
POST /api/v1/authorize # Proximity engine decision
GET /api/v1/cards/:id # Card config + GPS age
PATCH /api/v1/cards/:id/mode # { mode: "home"|"travel"|"lockdown" }
POST /api/v1/cards/:id/gps # GPS snapshot update
POST /api/v1/cards/:id/travel-plans # Add travel plan
GET /api/v1/transactions # ?card_id=&approved=&limit=
POST /api/v1/transactions/:id/confirm # { confirmed: "yes"|"no" }
GET /api/v1/alerts # ?card_id=&status=&severity=
PATCH /api/v1/alerts/:id # { status, notes }
GET /api/v1/cards/:id/risk # Risk profileAI endpoints (Anthropic-powered)
POST /api/v1/fraud/analyze # AI transaction analysis
GET /api/v1/fraud/score/:card_id # Risk score 0–100 + explanation
POST /api/v1/fraud/report # AML compliance reportExample: Authorize a transaction
curl -X POST http://localhost:3000/api/v1/authorize \
-H "Content-Type: application/json" \
-d '{
"card_id": "card_01",
"merchant_name": "Safeway",
"merchant_city": "Calgary",
"merchant_country": "CA",
"merchant_network_id": "safeway_yyc_001",
"merchant_mcc": "5411",
"merchant_lat": 51.049,
"merchant_lng": -114.08,
"amount_cents": 4250,
"currency": "cad"
}'Example: AI fraud analysis
curl -X POST http://localhost:3000/api/v1/fraud/analyze \
-H "Content-Type: application/json" \
-d '{ "transaction_id": "txn_002" }'Example: AML report
curl -X POST http://localhost:3000/api/v1/fraud/report \
-H "Content-Type: application/json" \
-d '{ "card_id": "card_01", "period_start": "2026-03-01", "period_end": "2026-03-31" }'Architecture
Stripe/Lithic webhook → POST /api/v1/authorize
↓
Proximity Engine (issuer-agnostic)
decision-engine.ts / haversine
↓
AuthorizationDecision
+ auto-create FraudAlert
↓
(async) POST /api/v1/fraud/analyze
→ Claude Haiku: risk score, SMS copy
↓
(async) Twilio SMS → user
↓
User replies NO → vigil_block_transaction
→ card.mode = lockdown
→ Stripe card.update({ status: 'canceled' })Demo Cards
Card | Location | Mode |
| Calgary, CA | home (radius 50km) |
| Toronto→London | travel (GB plan active) |
| New York, US | lockdown |
What AI Does / Does Not Do
Does: Pattern analysis, human-readable risk explanations, SMS copy generation, AML report writing, anomaly reason generation.
Does not: Hold funds, make final block decisions, store card numbers (PCI). Final authority to block always rests with the user or human analyst. Stripe/Lithic hold the regulated licenses — Vigil is software-only.
Environment Variables
PORT=3000 # HTTP port (default 3000)
TRANSPORT=http # http or stdio (default stdio)
# Anthropic API key is handled by the platform (Claude.ai / Claude Desktop)
# In standalone deployment, set: ANTHROPIC_API_KEY=sk-ant-...Part of Ebenova Solutions — Vigil LLC
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/dgtalquantumleap-ai/vigil-fraud-alert-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server