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

Inteligencia global en tiempo real en más de 30 dominios con 120 herramientas MCP, un panel de operaciones en vivo, una CLI y un almacén vectorial Qdrant para búsqueda semántica de nivel empresarial en la inteligencia acumulada. Todos los datos provienen de APIs públicas gratuitas: sin suscripciones de pago.

Diseñado para agentes de IA que necesitan conciencia del mundo: condiciones de mercado, riesgo geopolítico, postura militar, interrupciones de la cadena de suministro, amenazas cibernéticas y más, todo consultable mediante el Model Context Protocol. El almacén vectorial permite consultas en lenguaje natural como "actividad militar cerca de Taiwán" o "amenazas cibernéticas dirigidas a la atención médica" en todos los datos históricos.


Qué Incluye

Dominio

Herramientas

Fuentes de Datos

Mercados Financieros

7

Yahoo Finance, CoinGecko, Alternative.me, Mempool

Forex y Divisas

3

ECB/Frankfurter (8 pares principales, series temporales, tipos cruzados)

Bonos y Rendimientos

2

FRED, Yahoo Finance (curva de rendimiento, ETFs de bonos, análisis de diferenciales)

Resultados Empresariales

2

Yahoo Finance (calendario de megacapitalización, historial de sorpresas)

Presentaciones SEC

3

SEC EDGAR (búsqueda de texto completo, presentaciones de empresas, eventos materiales 8-K)

Enriquecimiento de Empresas

1

Yahoo Finance + GDELT + SEC + GitHub (perfil compuesto)

Compuesto Macro

1

Veredicto de mercado ponderado de 6 señales (Fear&Greed, VIX, sectores, DXY, BTC, rendimientos)

Indicadores Económicos

6

Precios de combustible AAA, energía EIA, macro FRED, Banco Mundial

Bancos Centrales

1

15 tipos de interés oficiales de bancos centrales

Técnicos de BTC

1

SMA 50/200, cruce dorado/de la muerte, múltiplo de Mayer

Desastres Naturales

2

Terremotos USGS, incendios forestales NASA FIRMS

Medio Ambiente

2

NASA EONET, alertas de desastres GDACS

Clima

1

Anomalías de temperatura/precipitación Open-Meteo

Conflicto y Seguridad

4

Eventos ACLED, UCDP, detección de disturbios, datos humanitarios

Militar y Defensa

6

adsb.lol, OpenSky, hexdb.io, detección de oleadas, postura de teatro, lote de aeronaves

Infraestructura

4

Cloudflare Radar, cables submarinos, análisis de cascada, estado de la nube

Marítimo

2

Avisos de navegación NGA, instantáneas de embarcaciones

Aviación

2

Retrasos aeroportuarios FAA, instantánea de vuelos nacionales

Noticias y Medios

3

119 fuentes RSS (4 niveles), GDELT, palabras clave en tendencia

Análisis de Inteligencia

8

Convergencia de señales, puntos focales, índice de inestabilidad, puntuaciones de riesgo, escalada

Inteligencia PLN

4

Extracción de entidades, clasificación de eventos, agrupación de noticias, picos de palabras clave

Síntesis Estratégica

4

Postura estratégica, informe mundial, informe de flota, exposición de la población

Geoespacial

11

Bases militares, puertos, oleoductos, instalaciones nucleares, cables, centros de datos, puertos espaciales, minerales, bolsas, rutas comerciales, regiones de nube

IA y Tecnología

4

Artículos arXiv, modelos HuggingFace, Hacker News, tendencias GitHub

Amenazas Cibernéticas

1

URLhaus, Feodotracker, CISA KEV, SANS

Salud

1

Brotes de enfermedades WHO DON, ProMED, CIDRAP

Clima Espacial

1

NOAA SWPC (índice Kp, erupciones solares, alertas)

Social y Sanciones

3

Velocidad de Reddit, lista OFAC SDN, monitoreo de sitios de pruebas nucleares

Inteligencia de Países

3

Informe de país, acciones del país, centros financieros

Mercados de Predicción

1

Contratos de eventos Polymarket

Elecciones

1

Calendario electoral global con puntuación de riesgo

Desplazamiento

1

Datos de refugiados/desplazados internos UNHCR

Transporte Marítimo

1

Índice de estrés del transporte marítimo a granel seco

Gobierno

1

