Robin: AI-Powered Dark Web OSINT
Dark web OSINT over Tor: search onion engines, scrape pages, report with your own model.
Live threat intel for agents: incidents, actors, CVEs with KEV/EPSS, ransomware leak-site victims.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
검사 5/5 통과 · 내가 묻는 내용은 제작자 서버(threatcluster.io)를 거쳐요 · ✓ 명령 확인 2026년 11월 14일
먼저: 어떤 AI를 쓰시나요?
쓰는 앱을 고르면 아래에 단계가 나옵니다.
Claude에 연결할 수 있어요 · 약 5분
Threatcluster 키가 필요해요 (제작자 사이트에서 만들기) · claude.ai나 데스크톱 앱에서 한 번 설정하면 채팅에서 쓸 수 있어요 · 무료 계정은 1개까지 · Team/Enterprise는 소유자(Owner)가 추가
제작자 사이트에서 가입하고 다음 단계에 쓸 API 키를 만드세요. 요금과 무료 요금제는 제작자 사이트에서 확인하세요.
키 받는 방법은 아래 제작자 README에 있어요
CustomizeConnectors
여기서 복사해 Claude의 같은 이름 칸에 붙여 넣고 Continue를 누르세요
Threatclusterhttps://threatcluster.io/mcpRequest headers에 이 이름과 값을 추가
X-API-Key<여기에 키 붙여 넣기>키는 앱 입력란에만 붙여 넣고, 채팅에 붙이거나 다른 사람에게 보내지 마세요
Claude가 찾은 로그인 설정 화면에서 Continue를 누르고 · Authentication은 제작자 안내대로(Sign in now, Sign in when needed, No sign in) 고른 뒤 Add를 누르세요
+ConnectorsThreatcluster
Threatcluster을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐✓ Claude가 Threatcluster을 쓰고 있다고 하거나 답에 Threatcluster 도구 이름이 나오면 연결된 거예요
메뉴 이름은 2026년 11월 11일에 Anthropic 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요
ChatGPT는 아직 Threatcluster에 연결할 수 없어요
Threatcluster는 연결할 때 내 키가 필요한데, OpenAI 도움말은 OAuth 로그인만 설명하고 우리가 확인한 키 입력 방법이 없어요
A · Threatcluster에 연결되는 앱 쓰기
B · 사이버 보안에서 ChatGPT에 연결되는 다른 서버
같은 분류에서 많이 쓰는 것 중 키 없이 주소만으로 연결되는 것을 골랐어요
Claude Code에 연결할 수 있어요 · 약 5분
Threatcluster 키가 필요해요 (제작자 사이트에서 만들기)
제작자 사이트에서 가입하고 다음 단계에 쓸 API 키를 만드세요. 요금과 무료 요금제는 제작자 사이트에서 확인하세요.
키 받는 방법은 아래 제작자 README에 있어요
Mac: Command+스페이스를 누르고 Terminal 입력 · Windows: PowerShell 열기
claude mcp add --transport http --scope user threatcluster https://threatcluster.io/mcp --header 'X-API-Key: your-value'Enter 전에 “your-value”를 내 키로 바꾸세요
키는 앱 입력란에만 붙여 넣고, 채팅에 붙이거나 다른 사람에게 보내지 마세요
Threatcluster이 목록에 있고 연결됨으로 보이면 돼요
Threatcluster을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐✓ Claude Code가 Threatcluster을 쓰고 있다고 하거나 답에 Threatcluster 도구 이름이 나오면 연결된 거예요
메뉴 이름은 2026년 11월 11일에 Anthropic 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요
Cursor에 연결할 수 있어요 · 약 5분
Threatcluster 키가 필요해요 (제작자 사이트에서 만들기)
제작자 사이트에서 가입하고 다음 단계에 쓸 API 키를 만드세요. 요금과 무료 요금제는 제작자 사이트에서 확인하세요.
키 받는 방법은 아래 제작자 README에 있어요
Threatcluster 설정에서 X-API-Key가 비어 있어요. 내 키를 넣고 저장하세요
키는 앱 입력란에만 붙여 넣고, 채팅에 붙이거나 다른 사람에게 보내지 마세요
Threatcluster을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐✓ Cursor가 Threatcluster을 쓰고 있다고 하거나 답에 Threatcluster 도구 이름이 나오면 연결된 거예요
메뉴 이름은 2026년 11월 11일에 Cursor 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요
VS Code에 연결할 수 있어요 · 약 5분
Threatcluster 키가 필요해요 (제작자 사이트에서 만들기)
제작자 사이트에서 가입하고 다음 단계에 쓸 API 키를 만드세요. 요금과 무료 요금제는 제작자 사이트에서 확인하세요.
키 받는 방법은 아래 제작자 README에 있어요
Threatcluster 설정에서 X-API-Key가 비어 있어요. 내 키를 넣고 저장하세요
키는 앱 입력란에만 붙여 넣고, 채팅에 붙이거나 다른 사람에게 보내지 마세요
Threatcluster을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐✓ VS Code가 Threatcluster을 쓰고 있다고 하거나 답에 Threatcluster 도구 이름이 나오면 연결된 거예요
메뉴 이름은 2026년 11월 11일에 VS Code 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요
Claude Code
claude mcp add --transport http --scope user threatcluster https://threatcluster.io/mcp --header 'X-API-Key: your-value'Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"threatcluster": {
"url": "https://threatcluster.io/mcp",
"headers": {
"X-API-Key": "your-value"
}
}
}
}VS Code (mcp.json)
{
"servers": {
"threatcluster": {
"type": "http",
"url": "https://threatcluster.io/mcp",
"headers": {
"X-API-Key": "your-value"
}
}
}
}Claude Code
claude mcp add --scope user threatcluster --env THREATCLUSTER_API_KEY=your-value -- npx -y threatcluster-mcpClaude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"threatcluster": {
"command": "npx",
"args": [
"-y",
"threatcluster-mcp"
],
"env": {
"THREATCLUSTER_API_KEY": "your-value"
}
}
}
}Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"threatcluster": {
"command": "npx",
"args": [
"-y",
"threatcluster-mcp"
],
"env": {
"THREATCLUSTER_API_KEY": "your-value"
}
}
}
}VS Code (mcp.json)
{
"servers": {
"threatcluster": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"threatcluster-mcp"
],
"env": {
"THREATCLUSTER_API_KEY": "your-value"
}
}
}
}THREATCLUSTER_API_KEY 비밀 필수 envTHREATCLUSTER_API_BASE env설명은 아직 영어 원문입니다.
이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
이 서버의 연결 방식과 각 앱의 공식 문서를 바탕으로 했어요. 2026년 11월 10일 확인.
인터넷으로 연결하는 앱
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatOpen WebUIRaycast
내 컴퓨터에서 실행하는 앱
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
서버가 도구 목록을 보여 주기 전에 로그인을 요구해요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 14일 점검
레지스트리 이름이 GitHub 계정 Jam0k 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
코드 마지막 변경: 30일 전
GPL-3.0 사용
215ms 만에 응답(HTTP 401)
OAuth 로그인을 지원한다고 밝혀서, AI 앱이 로그인 화면으로 안내해 줘요
아직 점검하지 않았어요. 엔드포인트를 점검할 때 도구 목록을 읽어요
질문하고, 팁을 나누고, 안 되는 점을 알려 주세요. "도움이 됨"이 많은 순서예요.
아직 리뷰가 없어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 5개 중 5개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
입력해야 할 값: X-API-Key, THREATCLUSTER_API_KEY
둘 다 가능해요. 내 컴퓨터에 설치해도 되고, 클라우드 버전에 연결해도 돼요.
GitHub 저장소는 마지막으로 30일 전 변경됐고, 최신 버전(0.2.3)은 2개월 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. URL로 연결되므로 원격 MCP를 받는 앱에서도 쓸 수 있어요. 예: 웹 ChatGPT(Business 이상은 전체 MCP, Pro는 읽기 전용).
같은 카테고리에는: Robin: AI-Powered Dark Web OSINT, HOL Guard, SonarQube MCP Server
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:↓ 주간 다운로드i★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
Dark web OSINT over Tor: search onion engines, scrape pages, report with your own model.
Local-first AI agent security evidence and approval workflows through HOL Guard's stdio MCP server.
Analyze code quality and security with SonarQube Server or Cloud directly in AI assistants.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
A free threat intelligence API (100 credits a day, no card) and an MCP server over it. Ask Claude, Cursor or any MCP client what is new, who was hit, whether a CVE is exploited, and get answers from a live corpus of deduplicated incident clusters, actor and malware profiles, CVEs with KEV and EPSS, and ransomware leak-site victims.
An MCP server that gives Claude, Cursor, VS Code, Windsurf, Zed and any other MCP client live threat intelligence from ThreatCluster (setup guide): incident clusters (one deduplicated story per incident, with a threat score, timeline and extracted entities), entity profiles (actors, malware, tools, vendors, CVEs), CVE records with KEV / EPSS / exploit status, and ransomware leak-site victims.
It is a thin, auditable wrapper over the public REST API. Every tool call is one or two GETs to https://threatcluster.io/api/public/v1 with your API key; nothing else leaves your machine, and there is no telemetry.
Most free CTI MCP servers wrap other people's indicator feeds (OTX, abuse.ch, AbuseIPDB). ThreatCluster is the corpus itself: every story is one cluster built from every source that covered it, with a threat score, a timeline and the entities extracted from the text, plus the leak-site victim list and CVE exploit status in the same API. The free key covers all of it with a 7-day lookback; paid plans extend the window. Details and the hosted endpoint (https://threatcluster.io/mcp) are at threatcluster.io/about/free-api.
Published twice from one tool spec, so both are identical:
| Runtime | Install | Package |
|---|---|---|
| Python 3.10+ | uvx threatcluster-mcp (or pipx run threatcluster-mcp) | PyPI: threatcluster-mcp |
| Node 18+ | npx -y threatcluster-mcp | npm: threatcluster-mcp |
Free keys carry the five read scopes, 100 credits a day, 30 requests a minute and a 7-day lookback: https://threatcluster.io/api. Put it in THREATCLUSTER_API_KEY. If you use the tc CLI and have run tc auth login, the Python server picks that credential up automatically (keyring or the ~/.config/tc-cli/credentials file); the Node server reads the file only.
Claude Code
claude mcp add threatcluster -e THREATCLUSTER_API_KEY=tc_live_... -- npx -y threatcluster-mcp
claude mcp add threatcluster -e THREATCLUSTER_API_KEY=tc_live_... -- uvx threatcluster-mcp
Claude Desktop (claude_desktop_config.json, Settings > Developer > Edit Config)
{
"mcpServers": { "threatcluster": { "command": "npx", "args": ["-y", "threatcluster-mcp"], "env": { "THREATCLUSTER_API_KEY": "tc_live_..." } } } }
Cursor — one-click: see listings/cursor-deeplink.md, or add to ~/.cursor/mcp.json / .cursor/mcp.json:
{ "mcpServers": { "threatcluster": { "command": "npx", "args": ["-y", "threatcluster-mcp"], "env": { "THREATCLUSTER_API_KEY": "tc_live_..." } } } }
VS Code (.vscode/mcp.json; the input prompts for the key instead of storing it in the file)
{
"inputs": [{ "type": "promptString", "id": "tc-key", "description": "ThreatCluster API key", "password": true }], "servers": { "threatcluster": { "type": "stdio", "command": "npx", "args": ["-y", "threatcluster-mcp"], "env": { "THREATCLUSTER_API_KEY": "${input:tc-key}" } } } }
Windsurf (~/.codeium/windsurf/mcp_config.json) — same mcpServers block as Claude Desktop.
Zed (settings.json)
{ "context_servers": { "threatcluster": { "command": { "path": "npx", "args": ["-y", "threatcluster-mcp"], "env": { "THREATCLUSTER_API_KEY": "tc_live_..." } } } } }
Check a configuration without starting a client: THREATCLUSTER_API_KEY=... npx -y threatcluster-mcp --check (prints where the key came from and where it will be sent — never the key).
Costs are ThreatCluster API credits (free keys: 100 a day). Every result carries cost (credits this call spent), budget (remaining today, from the response headers), as_of, and url fields on every cluster, entity, victim and CVE for citation.
| Tool | What it answers | API endpoint(s) | Credits |
|---|---|---|---|
search_threats | Keyword search over incident clusters; phrase, then all words, then any word; matched_stage says which | GET /threats?keyword= per term | 1 per term (max 8 calls) |
search_everything | Clusters, entity profiles and dark-web hits in one call | GET /search | 5 |
newest_threats | What is new in 1h / 24h / 7d / 30d, by first report or by momentum | GET /threats | 1 |
get_threat | Full record for one cluster: summary, timeline, articles, entities; include_iocs adds validated indicators | GET /threats/{id} (+ /iocs) | 1 (+1) |
leak_site_victims | Ransomware leak-site listings by sector / group / country / victim, plus a tally of the whole window | GET /darkweb/ransomware/victims + /facets | 2 |
lookup_entity | Profile of an actor, malware, tool, vendor, product, country, industry or CVE | GET /entities/search + GET /entities/{type}/{value} | 2 |
get_vulnerability | One CVE: CVSS, EPSS, KEV with due date, exploits, vendors, products | GET /vulnerabilities/{cve_id} | 1 |
exploited_vulnerabilities | CVEs in a window filtered to KEV / public exploit / severity / vendor / product | GET /vulnerabilities | 1 |
trending_entities | Actors, malware, tools, vendors, CVEs, countries rising over a window | GET /entities/trending | 1 |
api_budget | Remaining credits and rate state from the last responses — no API call | — | 0 |
One prompt, threatcluster_analyst, carries the analyst rules (tools first, cite every fact with the returned url, say what period you searched, leak-site listings are claims).
Errors come back as MCP tool errors with the API's own message: 401 tells the agent to set THREATCLUSTER_API_KEY and where a free key comes from, 429 carries the Retry-After, 403 names the missing scope or the lookback window and the plan that lifts it.
THREATCLUSTER_API_KEY (then TC_REFRESH_TOKEN, then the tc-cli store) and sent only as the X-API-Key header (or Authorization: Bearer for a JWT minted by tc login) to THREATCLUSTER_API_BASE.--check, never written to disk, and scrubbed from every error string; the test suites assert the key is absent from all stdout and stderr bytes, including on a 401 whose body quotes it.readOnlyHint: true) and validate arguments against the spec before any request is made.| Variable | Default | Purpose |
|---|---|---|
THREATCLUSTER_API_KEY | — | your key (tc_live_…, tc_agent_…) or a bearer from tc login |
THREATCLUSTER_API_BASE | https://threatcluster.io/api/public/v1 | API base (self-hosted or local test servers) |
THREATCLUSTER_SITE | https://threatcluster.io | base for the url fields in results |
tools/tools.json the single source of truth: tools, schemas, endpoint mapping, credits, prompt
python/ PyPI package (hatchling; mcp + httpx) -> console script threatcluster-mcp node/ npm package (TypeScript; @modelcontextprotocol/sdk + zod) -> bin threatcluster-mcp tests/fixtures/ recorded API responses and tool outputs; both packages must replay them identically listings/ directory manifests and submission copy (Smithery, MCP registry, Glama, mcp.so, Cursor, VS Code) .github/workflows/ CI (both suites) and tag-triggered publishing (PyPI trusted publishing, npm provenance)
python3 tools/sync_tools.py copies the spec into both packages; CI fails if the copies drift.
pip install -e "python/[test]" && (cd python && pytest)
cd node && npm install && npm test
THREATCLUSTER_LIVE=1 THREATCLUSTER_API_KEY=... THREATCLUSTER_API_BASE=... pytest python/tests/test_live.py
Related: the tc CLI, the API reference, the agent-tool recipe for a bare tool-calling function, and the integration guide.
GPL-3.0-or-later © ThreatCluster Ltd.