edge-soc-mcp

edge-soc-mcp

A Cloudflare Workers MCP server that puts a SOC analyst's enrichment, investigation, and detection-context workflow behind a single endpoint. It aggregates over 20 threat-intel sources into 18 MCP tools for IP, domain, URL, hash, and CVE lookups.

Category
访问服务器

README

edge-soc-mcp

A Cloudflare Workers MCP server that puts a SOC analyst's enrichment, investigation, and detection-context workflow behind a single endpoint, and runs on a free Cloudflare account.

Cloudflare Workers TypeScript MCP Free tier

Why it's built this way

  • One tool per task, not one tool per vendor. ip_lookup fans out across AbuseIPDB, GreyNoise, Shodan, IPinfo, and more, then returns a single verdict instead of five raw API payloads for you to reconcile.
  • Free by default. Runs entirely on Cloudflare's free tier (Workers, Durable Objects, KV, D1, R2, cron). Every paid or keyed source is optional.
  • Degrades cleanly. A missing API key just marks that source auth_missing; the tool still answers with whatever is available.
  • Verdict separated from evidence. Every tool returns the same normalized envelope, so an agent gets a clear answer and the operational notes behind it.

Under the hood it aggregates 20+ threat-intel and detection sources plus bundled corpora (ATT&CK, Sigma, LOLBAS, GTFOBins, HijackLibs, WADComs, D3FEND) into 18 MCP tools.

Tools

Observables

Tool What it does
health Service status and per-source availability
ip_lookup IP reputation, geo/ASN, and exposure
domain_lookup Domain reputation and registration context
url_lookup URL reputation and phishing checks
hash_lookup File-hash reputation and malware context
cve_lookup CVE severity with EPSS score and KEV status

Corpora-backed

Tool What it does
lolbin_lookup Living-off-the-land binaries (LOLBAS / GTFOBins)
dll_hijack_lookup DLL hijacking references (HijackLibs)
command_context Explain a suspicious command line or binary
attack_lookup MITRE ATT&CK technique lookup
sigma_lookup Matching Sigma detection rules

Identity & extras

Tool What it does
account_exposure Infostealer / account exposure (Hudson Rock)
password_check Pwned-password check via HIBP k-anonymity
ja3_lookup JA3 TLS fingerprint reputation (SSLBL)
dns_lookup DNS resolution over DoH
cert_lookup Certificate context (crt.sh / SSLBL)
yara_rule_lookup YARA rule lookup (YARAify)
defense_lookup D3FEND-style defensive countermeasures

What a tool returns

Each tool emits the same normalized envelope, keeping the verdict separate from the evidence behind it:

Field Purpose
query The observable that was looked up
verdict The summarized answer
behavior_tags Notable behaviors observed
attack_ids Related MITRE ATT&CK techniques
rule_refs Related detection rules (e.g. Sigma)
command_explanation Plain-language breakdown, when relevant
analyst_actions Suggested next steps
source_restrictions Usage limits on the data used
sources Raw evidence per source
meta Timing, cache, and diagnostic info

Quickstart

New to Cloudflare? Follow SETUP.md for a step-by-step walkthrough covering account creation, resource provisioning, and client configuration.

The condensed path for developers already familiar with Wrangler:

# 1. Install
bun install

# 2. Log in and create backing resources
bun x wrangler login
bun x wrangler kv namespace create CACHE
bun x wrangler d1 create edge-soc-mcp-db
bun x wrangler r2 bucket create edge-soc-mcp-corpora

# 3. Paste the returned IDs into wrangler.jsonc, then generate types
# wrangler types generates worker-configuration.d.ts from your bindings.
# Re-run it any time wrangler.jsonc changes.
bun x wrangler types

# 4. Seed corpora into R2 and deploy
bun run seed
bun x wrangler deploy

R2 must be enabled in the Cloudflare dashboard before uploads will work.

Optional secrets

The server runs without any keys. Each one just unlocks more sources. Set the ones you want:

bun x wrangler secret put MCP_AUTH_TOKEN      # bearer guard for /mcp and /sse
bun x wrangler secret put ABUSEIPDB_API_KEY
bun x wrangler secret put ABUSE_CH_AUTH_KEY   # URLhaus, ThreatFox, MalwareBazaar, YARAify
bun x wrangler secret put GREYNOISE_API_KEY
bun x wrangler secret put IPINFO_TOKEN
bun x wrangler secret put URLSCAN_API_KEY
bun x wrangler secret put PULSEDIVE_API_KEY
bun x wrangler secret put OTX_API_KEY
bun x wrangler secret put NVD_API_KEY
bun x wrangler secret put HUDSONROCK_API_KEY
bun x wrangler secret put HIBP_API_KEY
bun x wrangler secret put SPUR_TOKEN
bun x wrangler secret put VT_API_KEY

Connecting an MCP client

Point your client at the deployed /mcp URL as a streamable HTTP endpoint:

{
  "type": "streamable-http",
  "url": "https://your-worker.your-subdomain.workers.dev/mcp",
  "headers": { "Authorization": "Bearer your-token" }
}

Legacy SSE clients can use /sse. If MCP_AUTH_TOKEN is set, both endpoints require Authorization: Bearer <token>.

Local development

This project uses Wrangler-generated runtime types (wrangler types) rather than @cloudflare/workers-types. The generated worker-configuration.d.ts is gitignored, so you must generate it before running type checks or tests.

bun install
bun x wrangler types
bun test
bun run typecheck
bun x wrangler dev

The worker exposes GET /health, POST /mcp, and GET /sse.

Full verification before deploy:

bun run typecheck && bun test && bun x wrangler deploy --dry-run --outdir dist

Sources & restrictions

<details> <summary>Free and strongly recommended</summary>

</details>

<details> <summary>Keyless sources, already supported</summary>

  • Shodan InternetDB
  • OpenPhish feed
  • PhishTank best-effort URL check
  • crt.sh
  • RDAP via rdap.org
  • EPSS
  • CISA KEV
  • Hudson Rock Cavalier OSINT
  • HIBP Pwned Passwords
  • Cloudflare DoH
  • Google DoH
  • SSLBL cached feeds

</details>

<details> <summary>Paid or cautionary sources</summary>

  • Have I Been Pwned breach API: key purchase
  • Spur Context: pricing
  • VirusTotal Public API (signup): non-commercial and rate-limited
  • Shodan InternetDB: non-commercial

</details>

Most lookups are passive and low-volume, but public and community APIs still carry rate limits, and some free sources are non-commercial only.

Scheduled refresh

A cron-triggered job keeps fast-moving feeds current:

  • CISA KEV → KV
  • OpenPhish → R2
  • SSLBL IP, JA3, and certificate feeds → R2

Larger corpora are loaded with bun run seed. Re-run it to refresh ATT&CK, Sigma, LOLBAS, GTFOBins, HijackLibs, WADComs, or D3FEND data.

Implementation notes

  • McpAgent is bound to a SQLite Durable Object via new_sqlite_classes, the state path that stays free-plan compatible.
  • The Cloudflare free tier currently supports Durable Objects, KV, D1, R2, and cron, which is everything this server needs.

Non-goals

  • No detonation or sandbox execution
  • No public submission workflows for urlscan, VirusTotal, or YARAify
  • No Sigma query-language translation
  • No Threat Jammer integration

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选