Contratos federales USAspending.gov

Tráfico

2

Flujo de tráfico vial, incidentes en tiempo real

Alertas Transversales

2

Resumen de alertas, tendencias semanales

Monitoreo

2

Cámaras web, salud/estado del servidor

Búsqueda Vectorial

5

Búsqueda semántica Qdrant, similitud, línea temporal, estadísticas

Analítica Transversal

3

Correlación, resumen de dominio, detección de tendencias

Informes

1

Informes de inteligencia multidominio en PDF/HTML

Resumen Diario

1

Informe matutino en markdown con citas: principales eventos, titulares, tendencias y línea temporal

Geocercas AOI

5

Áreas de interés definidas por el usuario: definir/listar/eliminar, un informe multidominio con citas y puntuación de escalada de puntos críticos para el área propia del usuario

Informe de Situación

1

Informe de conciencia situacional con citas vía MCP: visión general acotada del lado del servidor sintetizada con Ollama local, con respaldo de citas mecánicas

Total: 120 herramientas en más de 30 dominios de inteligencia.


Related MCP server: MCP Threat Intel Server

Inicio Rápido

Instalación

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

Ejecutar como Servidor MCP

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

Configuración de Claude Code

Añade a ~/.claude.json:

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

Panel de Control

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

Informes 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

Centro de operaciones centrado en mapas: mapa Leaflet con capas activables (terremotos, militar, conflicto, incendios, convergencia, nuclear, infraestructura), 47 fuentes SSE en vivo, barra HUD, paneles de vidrio esmerilado, salud del interruptor de circuito por fuente.

CLI

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

