Skip to main content
Python

NewsAPI

v0.1.3
310

@nimblebraininc/newsapi

Search news articles and top headlines using the NewsAPI

python

README

NewsAPI MCP Server

mpak NimbleBrain Discord License: MIT

A Model Context Protocol (MCP) server that provides news search and headline retrieval using NewsAPI. Get top headlines by country and category, or search articles across thousands of sources.

View on mpak registry | Built by NimbleBrain

Install

Install with mpak:

mpak install @nimblebraininc/newsapi

Configuration

Get your API key from NewsAPI, then configure:

mpak config set @nimblebraininc/newsapi api_key YOUR_API_KEY

Claude Code

claude mcp add newsapi -- mpak run @nimblebraininc/newsapi

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "newsapi": {
      "command": "mpak",
      "args": ["run", "@nimblebraininc/newsapi"]
    }
  }
}

See the mpak registry page for full install options.

Tools

get_top_headlines

Get top news headlines by country and category.

ParameterTypeRequiredDescription
querystringNoKeywords to search in article headlines
countrystringNo2-letter country code (default: "us")
categorystringNoOne of: "business", "entertainment", "general", "health", "science", "sports", "technology"
page_sizeintegerNoNumber of results, max 100 (default: 10)

Example call:

{
  "name": "get_top_headlines",
  "arguments": {
    "country": "us",
    "category": "technology",
    "page_size": 5
  }
}

Example response:

{
  "articles": [
    {
      "title": "New AI breakthrough announced",
      "description": "Researchers have developed a new approach...",
      "url": "https://example.com/article",
      "source": "TechCrunch",
      "author": "Jane Smith",
      "published_at": "2026-02-13T10:00:00Z"
    }
  ],
  "total_results": 5
}

search_news

Search news articles across all sources. Note: Only returns articles from the last 30 days (NewsAPI free tier limitation).

ParameterTypeRequiredDescription
querystringYesSearch keywords or phrase
sourcesstringNoComma-separated source IDs (e.g. "bbc-news,cnn")
domainsstringNoComma-separated domains (e.g. "bbc.co.uk,techcrunch.com")
from_datestringNoOldest article date, ISO 8601 (e.g. "2026-01-01")
to_datestringNoNewest article date, ISO 8601 (e.g. "2026-01-31")
languagestringNo2-letter language code (default: "en")
sort_bystringNo"relevancy", "popularity", or "publishedAt" (default: "publishedAt")
page_sizeintegerNoNumber of results, max 100 (default: 10)

Example call:

{
  "name": "search_news",
  "arguments": {
    "query": "artificial intelligence",
    "sort_by": "relevancy",
    "page_size": 5
  }
}

Example response:

{
  "query": "artificial intelligence",
  "articles": [
    {
      "title": "The State of AI in 2026",
      "description": "A comprehensive look at how AI has evolved...",
      "url": "https://example.com/ai-2026",
      "source": "Wired",
      "author": "John Doe",
      "published_at": "2026-02-10T14:30:00Z",
      "content": "First 200 characters of the article content..."
    }
  ],
  "total_results": 127
}

Quick Start

Local Development

git clone https://github.com/NimbleBrainInc/mcp-newsapi.git
cd mcp-newsapi

# Install dependencies
uv sync

# Set API key
cp .env.example .env
# Edit .env with your API key

# Run the server (stdio mode)
uv run python -m mcp_newsapi.server

The server supports HTTP transport with:

  • Health check: GET /health
  • MCP endpoint: POST /mcp

Development

# Install with dev dependencies
uv sync --group dev

# Run all checks (format, lint, typecheck, unit tests)
make check

# Run unit tests
make test

# Run with coverage
make test-cov

About

NewsAPI MCP Server is published on the mpak registry and built by NimbleBrain. mpak is an open registry for Model Context Protocol servers.

License

MIT