Skip to main content
Glama
marc-shade

Threat Intelligence MCP Server

by marc-shade

Phoenix Intelligence Dashboard

World Intelligence MCP Server

MCP Python 3.11+ License

30개 이상의 도메인에 걸친 실시간 글로벌 인텔리전스, 120개의 MCP 도구, 라이브 운영센터 대시보드, CLI, 그리고 축적된 인텔리전스에 대한 엔터프라이즈급 시맨틱 검색을 위한 Qdrant 벡터 스토어를 제공합니다. 모든 데이터는 무료 공개 API에서 제공되며 유료 구독이 필요 없습니다.

세계 인식이 필요한 AI 에이전트를 위해 설계되었습니다: 시장 상황, 지정학적 리스크, 군사 태세, 공급망 중단, 사이버 위협 등 — 모두 Model Context Protocol을 통해 조회할 수 있습니다. 벡터 스토어는 "대만 인근 군사 활동" 또는 "의료 분야를 겨냥한 사이버 위협" 과 같은 자연어 쿼리를 모든 과거 데이터에 대해 지원합니다.


제공 기능

도메인

도구 수

데이터 소스

금융 시장

7

Yahoo Finance, CoinGecko, Alternative.me, Mempool

외환 및 통화

3

ECB/Frankfurter (8대 주요 페어, 시계열, 교차 환율)

채권 및 수익률

2

FRED, Yahoo Finance (수익률 곡선, 채권 ETF, 스프레드 분석)

실적 발표

2

Yahoo Finance (메가캡 캘린더, 서프라이즈 이력)

SEC 공시

3

SEC EDGAR (전문 검색, 기업 공시, 8-K 중요 사건)

기업 정보 보강

1

Yahoo Finance + GDELT + SEC + GitHub (복합 프로필)

매크로 종합

1

가중 6-신호 시장 판정 (Fear&Greed, VIX, 섹터, DXY, BTC, 수익률)

경제 지표

6

AAA 유가, EIA 에너지, FRED 매크로, World Bank

중앙은행

1

15개 중앙은행 정책 금리

BTC 기술적 분석

1

SMA 50/200, 골든/데드 크로스, Mayer Multiple

자연 재해

2

USGS 지진, NASA FIRMS 산불

환경

2

NASA EONET, GDACS 재난 경보

기후

1

Open-Meteo 기온/강수 이상치

분쟁 및 안보

4

ACLED 사건, UCDP, 소요 감지, 인도주의 데이터

군사 및 국방

6

adsb.lol, OpenSky, hexdb.io, 급증 감지, 전구 태세, 항공기 배치

인프라

4

Cloudflare Radar, 해저 케이블, 연쇄 분석, 클라우드 상태

해양

2

NGA 항해 경고, 선박 스냅샷

항공

2

FAA 공항 지연, 국내선 스냅샷

뉴스 및 미디어

3

119개 RSS 피드 (4계층), GDELT, 트렌딩 키워드

인텔리전스 분석

8

신호 수렴, 초점 지점, 불안정 지수, 리스크 점수, 확대

NLP 인텔리전스

4

개체 추출, 사건 분류, 뉴스 클러스터링, 키워드 급증

전략 종합

4

전략 태세, 세계 브리핑, 함대 보고서, 인구 노출

지리공간

11

군사 기지, 항구, 파이프라인, 원자력 시설, 케이블, 데이터센터, 우주기지, 광물, 거래소, 무역로, 클라우드 리전

AI 및 기술

4

arXiv 논문, HuggingFace 모델, Hacker News, GitHub 트렌딩

사이버 위협

1

URLhaus, Feodotracker, CISA KEV, SANS

보건

1

WHO DON, ProMED, CIDRAP 질병 발생

우주 기상

1

NOAA SWPC (Kp 지수, 태양 플레어, 경보)

사회 및 제재

3

Reddit 속도, OFAC SDN 목록, 핵실험장 모니터링

국가 인텔리전스

3

국가 브리핑, 국가 주식, 금융 중심지

예측 시장

1

Polymarket 이벤트 계약

선거

1

리스크 점수를 포함한 글로벌 선거 캘린더

이재민

1

UNHCR 난민/국내실향민 데이터

해운

1

건화물 해운 스트레스 지수

정부

1

USAspending.gov 연방 계약

교통

2

도로 교통 흐름, 실시간 사고

교차 도메인 알림

2

알림 다이제스트, 주간 트렌드

모니터링

2

웹캠, 서버 상태/헬스

벡터 검색

5

Qdrant 시맨틱 검색, 유사도, 타임라인, 통계

교차 도메인 분석

3

상관관계, 도메인 요약, 트렌드 감지

보고서

1

PDF/HTML 다중 도메인 인텔리전스 보고서

일일 다이제스트

1

인용 포함 마크다운 아침 브리핑: 주요 사건, 헤드라인, 트렌드, 타임라인

AOI 지오펜스

5

사용자 정의 관심 영역: 정의/목록/삭제, 인용 포함 다중 도메인 브리핑, 사용자 영역에 대한 핫스팟 확대 점수

상황 브리핑

1

MCP를 통한 인용 포함 상황 인식 브리핑: 로컬 Ollama로 종합된 제한된 서버 측 개요, 기계적 인용 폴백 포함

총 120개 도구 — 30개 이상의 인텔리전스 도메인.


Related MCP server: MCP Threat Intel Server

빠른 시작

설치

git clone https://github.com/marc-shade/world-intel-mcp.git
cd world-intel-mcp
pip install -e .

# Optional extras
pip install -e ".[dashboard]"  # Live ops-center dashboard
pip install -e ".[vector]"     # Qdrant vector store + FastEmbed
pip install -e ".[dev]"        # pytest, respx, coverage

MCP 서버로 실행

world-intel-mcp  # stdio mode for Claude Code, Cursor, etc.

Claude Code 설정

~/.claude.json에 추가:

{
  "mcpServers": {
    "world-intel-mcp": {
      "command": "world-intel-mcp"
    }
  }
}

