venezuela-fakenews

venezuela-fakenews

Enables AI assistants to verify claims about Venezuela's June 2026 earthquake using pattern detection, official sources, and fact-check reports.

Category
Visit Server

README

Venezuela FakeNews — Portal de Verificación + Chatbot Sismo

Monorepo para combatir desinformación sobre Venezuela, enfocado en el sismo de junio 2026. Incluye un portal web de verificación de claims (Verdadero/Falso/Dudoso), un chatbot temático, y un servidor MCP para asistentes de IA.

Key Features

  • Portal de verificación — Ingresá un claim, obtené veredicto con nivel de confianza, explicación, patrones detectados y fuentes oficiales
  • Chatbot del sismo — Respondé preguntas sobre daños, víctimas, ayuda humanitaria y desinformación detectada
  • 6+ patrones de desinformación implementados y detectables (videos descontextualizados, contenido IA, usurpación de canales, falsos anuncios, operaciones YouTube, desinformación salarial)
  • Servidor MCP para que asistentes de IA consuman la misma base de conocimiento
  • Búsqueda Tavily opcional — consultas en tiempo real a fuentes confiables
  • Historial de verificaciones persistido en SQLite

Tech Stack

Capa Tecnología
Frontend Astro o Next.js (decisión pendiente)
Backend Hono + Bun
ORM Drizzle
Base datos SQLite
API oRPC (type-safe)
Búsqueda Tavily Search API
Validación Zod
Monorepo Bun workspaces
MCP Server @modelcontextprotocol/sdk + TypeScript

Architecture

venezuela-fakenew/
├── apps/
│   ├── frontend/         ← Portal web (Astro o Next.js)
│   └── backend/          ← API Hono + oRPC + Drizzle
├── packages/
│   ├── core/             ← Lógica compartida (PATTERNS, verify, key facts)
│   └── mcp-server/       ← Servidor MCP para asistentes IA
└── docs/                 ← Notas e investigación

El backend expone procedures oRPC (verifyClaim, getPatterns, chat, searchSources, getKeyFacts) que consume el frontend y potencialmente el MCP.

Equipo

Nombre Rol Contacto
Michel Novellino Frontend (Diseño) michelnovellino.programador@gmail.com
Carlos Gallardo Frontend carlosdanielgallardoparra16@gmail.com
Stephan Calderín Backend + Deployment stephancalderin@gmail.com
Blure Backend + BD rpindv@gmail.com
José Alejandro Castro Coordinación + MCP/Core a.j.castro.b@gmail.com

Project Status

Fase 1 — Definición y Diseño (27 de junio 2026). Decisiones pendientes:

  • Stack frontend (Astro vs Next.js)
  • Integración LLM (Tavily + reglas vs LLM real)
  • Plataforma de deploy
  • Nombre del producto

Servidor MCP (packages/mcp-server)

El servidor MCP se ejecuta como subproceso del host (opencode, Claude Desktop, etc.) vía STDIO.

Prerequisites

  • Node.js 18+ (20+ recomendado)
  • (Opcional) API key de Tavily

Getting Started

bun install
bun run build
bun run inspect   # Probar con inspector MCP

Herramientas expuestas

Tool Input Output
get_fakenews_patterns Ninguno Lista de 6 patrones con ejemplos y detección
verify_claim claim, context? Análisis + patrones coincidentes + búsqueda web
search_official_sources topic, max_results? Fuentes confiables (USGS, IOM, Reuters, etc.)
generate_factcheck_report topic Reporte estructurado con datos del cuaderno

Configuración en OpenCode

{
  "mcpServers": {
    "venezuela-fakenews": {
      "command": "node",
      "args": ["<path>/packages/mcp-server/dist/index.js"]
    }
  }
}

Variables de entorno

Cada paquete trae su archivo de ejemplo — cópialo y rellená los valores.

Paquete Archivo ejemplo Copiar a
apps/backend .dev.vars.example .dev.vars (local) · wrangler secret put (prod)
apps/frontend .env.example .env
packages/mcp-server .env.example .env

Backend (apps/backend)

En local viven en .dev.vars; en producción se setean como secrets del Worker (bunx wrangler secret put <NOMBRE>). Nunca los pongas en [vars] de wrangler.toml — se escriben en texto plano y pisan el secret.

Variable Requerida Descripción
TURSO_DATABASE_URL Sí URL de la base libSQL/Turso (libsql://...).
TURSO_AUTH_TOKEN Sí Token de auth de Turso.
LLM_API_KEY Sí Key del LLM. Una sk-ant-… enruta al proveedor nativo de Anthropic; cualquier otra usa el endpoint OpenAI-compatible.
LLM_MODEL No Modelo a usar. Default: claude-haiku-4-5-20251001 (Anthropic) o gpt-4o-mini (OpenAI-compat).
LLM_BASE_URL No Base URL OpenAI-compatible (Groq, HuggingFace…). Omitir para Anthropic/OpenAI.
TAVILY_API_KEY Sí Key de Tavily para búsqueda en tiempo real.
CORS_ORIGIN Sí (prod) Orígenes exactos permitidos, separados por coma. Si esto y CORS_ORIGIN_PATTERN quedan vacíos, CORS abre a * (fail-open) — fijalo antes de producción.
CORS_ORIGIN_PATTERN No Regex anclado para orígenes dinámicos (p. ej. cualquier puerto de localhost en dev).

Frontend (apps/frontend)

Astro: solo las variables con prefijo PUBLIC_ llegan al cliente.

Variable Requerida Descripción
PUBLIC_API_URL Sí URL base del backend; el cliente le añade /rpc. Default: http://localhost:8787.
PUBLIC_MOCK_API No false usa el backend real; cualquier otro valor (o ausente) sirve datos mock.

MCP server (packages/mcp-server)

Variable Requerida Descripción
TAVILY_API_KEY No Sin ella, verify_claim y search_official_sources usan solo el conocimiento base (sin búsqueda web).

License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured