TheNewsAPI MCP Server
TheNewsAPI MCP Server
Un servidor MCP que expone los endpoints de lectura de TheNewsAPI.com como herramientas, para que un asistente de IA (Claude Code, Claude Desktop o cualquier cliente MCP) pueda consultar artículos de noticias a partir de indicaciones en lenguaje natural.
Esto apunta a TheNewsAPI.com (
https://api.thenewsapi.com/v1/) — no al servicionewsapi.org, que no está relacionado.
Paquete npm: @trifecta/thenewsapi-mcp-server (aún no publicado).
Herramientas
Herramienta | Endpoint | Propósito |
|
| Búsqueda de palabras clave/booleana en todo el archivo de artículos. |
|
| Principales noticias / tendencias actuales, opcionalmente por |
|
| Titulares actuales agrupados por categoría. |
|
| Otras coberturas de la misma historia que un artículo dado. |
|
| Obtener un artículo por su UUID. |
|
| Enumerar los medios indexados y sus |
Sintaxis de búsqueda booleana (parámetro search)
search_news y get_top_stories aceptan una consulta booleana:
Operador | Significado | Ejemplo |
| el término es obligatorio (AND) |
|
| un término u otro (OR) |
|
| excluir término |
|
| frase exacta |
|
| agrupar |
|
Las palabras separadas por espacios sin operador se tratan como OR.
Requisitos
Node.js 18 o superior (el SDK de MCP y el
fetchnativo utilizado para las llamadas HTTP ambos lo requieren). Compruébalo connode --version; actualiza mediante nvm (nvm install 20 && nvm use 20) o nodejs.org.Una cuenta de TheNewsAPI gratuita o de pago.
Cómo obtener un token de API
Regístrate en https://www.thenewsapi.com/register.
Abre tu panel de control: https://www.thenewsapi.com/account/dashboard.
Copia el token de API.
Notas sobre el plan gratuito: el nivel gratuito limita limit a 3 artículos por solicitud y tiene una
cuota mensual baja; algunos endpoints/parámetros son solo de pago y devolverán
endpoint_access_restricted.
El token lo proporciona cada usuario en tiempo de ejecución mediante la variable de entorno NEWS_API_TOKEN.
Nunca se incluye en el paquete ni el servidor lo registra.
Instalación y configuración — paquete publicado (para usuarios finales, una vez en npm)
No se necesita clonar ni compilar. Apunta tu cliente MCP al paquete mediante npx.
Claude Code
claude mcp add thenewsapi \
--env NEWS_API_TOKEN=your_token_here \
-- npx -y @trifecta/thenewsapi-mcp-serverLuego ejecuta claude, revisa /mcp — thenewsapi debería estar conectado con 6 herramientas.
Claude Desktop
Edita claude_desktop_config.json:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"thenewsapi": {
"command": "npx",
"args": ["-y", "@trifecta/thenewsapi-mcp-server"],
"env": { "NEWS_API_TOKEN": "your_token_here" }
}
}
}Reinicia Claude Desktop.
Alternativa de instalación global
npm install -g @trifecta/thenewsapi-mcp-server
# then use command "thenewsapi-mcp-server" instead of "npx -y @trifecta/..."Configuración de desarrollo local (mientras no esté publicado)
git clone https://github.com/stature/trifecta-thenewsapi-mcp-server.git
cd trifecta-thenewsapi-mcp-server
npm install
cp .env.example .env
# edit .env and set NEWS_API_TOKEN=...
npm run build.env está en gitignore: guarda el token real ahí, nunca en .env.example.
Comprobación rápida de que arranca:
npm start
# -> "[thenewsapi-mcp] server ready (stdio)" on stderr, then Ctrl-CApunta Claude Code a tu compilación local:
claude mcp add thenewsapi \
--env NEWS_API_TOKEN=your_token_here \
-- node /absolute/path/to/newsapi-mcp/dist/index.jsO directamente el JSON de configuración (~/.claude.json, o .mcp.json en un proyecto):
{
"mcpServers": {
"thenewsapi": {
"command": "node",
"args": ["/absolute/path/to/newsapi-mcp/dist/index.js"],
"env": { "NEWS_API_TOKEN": "your_token_here" }
}
}
}Despliegue remoto — Streamable HTTP (SecureAI / HatzAI y otros clientes MCP HTTP)
Este paquete incluye dos puntos de entrada:
Punto de entrada | Transporte | Uso con |
| stdio | Claude Code / Claude Desktop (el cliente lo ejecuta localmente) |
| Streamable HTTP | SecureAI / HatzAI, o cualquier cliente que acepte una URL de servidor |
El servidor HTTP mantiene NEWS_API_TOKEN completamente en el lado del servidor; los clientes remotos se autentican
con un secreto compartido separado (MCP_AUTH_TOKEN) y nunca ven el token de TheNewsAPI.
Configuración (variables de entorno)
Variable | Obligatoria | Por defecto | Propósito |
| sí | — | Token de TheNewsAPI (solo en el servidor). |
| recomendada | (ninguno) | Secreto compartido que los clientes deben enviar. Sin definir = sin autenticación. |
| no |
| Cabecera aceptada para autenticación tipo "API Key". |
| no |
| Puerto de escucha ( |
| no |
| Dirección de enlace: mantenla en loopback detrás de un proxy TLS. |
| no |
| Ruta en la que se sirve el endpoint de MCP. |
| no | (ninguno) | Defínelo como un origen o |
GET /healthz es una sonda de actividad sin autenticación.
Apunta SecureAI / HatzAI a él
En el formulario de conexión personalizado:
Campo | Valor |
URL de servidor |
|
Transporte | Streamable HTTP |
Método de autenticación |
|
o | |
o |
Pruébalo primero localmente
cp .env.example .env
# set NEWS_API_TOKEN=... and MCP_AUTH_TOKEN=some-long-random-string
npm run dev:http
# -> [thenewsapi-mcp] Streamable HTTP listening on http://127.0.0.1:3000/mcp (auth: required)# handshake check
curl -sD- http://127.0.0.1:3000/mcp \
-H 'content-type: application/json' \
-H 'accept: application/json, text/event-stream' \
-H 'authorization: Bearer some-long-random-string' \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"curl","version":"0"}}}'
# 200 + an `mcp-session-id` response header + the server capabilitiesDespliegue en una VM "Always Free" de Oracle Cloud + Caddy
El host recomendado: una VM gratuita y siempre activa con Caddy que termina TLS (certificados automáticos de Let's Encrypt) y hace de proxy inverso hacia el proceso de Node gestionado por systemd.
Las plantillas de configuración están en deploy/:
deploy/Caddyfile→/etc/caddy/Caddyfiledeploy/thenewsapi-mcp.service→/etc/systemd/system/deploy/env.production.example→/opt/thenewsapi-mcp/.env
Guía paso a paso completa (creación de la VM, ambos cortafuegos de Oracle, DNS, TLS, verificación):
deploy/README.md. Resumen:
Crea una instancia
VM.Standard.A1.Flex(Ampere) de Ubuntu 22.04; reserva su IP pública.Abre TCP 80 + 443 en ambas: la lista de seguridad de la VCN y el
iptablesde la instancia.Instala Node 20 (NodeSource) y Caddy (apt).
Apunta un registro A de un dominio a la VM.
Clona en
/opt/thenewsapi-mcp, ejecutanpm ci && npm run build, crea.env(con un valoropenssl rand -hex 32paraMCP_AUTH_TOKEN),chmod 600.Instala la unidad de systemd:
systemctl enable --now thenewsapi-mcp.Instala el Caddyfile (sustituye por tu dominio),
systemctl restart caddy.Verifica
https://your-domain/mcpcon el handshakecurlanterior y luego añádelo a SecureAI.
¿No tienes dominio? El Apéndice A de deploy/README.md cubre un hostname gratuito de DuckDNS.
Nota sobre escalado: las sesiones se mantienen en memoria en un solo proceso — perfecto para una única VM siempre activa. Varias instancias necesitarían enrutamiento de sesiones persistentes (sticky sessions).
Ejemplos de indicaciones
"Busca en las noticias artículos sobre la Ley de IA de la UE de las últimas dos semanas, solo en inglés."
"¿Cuáles son las principales noticias de negocios en EE. UU. en este momento?"
"Dame un resumen de noticias — titulares de tecnología, negocios y ciencia."
"Encuentra cobertura de
+\"interest rate\" +\"Federal Reserve\" -cryptoordenada por relevancia.""Obtén todo de nytimes.com y bbc.com sobre la misión de retorno de muestras de Marte."
"Aquí tienes un UUID de artículo
abc-123— encuentra otros medios que cubran la misma historia.""Enumera las fuentes de noticias a las que puedes acceder en la categoría
tech.""Obtén el artículo completo con UUID
abc-123."
Manejo de errores
Los códigos de error documentados de TheNewsAPI se devuelven al asistente con orientación y un indicador de si se puede reintentar:
Código | Reintentable | Significado |
| no | Nombre/formato de parámetro incorrecto: corrígelo y reintenta. |
| no |
|
| no | Cuota mensual agotada. |
| no | No disponible en el plan actual. |
| no | El UUID / recurso no existe. |
| sí | Límite de peticiones por segundo: espera y reintenta. |
| sí | Error transitorio del servidor upstream. |
| sí | API temporalmente caída. |
Estructura del proyecto
src/
index.ts stdio entrypoint (Claude Code / Desktop)
http.ts Streamable HTTP entrypoint (SecureAI / remote clients) + auth
server.ts shared McpServer factory used by both entrypoints
client.ts API client wrapper: base URL, auth, query building, error mapping
errors.ts NewsApiError + documented error-code translation
schemas.ts Shared zod schema fragments (filters, pagination, search help)
tools/
shared.ts safeHandler wrapper + JSON result formatter
search-news.ts
get-top-stories.ts
get-headlines.ts
get-similar-articles.ts
get-article-by-uuid.ts
list-sources.tsLa salida compilada va a dist/. Solo se incluyen dist/, README.md y LICENSE
en el paquete publicado (consulta files en package.json).
Scripts
Script | Acción |
| Compila TypeScript a |
| Recompila al cambiar. |
| Comprueba tipos sin emitir. |
| Elimina |
| Ejecuta el servidor stdio compilado. |
| Ejecuta el servidor Streamable HTTP compilado. |
| Compila y luego ejecuta (stdio). |
| Compila y luego ejecuta (HTTP). |
| Ejecuta automáticamente |
Publicación
npm run typecheck
npm publish # scoped package; publishConfig.access is already "public"Antes de la primera publicación: asegúrate de ser miembro de la organización npm @trifecta. Repo:
https://github.com/stature/trifecta-thenewsapi-mcp-server.
Versionado: comienza en 0.1.0 (pre-1.0 — la superficie de herramientas puede cambiar aún). Sigue semver
a partir de entonces.
Fuera de alcance (en esta fase)
Sin base de datos, caché, webhooks ni integraciones posteriores — solo los endpoints de lectura como herramientas MCP.
Licencia
MIT — consulta LICENSE.
This server cannot be installed
Maintenance
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
NewsData.io MCP — wraps the NewsData.io global news API (newsdata.io)
Mediastack MCP — wraps Mediastack API (api.mediastack.com/v1)
Currents MCP — wraps the Currents API (currentsapi.services)
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/stature/trifecta-thenewsapi-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server