scorton-mcp
MCP server for behavioral cybersecurity and AI risk scoring in financial workflows, deployed on Cloudflare Workers.
README
scorton-mcp
Cloudflare Workers MCP server for behavioral cybersecurity and AI risk in financial workflows.
Built with the universal @modelcontextprotocol/sdk and Cloudflare's agents McpAgent runtime.
What this server provides
MCP tools
score_human_riskscore_ai_riskscore_workflow_riskrun_ai_eval_summarygenerate_audit_snapshothealth_check
MCP resources
scorton://policy-profile— active scoring policy and thresholds.
All tool inputs are validated with Zod and outputs are machine-oriented JSON.
Architecture
src/
config/ # app metadata + scoring thresholds
mcp/ # ScortonMCP agent (tools + resources)
schemas/ # Zod input/output schemas
services/ # pure business logic / scoring
utils/ # logger + structured errors
tests/ # node:test unit tests
Runtime
- Framework:
@modelcontextprotocol/sdk+agents/mcp - Hosting: Cloudflare Workers + Durable Objects
- Endpoint:
https://<worker>.workers.dev/mcp
Quick start
Prerequisites
- Node.js 18+
- Cloudflare account with Workers enabled
wrangler login
Local development
npm install
npm run dev
Server runs at http://localhost:8788/mcp.
Test with MCP Inspector:
npx @modelcontextprotocol/inspector@latest
# Open http://localhost:5173 and connect to http://localhost:8788/mcp
Deploy to Cloudflare
- Update
wrangler.jsoncvars:MCP_URL→ your worker URL (e.g.https://scorton-mcp.scortonlabs.workers.dev)TEAM_DOMAIN→ your Access team (e.g.https://scortonlabs.cloudflareaccess.com)POLICY_AUD→ AUD tag from Zero Trust → Access → your application
- Deploy:
npm run deploy
- Connect clients to
https://scorton-mcp.scortonlabs.workers.dev/mcp.
Cloudflare Access (required for protected workers)
If the worker is behind a self-hosted Access application, set TEAM_DOMAIN and POLICY_AUD in wrangler.jsonc (or Worker dashboard vars). The worker validates the Cf-Access-Jwt-Assertion header on /mcp requests.
Find the AUD tag: Zero Trust → Access → Applications → your app → AUD tag.
Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"scorton": {
"command": "npx",
"args": ["mcp-remote", "https://scorton-mcp.<your-subdomain>.workers.dev/mcp"]
}
}
}
Cursor — add as a remote MCP server with the same URL.
Configuration
Scoring thresholds are set via Worker vars in wrangler.jsonc:
| Variable | Default | Purpose |
|---|---|---|
RISK_HUMAN_BASELINE_THRESHOLD |
0.2 |
Human baseline deviation flag threshold |
RISK_AI_FAILURE_WEIGHT |
0.5 |
Weight of eval failures in AI risk score |
RISK_WORKFLOW_HIGH_VALUE_THRESHOLD |
100000 |
USD threshold for high-value workflow flag |
Scripts
npm run dev # wrangler dev (local Worker)
npm run deploy # deploy to Cloudflare
npm run typecheck # TypeScript checks
npm run test # unit tests (services layer)
npm run cf-typegen # regenerate worker Env types
Example tool payloads
score_human_risk
{
"actorId": "user-42",
"baselineDeviation": 0.61,
"velocityAnomalyScore": 0.88,
"navigationAnomalyScore": 0.74,
"repeatedEditsCount": 7,
"sourceChannel": "new-device",
"workflowContext": "wire-transfer-approval"
}
score_ai_risk
{
"modelId": "llm-payments-v3",
"evalFailureRate": 0.31,
"useCaseCriticality": "mission-critical",
"complianceCategory": "aml",
"productionExposure": "full",
"recentIncidents": 2
}
score_workflow_risk
{
"workflowId": "ap-invoice-2026-0009",
"sequenceAnomalyScore": 0.67,
"actorRole": "approver",
"transactionValueUsd": 240000,
"vendorOrPaymentChangeSignal": true,
"changeWindowMinutes": 22
}
Optional: Cloudflare Access MCP portal
Register this server in Cloudflare Access AI controls to add OAuth governance and a managed portal for your team.
Migration from v1 (mcp-use / Dokploy)
v1 used mcp-use on Node.js + Docker. v2 runs on Cloudflare Workers with the standard MCP SDK. Tool names, schemas, and scoring logic are unchanged — only the transport/runtime changed.
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.