대시보드

intel-dashboard              # http://localhost:8501
intel-dashboard --port 9000  # custom port

PDF/HTML 보고서

pip install -e ".[pdf]"      # requires: brew install pango (macOS)
intel report                 # full PDF report → ~/.cache/world-intel-mcp/
intel report --format html   # HTML (no native deps needed)
intel report -o brief.pdf    # custom output path
intel report -s markets,cyber,earthquakes  # select sections

맵 중심 운영 센터: 토글 가능한 레이어(지진, 군사, 분쟁, 화재, 수렴, 원자력, 인프라)가 있는 Leaflet 맵, 47개 라이브 SSE 피드, HUD 바, 글라스모픽 패널, 소스별 서킷 브레이커 상태.

CLI

intel markets              # stock indices
intel earthquakes --min-mag 5.0
intel status               # cache + circuit breaker health

아키텍처

server.py     (MCP stdio) ─┐                                               ┌─ VectorStore (Qdrant)
cli.py        (Click CLI)  ├─> sources/*.py ─> Fetcher ─> CircuitBreaker ─┤
dashboard.py  (SSE)        │    analysis/*.py                              └─ Cache (SQLite)
collector.py  (daemon)    ─┘
  • Fetcher: 중앙 집중식 비동기 HTTP 클라이언트(httpx). 재시도, 소스별 속도 제한, 오래된 데이터 폴백. 새로 가져온 데이터는 자동으로 벡터 스토어에 저장.

  • CircuitBreaker: 소스별 추적. 연속 3회 실패 시 5분간 차단. 각 RSS 피드는 자체 브레이커를 가짐.

  • Cache: SQLite WAL 모드 TTL 캐시. get()은 라이브 데이터를 반환하고, get_stale()은 폴백용 만료 데이터를 반환.

  • VectorStore: Qdrant + FastEmbed (BAAI/bge-small-en-v1.5, 384차원). 비차단 저장을 위한 비동기 백그라운드 워커 큐. 축적된 모든 인텔리전스에 대한 시맨틱 검색 지원.

  • Collector: 46개 소스를 병렬로 가져와 벡터 스토어를 채우는 독립 데몬. 1회 실행 또는 데몬으로 실행(기본 5분 간격).

  • Sources (sources/*.py): 30개 이상의 모듈, 각각 async def fetch_*(fetcher, **kwargs) -> dict를 내보냄.

  • Analysis (analysis/*.py): 교차 도메인 종합 — 신호 집계, 불안정 지수, NLP, 기업 정보 보강, 매크로 종합.

  • Config (config/*.py): 선별된 데이터셋 — 22개 핫스팟, 70개 이상의 기지, 40개 항구, 24개 파이프라인, 24개 원자력 시설, 34개 케이블, 48개 데이터센터, 27개 우주기지, 82개 거래소.


MCP 도구 참조

금융 시장 (7)

도구

설명

intel_market_quotes

주가 지수 시세 (S&P 500, Dow, Nasdaq, FTSE, Nikkei)

intel_crypto_quotes

CoinGecko의 주요 암호화폐 가격 및 시가총액

intel_stablecoin_status

스테이블코인 페그 상태 (USDT, USDC, DAI, FDUSD)

intel_etf_flows

비트코인 현물 ETF 가격 및 거래량

intel_sector_heatmap

미국 주식 섹터 성과 (11개 SPDR ETF)

intel_macro_signals

7개 매크로 지표 (Fear & Greed, VIX, DXY, 금, 10Y, BTC)

intel_commodity_quotes

상품 선물 (금, 은, 원유, 천연가스, 곡물)

외환 및 통화 (3)

도구

설명

intel_forex_rates

ECB 최신 환율. 기준/대상 통화로 필터링

intel_forex_timeseries

추세 분석이 포함된 과거 환율 (일수 설정 가능)

intel_major_crosses

주요 8개 통화쌍 + 교차 환율 + DXY 대리 지표

채권 및 수익률 (2)

도구

설명

intel_yield_curve

미국 국채 수익률 곡선 (2Y-30Y), 2s10s/3m10y 스프레드, 역전 플래그

intel_bond_indices

채권 ETF: AGG, TLT, HYG, LQD, TIP 가격/변동

실적 (2)

도구

설명

intel_earnings_calendar

대형주 20개 종목의 예정 실적 발표 및 EPS 추정치

intel_earnings_surprise

과거 실적 서프라이즈 (실적 vs 추정치, 추세)

SEC 서류 (3)

도구

설명

intel_sec_filings

전체 EDGAR 서류 전체 텍스트 검색

intel_company_filings

티커별 기업 서류 (10-K, 10-Q, 8-K) 및 CIK 확인

intel_recent_8k

최신 8-K 중요 사건 (M&A, 임원 변동, 실적)

기업 정보 보강 (1)

도구

설명

intel_company_profile

통합 프로필: 주가 + 재무 + 뉴스 + SEC + GitHub

거시 종합 (1)

도구

설명

intel_macro_composite

가중 시장 점수 (0-100) 및 판정: RISK_ON ~ STRONG_CAUTION

경제 (6)

도구

설명

intel_gas_prices

AAA 제공 미국 일일 소매 휘발유, 경유, E85 가격

intel_residential_natgas

EIA 제공 미국 주거용 천연가스 가격

intel_electricity_rates

EIA 제공 부문/주별 미국 전력 소매 요금

intel_energy_prices

EIA 제공 Brent/WTI 원유 및 천연가스

intel_fred_series

FRED 경제 데이터 (GDP, CPI, 실업률, 금리)

intel_world_bank_indicators

국가별 세계은행 개발 지표

중앙은행 (1)

도구

설명

intel_central_bank_rates

주요 중앙은행 15곳의 정책 금리

BTC 기술적 지표 (1)

도구

설명

intel_btc_technicals

비트코인 SMA 50/200, 골든/데스 크로스, 마이어 멀티플

자연재해 (2)

도구

설명

intel_earthquakes

USGS 지진 (규모/시간/한도 설정 가능)

intel_wildfires

NASA FIRMS 위성 화재 핫스팟 (전 세계 9개 지역)

환경 (2)

도구

설명

intel_environmental_events

NASA EONET 자연 재해 이벤트

intel_disaster_alerts

GDACS 재난 경보 및 심각도 점수

분쟁 및 안보 (4)

도구

설명

intel_acled_events

ACLED 무력 충돌 이벤트

intel_ucdp_events

웁살라 충돌 데이터 프로그램 이벤트

intel_unrest_events

Haversine 중복 제거 기반 사회 불안

intel_humanitarian_summary

HDX 인도주의 위기 데이터셋

군사 및 국방 (6)

도구

설명

intel_military_flights

adsb.lol 기반 군용 항공기 (OpenSky 대체)

intel_theater_posture

5개 전구 활동 (EU, 인도-태평양, 중동, 북극, 한국)

intel_aircraft_details

ICAO24 헥스 기반 항공기 조회 (hexdb.io)

intel_aircraft_batch

일괄 항공기 조회 (다중 헥스 코드)

intel_military_surge

외국 항공기 집중 이상 탐지

intel_usni_fleet

USNI 뉴스 해군 함대 추적기

인프라 (4)

도구

설명

intel_internet_outages

Cloudflare Radar 인터넷 장애

intel_cable_health

해저 케이블 회랑 상태

intel_cascade_analysis

인프라 연쇄 시뮬레이션

intel_service_status

클라우드 플랫폼 상태 (AWS, Azure, GCP, Cloudflare, GitHub)

해양 (2)

도구

설명

intel_nav_warnings

NGA 해상 항행 경보

intel_vessel_snapshot

9개 전략 수로의 해군 활동

지리공간 데이터셋 (10)

도구

설명

intel_military_bases

9개 운영 주체의 군사 기지 70곳

intel_strategic_ports

6개 유형의 전략 항구 40곳

intel_pipelines

석유/가스/수소 파이프라인 24개

intel_nuclear_facilities

원자력 발전/농축/연구 시설 24곳

intel_undersea_cables

해저 통신 케이블 34개

intel_ai_datacenters

전 세계 AI/HPC 데이터센터 48곳

intel_spaceports

전 세계 우주 발사장 27곳

intel_critical_minerals

전략 광물 매장지 27곳

intel_stock_exchanges

전 세계 증권거래소 82곳

intel_trade_routes

주요 무역 항로 및 병목 지점

뉴스 및 미디어 (3)

도구

설명

intel_news_feed

4단계 소스 순위가 있는 전 세계 RSS 피드 119개

intel_trending_keywords

급증 감지가 포함된 인기 키워드

intel_gdelt_search

GDELT 2.0 글로벌 뉴스 검색

정보 분석 (8)

도구

설명

intel_signal_convergence

다중 도메인 신호의 지리적 수렴

intel_focal_points

다중 신호 초점 지점 탐지

intel_signal_summary

국가별 신호 집계

intel_temporal_anomalies

기준 대비 활동 편차

intel_instability_index

국가 불안정 지수 v2 (0-100)

intel_risk_scores

ACLED 기반 충돌 위험 점수

intel_hotspot_escalation

인텔 핫스팟 22곳의 확대 점수

intel_country_dossier

종합 국가 정보 도시에

NLP 정보 (4)

도구

설명

intel_extract_entities

개체명 추출 (국가, 지도자, 조직, CVE, APT)

intel_classify_event

14개 위협 범주로 이벤트 분류

intel_news_clusters

Jaccard 유사도 기반 주제 클러스터링

intel_keyword_spikes

Welford 알고리즘 기반 키워드 급증 탐지

전략 종합 (4)

도구

설명

intel_strategic_posture

9개 가중 도메인의 종합 글로벌 위험

intel_world_brief

구조화된 일일 정보 요약

intel_fleet_report

대비 점수가 포함된 해군 함대 활동 보고서

intel_population_exposure

활성 이벤트 인근 위험 인구 (105개 도시 데이터셋)

기후 (1)

도구

설명

intel_climate_anomalies

Open-Meteo 기온/강수 이상

예측 시장 (1)

도구

설명

intel_prediction_markets

Polymarket 예측 계약

선거 (1)

도구

설명

intel_election_calendar

위험 점수가 포함된 글로벌 선거 달력

이재민 (1)

도구

설명

intel_displacement_summary

UNHCR 난민/국내 실향민 통계

항공 (2)

도구

설명

intel_airport_delays

FAA 공항 지연 상태

intel_aviation_domestic

OpenSky 기반 글로벌 항공 교통 스냅샷

사이버 위협 (1)

도구

설명

intel_cyber_threats

통합 사이버 정보 (URLhaus, CISA KEV, SANS)

우주 기상 (1)

도구

설명

intel_space_weather

태양 활동 (Kp 지수, X선 플럭스, SWPC 경보)

AI 및 기술 (4)

도구

설명

intel_ai_releases

arXiv AI 논문, HuggingFace 모델

intel_hacker_news

Hacker News 인기 기사

intel_trending_repos

GitHub 인기 저장소

intel_arxiv_papers

arXiv 논문 검색

보건 (1)

도구

설명

intel_disease_outbreaks

WHO DON, ProMED, CIDRAP 발병 정보

사회 및 제재 (3)

도구

설명

intel_social_signals

Reddit 지정학적 논의 속도

intel_sanctions_search

OFAC SDN 명단 검색

intel_nuclear_monitor

핵 실험장 인근 지진 모니터링

해운 및 무역 (1)

도구

설명

intel_shipping_index

건화물 벌크 해운 스트레스 지수

정부 (1)

도구

설명

intel_usa_spending

USAspending.gov 연방 계약

국가 정보 (3)

도구

설명

intel_country_brief

국가 상황 요약

intel_country_stocks

국가별 증권거래소 및 상장 종목

intel_financial_centers

글로벌 금융 중심지 순위

확장 지리공간 (1)

도구

설명

intel_cloud_regions

전 세계 클라우드 제공업체 리전

교통 (2)

도구

설명

intel_traffic_flow

도로 교통 흐름 데이터

intel_traffic_incidents

실시간 교통 사고 정보

교차 도메인 알림 (2)

도구

설명

intel_alert_digest

교차 도메인 알림 집계

intel_weekly_trends

주간 트렌드 분석

모니터링 (2)

도구

설명

intel_webcams

공공 웹캠 위치 및 실시간 미리보기

intel_status

서버 상태, 캐시 통계, 차단기 상태

벡터 검색 (5)

도구

설명

intel_semantic_search

축적된 모든 인텔리전스에 대한 자연어 검색

intel_similar_events

주어진 데이터 포인트와 유사한 이벤트 찾기

intel_timeline

도메인/카테고리별 인텔리전스 연대순 보기

intel_vector_stats

벡터 저장소 컬렉션 통계

intel_collect

온디맨드 수집 주기 트리거

교차 도메인 분석 (3)

도구

설명

intel_cross_correlate

주어진 주제에 대해 모든 도메인에서 상관 신호 찾기

intel_domain_summary

저장된 인텔리전스의 카테고리별 요약(건수, 출처, 최신성)

intel_trend_detection

최근 기간과 기준 기간을 비교하여 활동 급증/급감 감지

보고서 (1)

도구

설명

intel_generate_report

18개 도메인을 병렬로 다루는 PDF 또는 HTML 인텔리전스 보고서 생성

AOI 지오펜스 (5)

도구

설명

intel_aoi_define

명명된 관심 영역 정의: 지점 + 반경(km, 1-2000)

intel_aoi_list

사용자 정의 AOI 전체 목록

intel_aoi_delete

이름으로 사용자 정의 AOI 삭제

intel_aoi_brief

AOI에 대한 인용 포함 브리핑: 지진, 군용 비행, 산불, 분쟁 이벤트, 항공, 인근 기반시설, 뉴스 언급 — 모두 AOI 반경으로 필터링

intel_aoi_escalation

사용자 AOI에 적용되는 핫스팟 급증 점수 산정(22개 내장 핫스팟과 동일한 엔진)

상황 브리핑 (1)

도구

설명

intel_situation_brief

MCP를 통해 온디맨드로 생성되는 인용 포함 상황 인식 브리핑: 서버 측 제한적 개요(지진, 군용 비행, ACLED 분쟁 이벤트, 산불, 사이버 위협, 질병 발병, 뉴스, 우주 기상, 전략적 자세, 알림 요약)를 로컬 Ollama로 합성하거나, Ollama에 연결할 수 없을 때 기계적 인용 방식의 대체 수단으로 합성


자신의 지역 모니터링(지오펜스/AOI)

정적 기반시설 결과(기지, 항구, 핵시설, 해저 케이블, 데이터센터, 우주기지)는 이 저장소의 선별된 전략 데이터셋을 기반으로 하며, 이는 전 세계를 대상으로 하되 의도적으로 희소하게 구성되어 있어 완전한 지역 등록부가 아닙니다. AOI 브리핑이 조용하다는 것은 선별된 데이터셋 중 해당 범위 내에 아무것도 없다는 뜻이지, 해당 지역에 기반시설이 없다는 뜻이 아닙니다.

120개 도구 중 28개가 일부 지리적 매개변수를 받지만, AOI 계열 이전에는 intel_signal_convergence만이 실제 지점+반경을 수용했고, intel_military_flights는 bbox를 사용했으며, 핫스팟 급증 점수 산정은 22개의 하드코딩된 INTEL_HOTSPOTS로 제한되어 있었습니다. intel_aoi_* 도구를 사용하면 자신의 지역(도시, 국경 지역, 시설)에 이름을 붙이고 동일한 인용 포함 다중 도메인 처리를 받을 수 있습니다.

AOI를 한 번 정의한 후, 온디맨드로 브리핑과 점수 산정을 수행하세요:

intel_aoi_define(name="Pittsburgh", lat=40.4406, lon=-79.9959, radius_km=50)
intel_aoi_brief(name="Pittsburgh")
intel_aoi_escalation(name="Pittsburgh")

intel_aoi_brief는 지리 인식이 가능한 모든 도메인을 피츠버그 주변 50km 반경으로 필터링합니다: 지진, 군용 비행(반경에서 파생된 bbox), 산불(NASA FIRMS에는 지점+반경 쿼리가 없으므로 지역 매핑), ACLED 분쟁 이벤트, 인근 항공 교통 샘플, 인근 정적 기반시설(군사 기지, 항구, 파이프라인, 핵시설, 해저 케이블, 데이터센터, 우주기지) 및 거리(km), 그리고 "Pittsburgh"에 대한 뉴스 헤드라인 언급. 응답의 모든 항목에는 번호가 매겨진 sources 목록으로 연결되는 [n] 인용이 포함되며, data_gaps는 AOI 범위로 지정할 수 없었던 도메인(예: AOI가 NASA FIRMS의 커버리지 지역 밖에 있는 경우 산불, 또는 ACLED 자격 증명이 구성되지 않은 경우 분쟁 이벤트)을 조용히 생략하는 대신 명시적으로 표시합니다.

intel_aoi_escalation은 22개 내장 핫스팟에 대해 intel_hotspot_escalation을 구동하는 것과 동일한 기준/군사/분쟁/ 사회 불안 점수 산정 엔진을 실행하되, 고정된 2도 창 대신 AOI의 자체 반경으로 범위를 제한합니다.

AOI는 서버가 이미 사용하는 동일한 SQLite 캐시 데이터베이스 (기본적으로 ~/.cache/world-intel-mcp/cache.db, 또는 $WORLD_INTEL_CACHE_DB) 내의 전용 테이블에 유지되므로, 예약된 에이전트가 재시작을 거쳐도 intel_aoi_list / intel_aoi_delete로 관리하면서 모든 명명된 지역을 계속 모니터링할 수 있습니다.


벡터 저장소

선택적 Qdrant 벡터 저장소는 시간이 지남에 따라 인텔리전스를 축적하여 의미론적 검색을 지원합니다. Fetcher를 통해 가져온 모든 데이터는 자동으로 임베딩되어 저장됩니다.

설정

# Install Qdrant (Docker)
docker run -p 6333:6333 qdrant/qdrant

# Install vector dependencies
pip install -e ".[vector]"

# Run the collector daemon (populates vector store 24/7)
intel-collector --daemon              # every 5 minutes
intel-collector --daemon --interval 120  # every 2 minutes
intel-collector --sources markets,cyber  # specific domains only
intel-collector                        # single collection cycle

macOS launchd 서비스로 실행

scripts/collector-daemon.sh는 수집기를 launchd 에이전트로 관리하여 재부팅 후에도 유지되도록 합니다. 이 스크립트는 com.agentic.intel-collector.plist.template에 이 체크아웃의 자체 경로(스크립트 자체 위치에서 확인되므로 모든 클론에서 작동)를 채워 넣고 결과를 ~/Library/LaunchAgents/에 설치합니다.

scripts/collector-daemon.sh start    # install + load the launchd job
scripts/collector-daemon.sh status   # check state and log info
scripts/collector-daemon.sh logs     # tail stdout (logs err for stderr)
scripts/collector-daemon.sh stop     # unload the launchd job
scripts/collector-daemon.sh restart
scripts/collector-daemon.sh render   # print the filled-in plist without installing it

의미론적 검색 예시

데이터가 축적되면 AI 에이전트가 모든 도메인을 대상으로 쿼리할 수 있습니다:

  • "대만 해협 인근 군사 활동" — 군용 비행, 해군 경고, 전구 전력 자세 데이터 검색

  • "의료 분야를 겨냥한 사이버 위협" — 의료 관련 URLhaus, CISA KEV 항목 검색

  • "경기 침체를 시사하는 경제 지표" — 수익률 곡선 역전, 거시 신호, FRED 데이터 검색

벡터 저장소는 임베딩에 FastEmbed(ONNX 기반, BAAI/bge-small-en-v1.5)를 사용합니다 — GPU 불필요, 콜드 스타트 약 3초.


환경 변수

변수

필수

설명

ACLED_ACCESS_TOKEN

아니요

ACLED 분쟁 이벤트

NASA_FIRMS_API_KEY

아니요

위성 산불 데이터

EIA_API_KEY

아니요

에너지 가격 데이터

CLOUDFLARE_API_TOKEN

아니요

인터넷 장애 데이터

FRED_API_KEY

아니요

거시 경제 데이터(수익률 곡선에도 사용)

OPENSKY_CLIENT_ID

아니요

군용 비행 대체 소스

OPENSKY_CLIENT_SECRET

아니요

군용 비행 대체 소스

OLLAMA_API_URL

아니요

AI 생성 브리핑용 Ollama 서버(기본값: http://localhost:11434)

OLLAMA_MODEL

아니요

AI 생성 브리핑용 Ollama 모델(기본값: llama3.2)

WORLD_INTEL_LOG_LEVEL

아니요

로깅 수준(기본값: INFO)

그 외 모든 것은 무료, 인증 없는 공개 API를 사용합니다.


개발

pip install -e ".[dev]"
pytest                       # 251 tests (269 total, 18 live-network smoke tests deselected by default)
pytest --cov=world_intel_mcp # with coverage
pytest tests/test_forex.py -v # single module

새 소스 추가하기

  1. sources/your_source.py 파일을 생성하고 async def fetch_your_data(fetcher: Fetcher, **kwargs) -> dict를 작성합니다.

  2. fetcher.get_json(url, source="your-source", cache_key=..., cache_ttl=300)을 사용합니다 — 자동 캐싱, 재시도, 서킷 브레이킹, 속도 제한이 적용됩니다.

  3. server.py에서 TOOLSTool(...)을 추가하고, _dispatch()case를 추가합니다(인라인 임포트 사용).

  4. respx를 사용하여 HTTP를 모킹하는 테스트를 추가합니다(패턴은 tests/test_forex.py 참조).

  5. 선택적으로 dashboard/app.py(SSE)와 cli.py(Click)에 추가합니다.


라이선스

MIT

Available Tools

11 tools
check_bulk_ipsC

Check multiple IP addresses against threat feeds in bulk.

Args: ips: JSON array of IP addresses or comma-separated list

Returns: JSON with reputation results for all IPs

ParametersJSON Schema
NameRequiredDescriptionDefault
ipsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It mentions bulk checking against threat feeds but lacks critical behavioral details: it doesn't specify rate limits, authentication needs, data sources, or what happens on errors. For a tool with no annotation coverage, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded, with the core purpose stated first. The 'Args' and 'Returns' sections add structure without redundancy. However, the 'Returns' section could be more concise, as the output schema exists, making some details unnecessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (bulk IP checking), no annotations, and an output schema present, the description is partially complete. It covers the basic purpose and parameter format but lacks usage guidelines, behavioral context, and error handling details. The output schema reduces the need to explain return values, but overall completeness is adequate with clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 0%, so the description must compensate. It adds value by explaining that 'ips' accepts a 'JSON array of IP addresses or comma-separated list', which clarifies the input format beyond the schema's 'type: string'. However, it doesn't detail validation rules, IP format requirements, or size limits, leaving some semantics unclear.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Check multiple IP addresses against threat feeds in bulk.' It specifies the verb ('check'), resource ('IP addresses'), and scope ('bulk'), distinguishing it from single-IP tools like 'check_ip_reputation'. However, it doesn't explicitly differentiate from other bulk tools like 'check_network_against_threats', keeping it from a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to prefer this over 'check_ip_reputation' for single IPs or how it differs from 'check_network_against_threats' for bulk checks. No exclusions or prerequisites are stated, leaving usage unclear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_hash_reputationA

Check a file hash (MD5/SHA1/SHA256) against threat intelligence.

Args: file_hash: File hash to check

Returns: JSON with reputation data

ParametersJSON Schema
NameRequiredDescriptionDefault
file_hashYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It mentions the tool checks against threat intelligence, but does not disclose behavioral traits such as rate limits, authentication needs, data sources, or error handling. This leaves significant gaps for a tool that likely queries external services.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded with the core purpose, followed by structured sections for args and returns. It avoids unnecessary details, though the 'Args' and 'Returns' headings could be integrated more seamlessly into the flow.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema (returns JSON with reputation data), the description does not need to explain return values. It covers the basic purpose and parameter semantics adequately, but could improve by adding more behavioral context (e.g., rate limits) to compensate for the lack of annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description adds meaning by specifying the parameter as a 'file hash' and listing supported hash types (MD5/SHA1/SHA256). However, it does not detail format constraints (e.g., length, case sensitivity) or provide examples, leaving some ambiguity beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('check') and resource ('file hash') against a target ('threat intelligence'). It distinguishes from siblings by specifying hash checking (vs. IPs, networks, feeds, etc.) and mentions supported hash types (MD5/SHA1/SHA256), making it unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for checking file hashes against threats, but does not explicitly state when to use this tool versus alternatives like check_ip_reputation or check_bulk_ips. It provides some context (e.g., hash types) but lacks explicit guidance on exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_ip_reputationC

Check an IP address against multiple threat intelligence sources.

Args: ip: IP address to check

Returns: JSON with reputation data from multiple sources

ParametersJSON Schema
NameRequiredDescriptionDefault
ipYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'multiple threat intelligence sources' but doesn't specify which sources, latency, rate limits, authentication needs, or error handling. For a tool that likely queries external APIs, this leaves critical operational details unclear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose, followed by structured 'Args' and 'Returns' sections. It's efficient with minimal waste, though the 'Returns' section could be more specific about the JSON structure instead of just stating 'JSON with reputation data'.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (single parameter, threat intelligence query), the description covers the basics but lacks depth. The output schema exists, so return values needn't be detailed, but behavioral aspects like source reliability or rate limits are missing, making it adequate but incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 0%, but the description explicitly documents the single parameter ('ip: IP address to check'), adding essential meaning beyond the bare schema. However, it doesn't provide format details (e.g., IPv4 vs. IPv6) or validation rules, so it only partially compensates for the schema gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Check an IP address against multiple threat intelligence sources.' It specifies the verb ('check') and resource ('IP address'), though it doesn't explicitly differentiate from sibling tools like 'check_bulk_ips' or 'check_hash_reputation' beyond the IP focus.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'check_bulk_ips' for multiple IPs or 'check_hash_reputation' for non-IP checks. It lacks context on prerequisites, limitations, or exclusions, leaving the agent to infer usage from tool names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_network_against_threatsC

Check network scan results against threat intelligence.

Args: scan_results: JSON string from network scanner with device IPs

Returns: JSON with any matched threats

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_resultsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool checks against threat intelligence and returns JSON with matches, but lacks critical details: whether this is a read-only operation, if it requires authentication, rate limits, what happens on errors, or if it modifies any state (e.g., updates a cache). For a security tool with zero annotation coverage, this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded: the first sentence states the core purpose, followed by structured 'Args' and 'Returns' sections. Each sentence earns its place by providing essential information without redundancy. Minor improvements could include integrating the sections more fluidly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (security analysis), no annotations, and an output schema exists (implied by 'Returns: JSON'), the description is moderately complete. It covers the basic operation and parameter semantics but lacks behavioral context (e.g., safety, performance) and usage guidelines. The output schema reduces the need to explain return values, but more context is needed for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 0%, so the description must compensate. It adds meaning by specifying that 'scan_results' is a 'JSON string from network scanner with device IPs', which clarifies the parameter's format and content beyond the schema's generic 'string' type. However, it doesn't detail the exact JSON structure or provide examples, leaving some ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Check network scan results against threat intelligence.' It specifies the verb ('check') and resource ('network scan results'), and distinguishes it from siblings like check_ip_reputation by focusing on bulk scan results rather than individual IPs. However, it doesn't explicitly differentiate from check_bulk_ips, which might be a similar sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like check_bulk_ips or check_ip_reputation. It mentions 'scan results' but doesn't clarify prerequisites (e.g., requires prior network scanning) or exclusions (e.g., not for single IPs). This leaves the agent to infer usage from context alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

clear_threat_cacheB

Clear the threat intelligence cache to force fresh data fetch.

Returns: JSON confirmation

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It states the action ('clear cache') and outcome ('force fresh data fetch'), but lacks critical behavioral details: it doesn't specify permissions required, whether this is destructive (e.g., deletes cached data), rate limits, or side effects on other tools. The mention of 'JSON confirmation' is vague about response structure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is highly concise and well-structured: two brief sentences that front-load the core action and mention the return type without redundancy. Every sentence adds value, with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (0 parameters, output schema exists), the description is moderately complete. It covers the basic purpose and return format, but as a mutation tool with no annotations, it should ideally include more behavioral context (e.g., safety, permissions) to be fully helpful for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters with 100% schema description coverage, so no parameter documentation is needed. The description doesn't add param details, which is appropriate, earning a baseline score of 4 for not introducing unnecessary information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('Clear') and resource ('threat intelligence cache'), and distinguishes it from siblings by focusing on cache management rather than threat checking or data retrieval. However, it doesn't explicitly differentiate from all siblings (e.g., 'fetch_threat_feed' also involves data fetching).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides minimal guidance: it implies usage when fresh data is needed, but offers no explicit when/when-not rules, prerequisites, or alternatives. It doesn't compare with siblings like 'fetch_threat_feed' or 'get_threat_feeds' that might overlap in data freshness contexts.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fetch_threat_feedB

Fetch and parse a specific threat intelligence feed.

Args: feed_name: Name of the feed (feodo_tracker, urlhaus_recent, etc.)

Returns: JSON with IOCs from the feed

ParametersJSON Schema
NameRequiredDescriptionDefault
feed_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool fetches and parses a feed, implying a read operation, but doesn't cover critical aspects like authentication needs, rate limits, error handling, or whether it caches results. For a tool with no annotation coverage, this leaves significant gaps in understanding its behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded, with the core purpose stated first. The 'Args' and 'Returns' sections are structured clearly, though they could be integrated more seamlessly. There's minimal waste, but it could be slightly more polished in flow.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema (returns JSON with IOCs), the description doesn't need to explain return values in detail. It covers the basic purpose and parameter semantics adequately. However, with no annotations and incomplete behavioral transparency, it could do more to address gaps like error cases or performance considerations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 0%, but the description compensates by explaining the 'feed_name' parameter: 'Name of the feed (feodo_tracker, urlhaus_recent, etc.)'. This adds meaning beyond the bare schema, providing examples and context. However, it doesn't detail all possible feed names or constraints, so it partially addresses the coverage gap but not fully.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Fetch and parse a specific threat intelligence feed.' It specifies the verb ('fetch and parse') and resource ('threat intelligence feed'), distinguishing it from siblings like 'check_ip_reputation' or 'get_recent_iocs' that focus on reputation checks or recent IOCs rather than fetching feeds. However, it doesn't explicitly differentiate from 'get_threat_feeds', which might be similar.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention siblings like 'get_threat_feeds' (which might list available feeds) or 'get_recent_iocs' (which might fetch recent IOCs without specifying a feed), leaving the agent to infer usage context. There's no explicit when/when-not or alternative recommendations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_cisa_kevA

Get CISA Known Exploited Vulnerabilities.

Args: days: Get vulnerabilities added in last N days (default: 30) vendor: Filter by vendor name (optional)

Returns: JSON with recent KEVs

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNo
vendorNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the tool 'gets' data and returns JSON, but fails to describe critical behaviors such as whether this is a read-only operation (implied but not stated), any rate limits, authentication requirements, or what happens with invalid inputs (e.g., negative days). For a tool with no annotation coverage, this leaves significant gaps in understanding its operational traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and front-loaded with the core purpose, followed by clear sections for arguments and returns. Every sentence earns its place: the first states what the tool does, the next two explain parameters succinctly, and the last specifies the return format. There is zero waste, making it easy for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (2 parameters, no nested objects) and the presence of an output schema (which handles return values), the description is largely complete. It covers the purpose, parameters, and return format adequately. However, it lacks details on behavioral aspects like error handling or data freshness, which would be helpful since no annotations are provided to fill those gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must compensate by explaining parameters, which it does effectively. It clarifies that 'days' retrieves vulnerabilities added in the last N days with a default of 30, and 'vendor' is an optional filter by vendor name. This adds meaningful context beyond the bare schema, covering both parameters' purposes and defaults, though it could benefit from examples or format details (e.g., vendor name casing).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('Get') and resource ('CISA Known Exploited Vulnerabilities'), making it immediately understandable. It distinguishes itself from sibling tools like 'get_recent_iocs' or 'get_threat_feeds' by focusing specifically on CISA's KEV database, which is a distinct dataset of known exploited vulnerabilities rather than general indicators or feeds.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage through the mention of filtering by days and vendor, suggesting it's for retrieving recent or vendor-specific vulnerabilities. However, it lacks explicit guidance on when to use this tool versus alternatives like 'get_recent_iocs' (which might overlap in recency) or 'check_network_against_threats' (which could involve KEV data), leaving the agent to infer context without clear exclusions or named alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_dashboard_summaryB

Get a summary of all threat intelligence for dashboard display.

Returns: JSON with aggregated threat data for visualization

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool returns aggregated threat data for visualization, but doesn't cover critical aspects such as whether it's a read-only operation, potential rate limits, authentication requirements, data freshness, or any side effects. For a tool with no annotation coverage, this leaves key behavioral traits unspecified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is highly concise and well-structured: two sentences that directly state the purpose and return format without any fluff. The first sentence explains what the tool does, and the second clarifies the output, making it front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 0 parameters, 100% schema coverage, and an output schema exists, the description doesn't need to detail inputs or return values. However, it lacks context on usage scenarios, behavioral traits, and differentiation from siblings, which are important for a tool in a server with multiple threat intelligence tools. The description is minimally adequate but has clear gaps in guidance and transparency.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter-specific information, which is appropriate here. A baseline of 4 is applied since there are no parameters to document, and the description doesn't introduce any confusion or redundancy regarding inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get a summary of all threat intelligence for dashboard display.' It specifies the verb ('Get') and resource ('summary of all threat intelligence'), and the context ('for dashboard display') provides additional clarity. However, it doesn't explicitly differentiate from sibling tools like 'get_threat_stats' or 'get_recent_iocs', which might also provide aggregated data, so it doesn't reach the highest score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It mentions 'dashboard display' as a context, but doesn't specify scenarios, prerequisites, or exclusions. With sibling tools like 'get_threat_stats' and 'get_recent_iocs' that might overlap, the lack of comparative guidance is a significant gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_recent_iocsB

Get recent IOCs (Indicators of Compromise) from ThreatFox.

Args: ioc_type: Filter by type (ip:port, domain, url, md5, sha256) limit: Maximum IOCs to return (default: 100, max: 500)

Returns: JSON with recent IOCs

ParametersJSON Schema
NameRequiredDescriptionDefault
ioc_typeNo
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions that the tool returns 'JSON with recent IOCs' but doesn't specify details like pagination, rate limits, authentication requirements, or error handling. For a tool with potential security implications (IOCs), this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and front-loaded with the core purpose, followed by clear sections for 'Args' and 'Returns'. Every sentence earns its place by providing essential information without redundancy, making it efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (2 parameters, no annotations, but with an output schema), the description is somewhat complete but has gaps. It covers parameters well and notes the return format, but lacks behavioral context (e.g., auth, rate limits) and doesn't leverage the output schema to detail the JSON structure, leaving room for improvement in overall completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It effectively explains both parameters: 'ioc_type' with its filter options (e.g., 'ip:port', 'domain') and 'limit' with its default and max values. This adds crucial meaning beyond the bare schema, though it could benefit from more detail on format constraints (e.g., URL encoding).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Get') and resource ('recent IOCs from ThreatFox'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'fetch_threat_feed' or 'get_threat_feeds', which might also retrieve threat data, leaving some ambiguity about when to choose this specific tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'fetch_threat_feed' or 'get_threat_feeds'. The description lacks context about prerequisites, such as whether authentication is needed, or any explicit exclusions, leaving the agent to infer usage based on the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_threat_feedsB

Get list of all available threat intelligence feeds.

Returns: JSON with available feeds and their descriptions

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the return format ('JSON with available feeds and their descriptions'), which adds some context, but lacks details on permissions, rate limits, caching behavior, or whether this is a read-only operation. For a tool with zero annotation coverage, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief and front-loaded, stating the purpose in the first sentence and the return format in the second. Both sentences add value, with no wasted words. However, it could be slightly more structured by explicitly separating usage context from output details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema, the description doesn't need to explain return values in detail, which it acknowledges. However, with no annotations and multiple sibling tools, the description lacks context on behavioral traits and usage differentiation. It's minimally adequate but has clear gaps in guiding the agent effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate given the schema's completeness. A baseline of 4 is applied since there are no parameters to document.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and resource 'list of all available threat intelligence feeds', making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'fetch_threat_feed' or 'get_recent_iocs', which might have overlapping functionality. The description is specific about what it returns but lacks sibling distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. With siblings like 'fetch_threat_feed' and 'get_recent_iocs', there's no indication of whether this tool is for metadata listing, bulk retrieval, or other contexts. No prerequisites or exclusions are mentioned, leaving usage ambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_threat_statsB

Get statistics about loaded threat data and cache status.

Returns: JSON with threat intelligence statistics

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It mentions 'cache status' which hints at behavioral aspects related to caching, but doesn't disclose details like whether this is a read-only operation, performance characteristics, or error handling. The description adds some context but lacks comprehensive behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief with two sentences, but the second sentence 'Returns: JSON with threat intelligence statistics' is redundant given the output schema exists. This wastes space without adding value, reducing efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (0 parameters, output schema provided), the description is mostly complete. It covers the purpose and hints at cache-related behavior, but could benefit from more usage guidance relative to siblings. The output schema handles return values, so no need to explain them in the description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate here, and the baseline for 0 parameters is 4, as it avoids unnecessary repetition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with the verb 'Get' and resource 'statistics about loaded threat data and cache status', making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'get_dashboard_summary' or 'get_threat_feeds', which might provide overlapping or related statistics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. With siblings like 'get_dashboard_summary' and 'get_threat_feeds' that might offer similar or complementary data, there's no indication of context, prerequisites, or exclusions to help an agent choose appropriately.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 11 tool updates
    • First observedcheck_bulk_ips
    • First observedcheck_hash_reputation
    • First observedcheck_ip_reputation
    • First observedcheck_network_against_threats
    • First observedclear_threat_cache
    • First observedfetch_threat_feed
    • First observedget_cisa_kev
    • First observedget_dashboard_summary
    • First observedget_recent_iocs
    • First observedget_threat_feeds
    • First observedget_threat_stats

TDQS

A3.7/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose with no ambiguity. The tools cover specific threat intelligence operations like checking IPs/hashes, fetching feeds, getting CISA KEVs, retrieving IOCs, and managing cache/stats, all with well-defined boundaries. There is no overlap that would cause misselection.

Naming Consistency5/5

Tool names follow a consistent verb_noun pattern throughout, such as check_bulk_ips, fetch_threat_feed, get_cisa_kev, and clear_threat_cache. All tools use snake_case with clear, descriptive names that align with their functions, making them predictable and readable.

Tool Count5/5

With 11 tools, the count is well-scoped for a threat intelligence server, covering essential operations like reputation checks, feed management, data retrieval, and cache control. Each tool earns its place without feeling excessive or insufficient for the domain.

Completeness5/5

The tool surface provides complete coverage for threat intelligence workflows, including checking various IOCs (IPs, hashes, networks), fetching and managing feeds, retrieving vulnerabilities and recent IOCs, and supporting dashboards and statistics. There are no obvious gaps that would hinder agent operations.

Maintenance

ActivityMaintained
ResponsivenessWithin a week

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI-powered threat intelligence analysis of IPs, domains, URLs, and file hashes across multiple threat intelligence platforms (VirusTotal, AlienVault OTX, AbuseIPDB, IPinfo) with APT attribution and interactive reporting through natural language queries.
    39
    Apache 2.0
  • A
    license
    A
    quality
    C
    maintenance
    Provides unified access to multiple threat intelligence sources like AlienVault OTX, AbuseIPDB, and GreyNoise for security research and analysis. It enables users to perform simultaneous lookups on IPs, domains, hashes, and URLs across several platforms within a single response.
    7
    50
    7
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides threat intelligence and vulnerability research tools by integrating with NVD, VirusTotal, AbuseIPDB, Shodan, and MITRE ATT\&CK. It enables users to perform CVE lookups, analyze IP reputation, and retrieve detailed MITRE ATT\&CK technique information.
    1
    -
  • F
    license
    A
    quality
    Not graded
    maintenance
    Provides real-time threat intelligence including IP risk scores, CVE lookups, and malware hash analysis without requiring an API key. It enables users to monitor active threats, predict CISA KEV additions, and detect pre-attack infrastructure staging through natural language.
    8
    -

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/marc-shade/world-intel-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server