Arquitectura

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: Cliente HTTP asíncrono centralizado (httpx). Reintentos, limitación de velocidad por fuente, respaldo de datos obsoletos. Almacena automáticamente los resultados en el almacén vectorial en cada obtención nueva.

  • CircuitBreaker: Seguimiento por fuente. 3 fallos consecutivos activan un bloqueo de 5 minutos. Cada fuente RSS tiene su propio interruptor.

  • Cache: Caché TTL en modo WAL de SQLite. get() devuelve datos en vivo, get_stale() devuelve datos caducados como respaldo.

  • VectorStore: Qdrant + FastEmbed (BAAI/bge-small-en-v1.5, 384 dimensiones). Cola de trabajadores en segundo plano asíncrona para almacenamiento no bloqueante. Permite búsqueda semántica en toda la inteligencia acumulada.

  • Collector: Demonio independiente que obtiene las 46 fuentes en paralelo y puebla el almacén vectorial. Ejecútalo una vez o como demonio (por defecto: intervalo de 5 minutos).

  • Sources (sources/*.py): Más de 30 módulos, cada uno exporta async def fetch_*(fetcher, **kwargs) -> dict.

  • Analysis (analysis/*.py): Síntesis entre dominios: agregación de señales, indexación de inestabilidad, PLN, enriquecimiento de empresas, compuesto macro.

  • Config (config/*.py): Conjuntos de datos curados: 22 puntos críticos, más de 70 bases, 40 puertos, 24 oleoductos, 24 instalaciones nucleares, 34 cables, 48 centros de datos, 27 puertos espaciales, 82 bolsas.


Referencia de Herramientas MCP

Mercados Financieros (7)

Herramienta

Descripción

intel_market_quotes

Cotizaciones de índices bursátiles (S&P 500, Dow, Nasdaq, FTSE, Nikkei)

intel_crypto_quotes

Principales precios de criptomonedas y capitalización de mercado de CoinGecko

intel_stablecoin_status

Salud del anclaje de stablecoins (USDT, USDC, DAI, FDUSD)

intel_etf_flows

Precios y volúmenes de ETFs spot de Bitcoin

intel_sector_heatmap

Rendimiento de sectores bursátiles de EE. UU. (11 ETFs SPDR)

intel_macro_signals

7 indicadores macro (Fear & Greed, VIX, DXY, oro, 10Y, BTC)

intel_commodity_quotes

Futuros de materias primas (oro, plata, crudo, gas natural, granos)

Forex y Divisas (3)

Herramienta

Descripción

intel_forex_rates

Últimos tipos de cambio del BCE. Filtre por divisas base/objetivo

intel_forex_timeseries

Tipo de cambio histórico con análisis de tendencia (días configurables)

intel_major_crosses

Los 8 pares principales + tipos cruzados + proxy DXY

Bonos y Rendimientos (2)

Herramienta

Descripción

intel_yield_curve

Curva de rendimiento del Tesoro de EE. UU. (2Y-30Y), diferenciales 2s10s/3m10y, indicador de inversión

intel_bond_indices

ETFs de bonos: AGG, TLT, HYG, LQD, TIP con precio/cambio

Resultados (2)

Herramienta

Descripción

intel_earnings_calendar

Próximos resultados de 20 valores de gran capitalización con estimaciones de BPA

intel_earnings_surprise

Sorpresa de resultados histórica (real vs estimado, tendencia)

Documentos SEC (3)

Herramienta

Descripción

intel_sec_filings

Búsqueda de texto completo en todos los documentos EDGAR

intel_company_filings

Documentos de empresas por ticker (10-K, 10-Q, 8-K) con resolución CIK

intel_recent_8k

Últimos eventos materiales 8-K (M&A, cambios ejecutivos, resultados)

Enriquecimiento de Empresas (1)

Herramienta

Descripción

intel_company_profile

Perfil compuesto: cotización + datos financieros + noticias + SEC + GitHub

Compuesto Macro (1)

Herramienta

Descripción

intel_macro_composite

Puntuación de mercado ponderada (0-100) con veredicto: de RISK_ON a STRONG_CAUTION

Económico (6)

Herramienta

Descripción

intel_gas_prices

Precios diarios de gasolina, diésel y E85 al por menor en EE. UU. de AAA

intel_residential_natgas

Precios residenciales de gas natural en EE. UU. de EIA

intel_electricity_rates

Tarifas eléctricas minoristas de EE. UU. por sector/estado de EIA

intel_energy_prices

Petróleo crudo Brent/WTI y gas natural de EIA

intel_fred_series

Datos económicos FRED (PIB, IPC, desempleo, tipos)

intel_world_bank_indicators

Indicadores de desarrollo del Banco Mundial por país

Bancos Centrales (1)

Herramienta

Descripción

intel_central_bank_rates

Tipos de interés oficiales de 15 bancos centrales importantes

Técnicos BTC (1)

Herramienta

Descripción

intel_btc_technicals

Bitcoin SMA 50/200, cruce dorado/de la muerte, múltiplo de Mayer

Desastres Naturales (2)

Herramienta

Descripción

intel_earthquakes

Terremotos USGS (magnitud/tiempo/límite configurables)

intel_wildfires

Puntos calientes de incendios por satélite NASA FIRMS (9 regiones globales)

Medioambiental (2)

Herramienta

Descripción

intel_environmental_events

Eventos naturales NASA EONET

intel_disaster_alerts

Alertas de desastres GDACS con puntuación de gravedad

Conflicto y Seguridad (4)

Herramienta

Descripción

intel_acled_events

Eventos de conflicto armado ACLED

intel_ucdp_events

Eventos del Programa de Datos de Conflictos de Uppsala

intel_unrest_events

Malestar social con deduplicación Haversine

intel_humanitarian_summary

Conjuntos de datos de crisis humanitarias HDX

Militar y Defensa (6)

Herramienta

Descripción

intel_military_flights

Aeronaves militares vía adsb.lol (respaldo OpenSky)

intel_theater_posture

Actividad en 5 teatros (UE, Indo-Pacífico, OM, Ártico, Corea)

intel_aircraft_details

Consulta de aeronaves por hex ICAO24 (hexdb.io)

intel_aircraft_batch

Consulta de aeronaves por lotes (múltiples códigos hex)

intel_military_surge

Detección de anomalías de concentración de aeronaves extranjeras

intel_usni_fleet

Seguimiento de flota naval USNI News

Infraestructura (4)

Herramienta

Descripción

intel_internet_outages

Interrupciones de internet Cloudflare Radar

intel_cable_health

Estado de los corredores de cables submarinos

intel_cascade_analysis

Simulación de cascada de infraestructura

intel_service_status

Estado de plataformas en la nube (AWS, Azure, GCP, Cloudflare, GitHub)

Marítimo (2)

Herramienta

Descripción

intel_nav_warnings

Avisos de navegación marítima NGA

intel_vessel_snapshot

Actividad naval en 9 vías fluviales estratégicas

Conjuntos de Datos Geoespaciales (10)

Herramienta

Descripción

intel_military_bases

70 bases militares de 9 operadores

intel_strategic_ports

40 puertos estratégicos en 6 tipos

intel_pipelines

24 oleoductos/gasoductos/hidrogenoductos

intel_nuclear_facilities

24 instalaciones nucleares de energía/enriquecimiento/investigación

intel_undersea_cables

34 cables de comunicaciones submarinos

intel_ai_datacenters

48 centros de datos de IA/HPC en todo el mundo

intel_spaceports

27 puertos espaciales globales

intel_critical_minerals

27 depósitos minerales estratégicos

intel_stock_exchanges

82 bolsas de valores en todo el mundo

intel_trade_routes

Principales rutas comerciales y puntos de estrangulamiento

Noticias y Medios (3)

Herramienta

Descripción

intel_news_feed

119 fuentes RSS globales con clasificación de fuentes en 4 niveles

intel_trending_keywords

Términos en tendencia con detección de picos

intel_gdelt_search

Búsqueda global de noticias GDELT 2.0

Análisis de Inteligencia (8)

Herramienta

Descripción

intel_signal_convergence

Convergencia geográfica de señales multidominio

intel_focal_points

Detección de puntos focales multiseñal

intel_signal_summary

Agregación de señales a nivel de país

intel_temporal_anomalies

Desviaciones de actividad respecto a las líneas base

intel_instability_index

Índice de Inestabilidad de Países v2 (0-100)

intel_risk_scores

Puntuación de riesgo de conflicto basada en ACLED

intel_hotspot_escalation

Puntuaciones de escalada para 22 puntos críticos de inteligencia

intel_country_dossier

Informe integral de inteligencia de países

Inteligencia NLP (4)

Herramienta

Descripción

intel_extract_entities

Extracción de entidades nombradas (países, líderes, organizaciones, CVE, APT)

intel_classify_event

Clasificación de eventos en 14 categorías de amenaza

intel_news_clusters

Agrupación de temas por similitud de Jaccard

intel_keyword_spikes

Detección de picos de palabras clave con el algoritmo de Welford

Síntesis Estratégica (4)

Herramienta

Descripción

intel_strategic_posture

Riesgo global compuesto de 9 dominios ponderados

intel_world_brief

Resumen diario estructurado de inteligencia

intel_fleet_report

Informe de actividad de flota naval con puntuación de preparación

intel_population_exposure

Población en riesgo cerca de eventos activos (conjunto de datos de 105 ciudades)

Clima (1)

Herramienta

Descripción

intel_climate_anomalies

Anomalías de temperatura/precipitación Open-Meteo

Mercados de Predicción (1)

Herramienta

Descripción

intel_prediction_markets

Contratos de predicción Polymarket

Elecciones (1)

Herramienta

Descripción

intel_election_calendar

Calendario electoral global con puntuación de riesgo

Desplazamiento (1)

Herramienta

Descripción

intel_displacement_summary

Estadísticas de refugiados/desplazados internos de ACNUR

Aviación (2)

Herramienta

Descripción

intel_airport_delays

Estado de retrasos en aeropuertos FAA

intel_aviation_domestic

Instantánea del tráfico aéreo global de OpenSky

Amenazas Cibernéticas (1)

Herramienta

Descripción

intel_cyber_threats

Inteligencia cibernética agregada (URLhaus, CISA KEV, SANS)

Clima Espacial (1)

Herramienta

Descripción

intel_space_weather

Actividad solar (índice Kp, flujo de rayos X, alertas SWPC)

IA y Tecnología (4)

Tool

Description

intel_ai_releases

Artículos de IA de arXiv, modelos de HuggingFace

intel_hacker_news

Historias principales de Hacker News

intel_trending_repos

Repositorios populares de GitHub

intel_arxiv_papers

Búsqueda de artículos de arXiv

Salud (1)

Tool

Description

intel_disease_outbreaks

Brotes de la OMS DON, ProMED, CIDRAP

Social y Sanciones (3)

Tool

Description

intel_social_signals

Velocidad de discusión geopolítica en Reddit

intel_sanctions_search

Búsqueda en la lista SDN de OFAC

intel_nuclear_monitor

Monitoreo sísmico cerca de sitios de pruebas nucleares

Envíos y Comercio (1)

Tool

Description

intel_shipping_index

Índice de estrés de envíos a granel seco

Gobierno (1)

Tool

Description

intel_usa_spending

Contratos federales de USAspending.gov

Inteligencia por País (3)

Tool

Description

intel_country_brief

Resumen rápido de la situación del país

intel_country_stocks

Bolsas de valores y cotizaciones por país

intel_financial_centers

Clasificación de centros financieros globales

Geoespacial Extendido (1)

Tool

Description

intel_cloud_regions

Regiones de proveedores de nube en todo el mundo

Tráfico (2)

Tool

Description

intel_traffic_flow

Datos de flujo de tráfico vial

intel_traffic_incidents

Incidentes de tráfico en tiempo real

Alertas entre Dominios (2)

Tool

Description

intel_alert_digest

Agregación de alertas entre dominios

intel_weekly_trends

Análisis de tendencias semanales

Monitoreo (2)

Tool

Description

intel_webcams

Ubicaciones de cámaras web públicas y vistas previas en vivo

intel_status

Salud del servidor, estadísticas de caché, estado del interruptor de circuito

Búsqueda Vectorial (5)

Tool

Description

intel_semantic_search

Búsqueda en lenguaje natural en toda la inteligencia acumulada

intel_similar_events

Encontrar eventos similares a un punto de datos dado

intel_timeline

Vista cronológica de la inteligencia para un dominio/categoría

intel_vector_stats

Estadísticas de colección del almacén vectorial

intel_collect

Activar un ciclo de recolección bajo demanda

Analítica entre Dominios (3)

Tool

Description

intel_cross_correlate

Encontrar señales correlacionadas en todos los dominios para un tema dado

intel_domain_summary

Resumen por categoría de la inteligencia almacenada (conteos, fuentes, actualidad)

intel_trend_detection

Detectar aumentos/disminuciones de actividad comparando períodos recientes con la línea base

Informes (1)

Tool

Description

intel_generate_report

Generar un informe de inteligencia en PDF o HTML que cubra 18 dominios en paralelo

Geocercas AOI (5)

Tool

Description

intel_aoi_define

Definir un área de interés nombrada: punto + radio en km (1-2000)

intel_aoi_list

Listar todas las AOI definidas por el usuario

intel_aoi_delete

Eliminar una AOI definida por el usuario por nombre

intel_aoi_brief

Resumen citado para una AOI: terremotos, vuelos militares, incendios forestales, eventos de conflicto, aviación, infraestructura cercana y menciones en noticias, todo filtrado al radio de la AOI

intel_aoi_escalation

Puntuación de escalada de puntos calientes (mismo motor que los 22 puntos calientes integrados) aplicada a una AOI de usuario

Resumen de Situación (1)

Tool

Description

intel_situation_brief

Resumen de conciencia situacional citado, generado bajo demanda a través de MCP: una visión general limitada del lado del servidor (terremotos, vuelos militares, eventos de conflicto de ACLED, incendios forestales, amenazas cibernéticas, brotes de enfermedades, noticias, clima espacial, postura estratégica, resumen de alertas), sintetizado mediante Ollama local o un respaldo citado mecánicamente cuando Ollama no está disponible


Vigilando tu propia área (geocercas/AOI)

Los resultados de infraestructura estática (bases, puertos, nucleares, cables, centros de datos, puertos espaciales) se basan en los conjuntos de datos estratégicos curados de este repositorio, que son globales y deliberadamente escasos, no registros locales exhaustivos. Un resumen de AOI tranquilo significa que nada de esos conjuntos curados está en el rango, no que tu área no tenga infraestructura.

28 de las 120 herramientas aceptan algún parámetro geográfico, pero antes de la familia AOI solo intel_signal_convergence aceptaba un punto más radio real, intel_military_flights tomaba un bbox, y la puntuación de escalada de puntos calientes estaba restringida a los 22 INTEL_HOTSPOTS codificados. Las herramientas intel_aoi_* te permiten nombrar tu propia área (una ciudad, una región fronteriza, una instalación) y obtener el mismo tratamiento citado y multidominio.

Define una AOI una vez, luego resume y puntúa bajo demanda:

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 filtra cada dominio con capacidad geográfica al radio de 50 km alrededor de Pittsburgh: terremotos, vuelos militares (bbox derivado del radio), incendios forestales (mapeados por región, ya que NASA FIRMS no tiene consulta de punto+radio), eventos de conflicto de ACLED, una muestra de tráfico aéreo cercano, infraestructura estática cercana (bases militares, puertos, oleoductos, instalaciones nucleares, cables submarinos, centros de datos, puertos espaciales) con distancias en km, y menciones de titulares de noticias de "Pittsburgh". Cada elemento en la respuesta lleva una cita [n] en una lista numerada de sources, y data_gaps nombra cualquier dominio que no pudo ser delimitado a la AOI (por ejemplo, incendios forestales cuando la AOI cae fuera de las regiones de cobertura de NASA FIRMS, o eventos de conflicto cuando las credenciales de ACLED no están configuradas) en lugar de omitirlo silenciosamente.

intel_aoi_escalation ejecuta el mismo motor de puntuación de línea base/militar/conflicto/disturbios sociales que impulsa intel_hotspot_escalation para los 22 puntos calientes integrados, pero delimitado al propio radio de tu AOI en lugar de una ventana fija de 2 grados.

Las AOI persisten en una tabla dedicada dentro de la misma base de datos de caché SQLite que el servidor ya usa (~/.cache/world-intel-mcp/cache.db por defecto, o $WORLD_INTEL_CACHE_DB), por lo que un agente programado puede vigilar cualquier área nombrada a través de reinicios con intel_aoi_list / intel_aoi_delete para gestionarlas.


Almacén Vectorial

El almacén vectorial opcional de Qdrant acumula inteligencia a lo largo del tiempo para recuperación semántica. Todos los datos obtenidos a través del Fetcher se incrustan y almacenan automáticamente.

Configuración

# 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

Ejecución como servicio launchd de macOS

scripts/collector-daemon.sh gestiona el recolector como un agente launchd para que sobreviva a los reinicios. Completa com.agentic.intel-collector.plist.template con la ruta de este checkout (resuelta desde la ubicación del propio script, por lo que funciona desde cualquier clon) e instala el resultado en ~/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

Ejemplos de Búsqueda Semántica

Una vez que los datos se acumulan, los agentes de IA pueden consultar en todos los dominios:

  • "actividad militar cerca del estrecho de Taiwán" — encuentra vuelos militares, advertencias navales, datos de postura teatral

  • "amenazas cibernéticas dirigidas a la atención médica" — encuentra entradas de URLhaus, CISA KEV relacionadas con la atención médica

  • "indicadores económicos que sugieren recesión" — encuentra inversiones de la curva de rendimiento, señales macro, datos de FRED

El almacén vectorial usa FastEmbed (basado en ONNX, BAAI/bge-small-en-v1.5) para incrustaciones — no se requiere GPU, arranque en frío de ~3 segundos.


Variables de Entorno

Variable

Requerida

Descripción

ACLED_ACCESS_TOKEN

No

Eventos de conflicto de ACLED

NASA_FIRMS_API_KEY

No

Datos de incendios forestales satelitales

EIA_API_KEY

No

Datos de precios de energía

CLOUDFLARE_API_TOKEN

No

Datos de interrupciones de internet

FRED_API_KEY

No

Datos macroeconómicos (también usados para la curva de rendimiento)

OPENSKY_CLIENT_ID

No

Respaldo de vuelos militares

OPENSKY_CLIENT_SECRET

No

Respaldo de vuelos militares

OLLAMA_API_URL

No

Servidor Ollama para resúmenes generados por IA (predeterminado: http://localhost:11434)

OLLAMA_MODEL

No

Modelo Ollama para resúmenes generados por IA (predeterminado: llama3.2)

WORLD_INTEL_LOG_LEVEL

No

Nivel de registro (predeterminado: INFO)

Todo lo demás usa APIs públicas gratuitas y sin autenticación.


Desarrollo

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

Agregar una Nueva Fuente

  1. Crea sources/your_source.py con async def fetch_your_data(fetcher: Fetcher, **kwargs) -> dict

  2. Usa fetcher.get_json(url, source="your-source", cache_key=..., cache_ttl=300) — caché automática, reintentos, interrupción de circuito, limitación de velocidad

  3. En server.py: añade Tool(...) a TOOLS, añade case a _dispatch() (usa importación en línea)

  4. Añade pruebas usando respx para simular HTTP (consulta tests/test_forex.py para el patrón)

  5. Opcionalmente añade a dashboard/app.py (SSE) y cli.py (Click)


Licencia

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