npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

world-news-api-mcp

v1.0.0

Published

MCP server for the World News API - search news, get headlines, extract articles, and more

Readme

World News API MCP Server

A Model Context Protocol (MCP) server that provides access to the World News API. This server enables AI assistants to search for news, get top headlines, extract articles, retrieve newspaper front pages, and more through the MCP protocol.

npm version npm downloads License: ISC

Features

  • News Search: Search and filter news by text, date, location, category, language, and more
  • Top Headlines: Get top news from any country in any language
  • Newspaper Front Pages: Retrieve front pages of newspapers from around the world
  • Article Extraction: Extract full articles from news URLs
  • News Links Discovery: Extract news links from websites
  • Source Search: Find monitored news sources
  • Location Coordinates: Get geo-coordinates for location-based filtering
  • Content Analysis: Extract entities, detect sentiment, and more

Quick Start

Installation

npm install -g world-news-api-mcp

Setup

  1. Get a World News API key (free at https://worldnewsapi.com/register)

  2. Set your API key as an environment variable:

    # Windows (PowerShell)
    $env:WORLD_NEWS_API_KEY="your_api_key_here"
       
    # macOS/Linux
    export WORLD_NEWS_API_KEY="your_api_key_here"

Usage with MCP Clients

Add this configuration to your MCP client (Claude Desktop, etc.):

{
  "servers": {
    "world-news-api": {
      "command": "world-news-api-mcp",
      "env": {
        "WORLD_NEWS_API_KEY": "your_api_key_here"
      }
    }
  }
}

Test the Installation

# Set your API key
export WORLD_NEWS_API_KEY="your_key_here"

# Test the server
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | world-news-api-mcp

Available Tools

search_news

Search and filter news by text, date, location, category, language, and more.

Parameters:

  • text (string, optional): Text to match in news content (min 3 chars)
  • source-country (string, optional): ISO 3166 country code (e.g., "us", "gb")
  • language (string, optional): ISO 6391 language code (e.g., "en", "es")
  • min-sentiment / max-sentiment (number, optional): Sentiment range [-1,1]
  • earliest-publish-date / latest-publish-date (string, optional): Date range (YYYY-MM-DD HH:MM:SS)
  • news-sources (string, optional): Comma-separated list of sources
  • authors (string, optional): Comma-separated list of authors
  • categories (string, optional): Categories (politics, sports, business, technology, etc.)
  • entities (string, optional): Filter by entities (ORG:Tesla,PER:Elon Musk)
  • location-filter (string, optional): "latitude,longitude,radius_km"
  • sort (string, optional): Sorting criteria (publish-time)
  • sort-direction (string, optional): ASC or DESC
  • offset (number, optional): Number of results to skip
  • number (number, optional): Number of results to return (1-100, default: 10)

get_top_news

Get the top news from a country in a language for a specific date.

Parameters:

  • source-country (string, required): ISO 3166 country code
  • language (string, required): ISO 6391 language code
  • date (string, optional): Date (YYYY-MM-DD), defaults to current day
  • headlines-only (boolean, optional): Return only basic info (default: false)

retrieve_newspaper_front_page

Get front pages of newspapers from around the world.

Parameters:

  • source-country (string, optional): ISO 3166 country code
  • source-name (string, optional): Publication identifier (e.g., "herald-sun")
  • date (string, optional): Date (YYYY-MM-DD), earliest: 2024-07-09

retrieve_news_articles

Retrieve detailed information about specific news articles by their IDs.

Parameters:

  • ids (string, required): Comma-separated list of news IDs

extract_news

Extract a news article from a website to a well-structured JSON object.

Parameters:

  • url (string, required): URL of the news article
  • analyze (boolean, optional): Analyze content (entities, sentiment, etc.)

extract_news_links

Extract news links from a news website.

Parameters:

  • url (string, required): URL of the news website
  • analyze (boolean, optional): Analyze extracted content

search_news_sources

Search whether a news source is monitored by the World News API.

Parameters:

  • name (string, required): (Partial) name of the source

get_geo_coordinates

Get latitude and longitude of a location for use in location-filter.

Parameters:

  • location (string, required): Address or location name

Usage Examples

Search for recent news about AI

{
  "name": "search_news",
  "arguments": {
    "text": "artificial intelligence",
    "language": "en",
    "categories": "technology",
    "number": 5
  }
}

Get top news from the US

{
  "name": "get_top_news",
  "arguments": {
    "source-country": "us",
    "language": "en"
  }
}

Extract an article from URL

{
  "name": "extract_news",
  "arguments": {
    "url": "https://www.bbc.com/news/world-us-canada-59340789",
    "analyze": true
  }
}

Search for news near a location

{
  "name": "search_news",
  "arguments": {
    "text": "earthquake",
    "location-filter": "35.6762,139.6503,50",
    "language": "en"
  }
}

Development

To run in development mode:

npm run dev

To build:

npm run build

To test:

npm test

API Rate Limits

The World News API has different rate limits based on your subscription:

  • Free Plan: 150 requests per day
  • Paid Plans: Higher limits available

Check the World News API pricing for details.

Error Handling

The server handles common API errors:

  • 401 Unauthorized: Invalid API key
  • 402 Payment Required: API quota exceeded
  • 429 Too Many Requests: Rate limit exceeded

License

ISC

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Related