NarcoScope
Investigación de solo lectura sobre evidencia oficial de mercados de drogas y economía ilícita, preservando la procedencia, los límites de cobertura y las fronteras de privacidad.
Documentación
🌍 NarcoScope
En vivo: narcoscope.com · sala de prensa de evidencia: narcoscope.com/#newsroom
Estado del despliegue verificado 2026-08-29:
narcoscope.comestá configurado y es el origen público canónico. El dominio raíz sirve el despliegue de Vercel;www.narcoscope.comsirve el despliegue de Railway. Los metadatos del registro y los agentes usan el endpoint MCP del dominio raíz.
Un explorador de datos educativo y de bien público que hace legibles los datos del comercio mundial de drogas. UNODC, INCB y EUDA ya publican precios callejeros (minoristas), precios de precursores químicos y datos de flujos de tráfico/incautaciones — pero están enterrados en PDFs densos y CSV que la mayoría de la gente no puede leer. Esta aplicación es una capa de traducción sobre esos datos públicos: gráficos limpios, mapas y explicaciones en lenguaje sencillo.
Misión: democratizar los datos oficiales de drogas difíciles de leer. No es una nueva fuente de datos — es una forma de entender la existente.
Acceso para agentes y API
- Catálogo de API RFC 9727:
https://narcoscope.com/.well-known/api-catalog - OpenAPI:
https://narcoscope.com/openapi.json - Manifiesto MCP:
https://narcoscope.com/server.json - MCP HTTP transmisible:
https://narcoscope.com/mcp - Contexto de producto legible por máquina:
https://narcoscope.com/.well-known/ai-catalog.json - Guía legible por agentes:
https://narcoscope.com/llms.txt
{
"mcpServers": {
"narcoscope": { "url": "https://narcoscope.com/mcp" }
}
}
El servicio MCP es de solo lectura y devuelve structuredContent respaldados por esquemas JSON Schema para cada herramienta. La versión 1.3 admite tanto el carril de descubrimiento MCP 2026-07-28 sin estado como el carril de inicialización heredado 2025-06-18. Preserva los estados oficial, ilustrativo, desactualizado, no disponible y restringido en lugar de convertir la evidencia faltante en una puntuación.
El límite escalonado/en vivo/Registro y la secuencia de publicación obligatoria están registrados en docs/MCP-1.3.0-RELEASE-GATE.md.
Qué muestra
- Precios callejeros — tendencias de precios minoristas por país, con una vista ajustada por pureza y un enfoque de asequibilidad (precio expresado en días de ingreso local promedio).
- Flujos y precios de precursores — corredores de tráfico y precios de químicos precursores, con los centros de origen (notablemente China) resaltados.
- Mapa de flujos — un mapamundi Equal-Earth de arcos de corredores, animado a lo largo del tiempo.
- Triangulación — lee las incautaciones frente a modalidades que las agencias de interdicción no recopilan. El volumen de incautaciones se mueve con la capacidad de aplicación de la ley tanto como con el volumen de tráfico, y nada dentro de los datos de incautaciones separa ambos; la mortalidad por sobredosis (registros de estadísticas vitales) y la carga de aguas residuales (químicos ambientales) sí pueden. Donde las modalidades coinciden, la lectura es creíble; donde divergen, la divergencia es el hallazgo — incautaciones al alza con consumo plano se lee como un efecto de aplicación de la ley, consumo al alza con incautaciones planas se lee como expansión que la interdicción no detectó. Cada veredicto informa cuántas modalidades independientes lo respaldaron y si sobrevive al eliminar cualquiera de ellas. Caso de validación: cannabis canadiense 2019→2023 lee incautaciones −94% frente a consumo medido en aguas residuales +69%. Canadá legalizó el cannabis en 2018, por lo que el colapso de incautaciones es que la aplicación de la ley se detuvo, no la demanda — y la herramienta lo dice en lugar de reportar un mercado en contracción.
- Designaciones — las ~2,600 entidades en la lista SDN de OFAC bajo las autoridades de narcóticos y delincuencia transnacional, buscables por nombre o por alias publicado por OFAC, más una red de jurisdicciones construida a partir de los países en los que el Tesoro registra cada entidad. El análisis de intermediación y puntos de articulación muestra qué jurisdicciones mantienen unidas las redes designadas.
- Sala de prensa de evidencia — un pipeline de publicación determinista y capaz de funcionar sin conexión, con citas a nivel de oración y compuertas de fuentes independientes. Su primer análisis acotado mantiene el comercio legal, incidentes oficiales seleccionados y datos de daños de EE. UU. en carriles de evidencia separados, y declara qué no puede unirse o atribuirse causalmente a partir del registro público.
- Contexto BRI Palimpsest — un carril fijo y acotado de preparación de fuentes y contexto económico nacional para CPEC, Gwadar, CMEC, Kyaukpyu y Balochistán. Preserva clases de reclamos oficiales, independientes y modelados, además de cobertura WDI no disponible, pero no puede entrar en inferencias de mercado de drogas, actores, rutas, culpabilidad, políticas o causales.
- Enfoque en Myanmar — detalle a nivel provincial (Triángulo Dorado): regiones de producción, presión de conflicto de guerra civil, entradas de precursores desde China/terceros países, ciudades de corredores transfronterizos y volúmenes incautados. La capa de inteligencia fusiona evidencia de múltiples fuentes en puntuaciones de riesgo/confianza por región, señala desacuerdos entre fuentes, pondera fuentes por nivel de confiabilidad, calcula una trayectoria de riesgo interanual (al alza/a la baja/estable) para que los analistas vean el impulso, señala una alerta de desbordamiento geográfico cuando una región tranquila limita con una que ya cruzó el umbral de alto riesgo, señala obsolescencia de evidencia (actual/envejeciendo/obsoleta) cuando el registro más reciente de una región es anterior al año de reporte, descontando la confianza en consecuencia, y puntúa la concentración del corredor de precursores con un Índice Herfindahl-Hirschman (diversificado/moderado/concentrado) para señalar dependencia de suministro de fuente única — tanto una señal de fragilidad como una prioridad de interdicción. Los perfiles de riesgo y el libro mayor del grafo de evidencia se pueden exportar como CSV directamente desde el informe para revisión analítica sin conexión.
Cada vista lleva una frase "En lenguaje sencillo" generada automáticamente y informaciones emergentes que explican cada cifra en términos humanos.
Capturas de pantalla
Precios callejeros ahora incluye datos oficiales: Informe Mundial sobre Drogas 2025 de UNODC, Anexo Estadístico 8.1 (precios minoristas por gramo + purezas, 2019–2023, 208 registros en 69 países), con PIB per cápita del Banco Mundial (2024) impulsando el enfoque de asequibilidad. Las cifras del mapa de flujos, precursores y Myanmar siguen siendo ilustrativas hasta su ingesta — la insignia en la aplicación indica exactamente cuál es cuál.
Una interfaz oscura y orientada al movimiento: un globo WebGL traza corredores de precursores desde sus centros de origen (coral) hacia nodos de tránsito y destino (cian), los encabezados se revelan letra por letra y las secciones aparecen al desplazarse. La capa inmersiva está completamente protegida detrás de prefers-reduced-motion y recurre a un lienzo 2D ligero en dispositivos móviles / sin WebGL.

