MCP server: One MCP server.

Briefing Service: hourly ranked news

@jshelleyMCP server · External

Hourly ranked news (AI, markets, sports, world): JSON, e-ink pages, Morning Paper PDF; 25 free/day

Newsv0.3.0MITJavaScript
Freeno charge per call

One address for any MCP client. No sign-in needed on this server.

What it does

3 read

Grouped by tool name. At most: only reads or looks up information.

What it costs

Free

Odel charges nothing per call. The publisher may charge for its own service.

Tools

3 · grouped by tool name · checked 10 Oct 2026

Read · 3Look things up

  • list_briefings
  • get_briefing
  • get_page
Try it in the Inspector
README3 min read

briefing-mcp

npm Listed on mcpservers.org briefing-mcp on Glama Indexed on TensorBlock MCP Index

MCP server for Briefing Service: every hour an LLM editor ranks ~100 feeds per topic (AI news, AI research, frontier labs, markets, US sports, European football, US news, world, crypto & onchain) plus two daily editions (Grants & Funding: newly posted federal funding notices with Deadline / Amount / Eligible on every item; Noticias Lentas: the day's news in simple Spanish at CEFR B1 with a glossary) and publishes the result as structured JSON, a rendered 480x800 e-ink page, a multi-page Morning Paper PDF, and a free provenance dump of every candidate it saw.

This package runs locally over stdio and calls the public REST API. The same tools are served remotely (streamable HTTP, no install) at https://briefing-service.wholemind.workers.dev/mcp.

Install

Claude Desktop / Claude Code / Cursor / any stdio client:

json
{
  "mcpServers": {
    "briefings": {
      "command": "npx",
      "args": ["-y", "briefing-mcp"],
      "env": { "BRIEFING_KEY": "" }
    }
  }
}

Claude Code one-liner:

bash
claude mcp add briefings -- npx -y briefing-mcp

Claude Desktop, one click: download briefing-mcp-0.1.0.mcpb and open it (MCP bundle; it asks for the optional Reader key).

Tools

toolwhat it returnscost
list_briefingsthe 11 keys (ai, research, labs, finance, sports, soccer, us, world, crypto, grants, slow-es-b1), names and pricesfree
get_briefing(key)lead, ranked stories, research, why-it-matters, key points25 free/IP/day, then key or x402
get_summary(key)headlines and one-linersfree
get_candidates(key)every candidate this hour: canonical link, outlets, selected, collapsed duplicates with duplicate_offree
get_page(key, page, wide)480x800 1-bit PNG (or 800x480 wide front page)25 free/IP/day

Pricing

Docs for agents: https://briefing-service.wholemind.workers.dev/llms.txt

How it works

index.js is the whole server: it registers five tools with @modelcontextprotocol/sdk and answers each by calling the public Briefing Service REST API over HTTPS (GET /v1/briefings/...). It stores nothing, runs no shell commands, and reads only two environment variables (BRIEFING_KEY, BRIEFING_BASE_URL). The Dockerfile builds the same thing; docker run -i speaks MCP over stdio.

Run the smoke test locally:

bash
npm install
node client-test.mjs   # lists tools and calls list_briefings, get_summary, get_candidates, get_page, get_briefing

Write-up of the pipeline (collect, entity-overlap dedupe, LLM editor, 1-bit render) and what the first week taught: https://dev.to/jshelley/i-built-an-hourly-newspaper-for-e-ink-and-turned-the-pipeline-into-an-mcp-server-1ebg. Each briefing also has an Atom feed at /v1/briefings/{key}/feed.xml; the Morning Paper PDF carries an outline per story, front-page go-to links and a clickable source URL on every story page.

Environment

  • BRIEFING_KEY: optional Reader key (sent as Authorization: Bearer).
  • BRIEFING_BASE_URL: override the API base (default: the public service).

License

MIT

Similar modules

Browse News