Precios callejeros — tendencias de precios + enfoque de asequibilidad, con un resumen en lenguaje sencillo:

Mapa de flujos — mapamundi Equal-Earth de corredores de precursores, animado por año:

Enfoque en Myanmar — detalle a nivel provincial del Triángulo Dorado:

Alcance ético (por favor, lea)
Esta herramienta reporta estadísticas agregadas y publicadas — a nivel de país, anuales y (para regiones de enfoque) a nivel provincial — estrictamente para concienciación, educación e investigación. Por diseño no proporciona datos de punto de venta, tiempo real, sub-calle o ubicaciones navegables, y la capa de precursores almacena solo logística (qué, cuánto, dónde, estado de control) con sin química, rutas de síntesis o rendimientos. No es, y no debe usarse como, una guía para obtener cualquier sustancia.
Señal privada de ScamShield
El entorno analítico de Hetzner puede ingerir el agregado de Telegram con privacidad minimizada de ScamShield para revisión privada. Esto no entra al sitio web ni a sus conjuntos de datos respaldados por Git. Un firewall de esquema estricto rechaza mensajes crudos, IOC exactos, identificadores de fuente, reclamos de cobertura universal, reclamos de elegibilidad pública y cualquier cosa que elimine el requisito de revisión humana. El importador no tiene acceso a la red y retiene solo conteos agregados, un hash del archivo fuente, instantáneas por hora y un libro mayor de recibos de solo anexión bajo /var/lib/narcoscope-analyst/.
Consulte deploy/private-import/README.md para el
límite de confianza y el servicio de producción.
Entidades nombradas
La pestaña Designaciones nombra personas y empresas, algo que toda otra capa evita. La línea que mantiene:
- Una designación es un acto publicado de un gobierno — una entidad colocada en una lista bajo una autoridad legal declarada en una fecha declarada. NarcoScope reporta lo que el gobierno hizo. No caracteriza lo que la entidad hizo, no lleva campo de alegato de texto libre, y una designación no es una adjudicación de culpabilidad. OFAC elimina de la lista; verifique la lista en vivo antes de confiar en cualquier fila.
- Direcciones, números de pasaporte e identificación nacional y fechas de nacimiento están presentes en el archivo OFAC aguas arriba y deliberadamente no se extraen.
- El periodismo y los rastreadores de crowdsourcing son pistas, no registros. C4ADS, InSight Crime, EIA, GASO y el resto están registrados en el registro de fuentes y son leídos por el raspador gobernado en una cola de trabajo de analistas. Una entidad nombrada llega a un conjunto de datos empaquetado solo si también aparece en una lista de designación oficial. La regla está escrita en
scripts/scrape/myanmar-sources.jsoncomoverification_rule. - El grafo de designaciones no tiene aristas entre entidades, porque OFAC no publica ninguna. Inventarlas y ejecutar centralidad sobre el resultado produciría clasificaciones confiadas de individuos privados a partir de un grafo que esta herramienta inventó.
docs/ROADMAP-PARALLEL-ECONOMY.mdregistra los métodos excluidos por estos motivos, y por qué.
Procedencia de datos
La mayoría de las cifras empaquetadas son ahora extractos oficiales, regenerados por el pipeline a partir de las fuentes a continuación. Lo que sigue siendo ilustrativo se nombra explícitamente: los volúmenes de flujo a nivel regional de Myanmar y la serie de precios de precursores (INCB no publica precios de precursores). La insignia en la aplicación indica cuál es cuál, y cada conjunto de datos generado lleva un encabezado de procedencia que nombra su fuente, fecha de recuperación y reglas de extracción.
- UNODC — Drogas: precios e Informe Mundial sobre Drogas — https://dataunodc.un.org
- INCB — Informe de Precursores 2025 (PDF auditado exacto) — https://www.incb.org/incb/uploads/documents/Publications/AnnualReports/AR2025/Precursors_Report/E_INCB_2025_4_eng.pdf
- CDC NCHS — conteos provisionales de muertes por sobredosis de drogas VSRR — https://data.cdc.gov/NCHS/VSRR-Provisional-Drug-Overdose-Death-Counts/xkb8-kh2a
- Statistics Canada — metabolitos de drogas en aguas residuales municipales — https://www150.statcan.gc.ca/t1/tbl1/en/tv.action?pid=1310087101
- Tesoro de EE. UU. OFAC — Nacionales Especialmente Designados — https://sanctionslist.ofac.treas.gov/Home/SdnList
- EUDA (EMCDDA) — precio, pureza y aguas residuales — https://www.euda.europa.eu/data
- Banco Mundial — PIB per cápita — https://data.worldbank.org
- ACLED / International Crisis Group — contexto de guerra civil en Myanmar
El registro completo abarca conjuntos de datos automatizados, conjuntos de datos con pasos manuales e informes de investigación que alimentan la cola de trabajo de analistas en lugar de la aplicación — en scripts/pipeline/sources.json. Cada entrada registra su licencia, cadencia, nivel de automatización y qué alimenta. Dos entradas están registradas específicamente para que el razonamiento no se re-litigue: OpenSanctions publica sin licencia en sus artefactos masivos y por lo tanto es un puntero de consulta en lugar de un conjunto de datos empaquetado, y las licencias por colección de OCCRP Aleph prohíben la redistribución.
Las aguas residuales provienen de Canadá, no de Europa. EUDA devuelve HTTP 403 a clientes que no son navegadores (en la URL actual, la heredada y la copia enlazada desde data.europa.eu) y ACIC envía PDFs, por lo que ninguno de los programas famosos puede automatizarse. Statistics Canada publica la misma medición, con el mismo grano, en la misma unidad SCORE, a través de una API sin clave bajo una licencia abierta — así que ese es el valor predeterminado empaquetado, y Canadá es el segundo país completamente triangulado. La cobertura europea y australiana aún necesita una exportación verificada a través del panel CSV.
Cargue datos reales a través del panel "Cargar datos oficiales (CSV)" en el pie de página; cada archivo es analizado por src/lib/ingest.ts y las filas incorrectas se reportan, no se descartan silenciosamente. Consulte src/lib/ingest-config-reference.md para el mapeo de columnas.
El triaje de fuentes de conflicto y flujos de precursores en Myanmar se puede preparar con el raspador gobernado estilo Palimpsest:
npm run scrape:myanmar -- --out docs/sources/myanmar-observations.csv --pretty
Esa salida es una cola de trabajo de analistas con extractos y huellas de contenido, no datos directos de la aplicación; verifique y codifique las filas en los esquemas CSV de guerra civil / precursores de Myanmar antes de cargarlas.
Una ontología derivada de cada tipo de entidad y relación realmente presente en los
datos es regenerada por npm run ontology en docs/ontology/. Se induce por
observación sobre los conjuntos de datos incluidos, en lugar de generarse mediante un modelo de lenguaje:
el corpus ya está tipado y etiquetado con procedencia, por lo que el esquema puede leerse
directamente de él, lo que elimina por completo el riesgo de alucinación. Es un borrador para
revisión y nunca se aplica automáticamente a src/types.ts.
La nueva pestaña Enterprise Intel añade un grafo de evidencia de eventos/entidades, puntuaciones
de riesgo regionales, indicadores de confianza/diversidad de fuentes y un registro de evidencia para
revisión analítica. Consulte docs/ENTERPRISE_HARDENING.md para el diseño respaldado por documentación.
La pestaña Evidence Newsroom lee un dossier y un recibo verificados generados
sin acceso a red ni llamadas a modelos. La publicación requiere citas de frases y
visuales, independencia activa de las fuentes upstream para la síntesis, un contracaso,
limitaciones y comprobaciones de seguridad de causalidad/culpabilidad. Consulte
docs/EVIDENCE_NEWSROOM.md.
Contrato de publicación del newsroom de evidencia
El newsroom está etiquetado visiblemente como análisis automatizado de evidencia, con
humanReviewStatus: not_recorded. Ningún modelo generativo participa en su construcción,
no se incluye testimonio de expertos ni de personas afectadas, y nunca simula esas
voces humanas. Su artículo inicial no hace ninguna acusación nominal, registra el derecho
a réplica como not_required y publica un historial de correcciones/actualizaciones con
hashes estables de revisión y contenido.
Un registro oficial utilizado en la construcción puede respaldar una observación atribuida. Una síntesis analítica o metodológica requiere al menos dos grupos oficiales upstream independientes y utilizados activamente; simplemente registrar una fuente disponible, solo con capacidad o no disponible contribuye con cero corroboración. Cuando las entradas carecen de un denominador de comercio lícito, una unión a nivel de registro, un resultado adjudicado o una asignación de país defendible, el newsroom se abstiene. No convierte etiquetas de origen, designaciones administrativas o una tendencia de mortalidad separada en culpa o atribución causal.
Las superficies de publicación son:
- ruta de la aplicación:
/#newsroom; - HTML independiente:
/news/china-linked-precursor-incidents-official-record.html; - informe breve de máquina:
/news/china-linked-precursor-incidents-official-record.machine-brief.json; - dossier citado:
/news/china-linked-precursor-incidents-official-record.dossier.json; - JSON Feed:
/news/feed.json; y - feed Atom:
/news/feed.xml.
Ejecute npm run news:build para regenerar el paquete sin conexión y
npm run news:check para verificar cada byte verificado. La compilación de producción ejecuta
la comprobación de artefactos obsoletos antes de TypeScript y Vite.
Tecnología
React 18 · Vite 8 · TypeScript · Recharts · react-simple-maps (world-atlas incluido
localmente). La capa de interfaz añade Three.js / React Three Fiber (un
globo héroe de carga diferida con postprocesado de bloom, mantenido fuera del paquete inicial),
@react-spring/web (revelaciones de letras/secciones y contadores animados basados en física)
y Lenis (desplazamiento suave global), todo detrás de una protección prefers-reduced-motion.
El almacén de datos en tiempo de ejecución (src/lib/dataStore.ts) intercambia datos de muestra → reales al cargar.
Desarrollo
npm install
npm run dev # local dev server
npm run scrape:myanmar -- --pretty
npm run ontology # regenerate docs/ontology/draft-ontology.{json,md}
npm run news:build # regenerate the deterministic evidence newsroom
npm run news:check # verify that checked-in newsroom artifacts are current
npm run bridge:palimpsest-bri:check # verify the pinned BRI artifact + hash
npm run build # type-check (tsc) + production build → dist/
npm run preview # preview the build
npm run typecheck # tsc --noEmit
npm test # run unit tests (Vitest)
Despliegue (Vercel)
El repositorio está listo para Vercel (vercel.json fija el framework de Vite). O bien:
- Panel: importe el repositorio Git en vercel.com — configuración cero, detección automática.
- CLI:
npx vercel(vista previa) /npx vercel --prod(producción).
Canal de datos
npm run data:refresh obtiene las fuentes abiertas automatizables (anexos del WDR de la UNODC,
PIB del Banco Mundial, mortalidad VSRR de los CDC, designaciones SDN de la OFAC),
regenera los conjuntos de datos incluidos y los valida
contra el conjunto de pruebas. Actualizaciones individuales: npm run data:overdose,
npm run data:designations. Una GitHub Action trimestral hace lo mismo y
abre un PR cuando los datos cambian. El registro completo de fuentes (incluidas las
fuentes manuales y de clave API aún no conectadas) se encuentra en
scripts/pipeline/sources.json; el
manual es docs/DATA_PIPELINE.md.
Estado / Pendiente
hecho — ahora devuelve el precio por gramo puro y se niega a ajustar cuando la pureza es desconocida (unpurityAdjustedPrice()es un stub intencionaln/ahonesto es mejor que comparar un precio callejero adulterado con uno puro). Consulte la nota editorial ensrc/lib/metrics.ts.Cargar y verificar datos reales de UNODC/INCBPrecios callejeros y registros cualificados de flujo de precursores: hecho (WDR 2025 Anexo 8.1 y el informe de precursores INCB 2025 localizado por párrafos). Restante: una serie de precios de precursores citable y el conjunto de datos de Myanmar.- Las aguas residuales ahora se incluyen (Canadá). Extenderlo a Europa o Australia aún necesita una exportación EUDA o ACIC obtenida manualmente — ambos editores bloquean la automatización. Cada uno añadido es otro país donde la detección de divergencias funciona.
- Una segunda autoridad designante para la pestaña Designaciones (hoy es solo OFAC).
La lista consolidada de la ONU fue evaluada y descartada — es un
instrumento antiterrorista con casi ninguna designación de narcóticos; el
Mapa de Sanciones de la UE es el candidato activo. Consulte
docs/ROADMAP-PARALLEL-ECONOMY.mdpara el backlog ordenado y para los métodos excluidos por motivos éticos o de calidad de datos.
Licencia
MIT — libre de usar, adaptar y construir sobre ello, con atribución.