Briefings

io.github.jshelleyPublished by GitHub account jshelleyv0.3.0Updated Nov 2, 2026

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

VerifiedStreamable HTTPWeb executableWeb Search & ScrapingMedia & Design

Overview

AI-generated overview

Serves hourly LLM-ranked news briefings (AI, markets, sports, world, crypto, grants) as structured JSON or e-ink PNG pages.

What you can do
  • List the available briefings, their names and prices
  • Fetch one briefing as structured JSON: lead story, ranked stories, research items, why-it-matters and key points
  • Render a briefing page as a 480x800 1-bit PNG made for e-ink and small displays
  • Read headlines and one-liners, or the full candidate list with duplicates collapsed
When to use it
Useful when an assistant should summarize or discuss current news on a fixed set of topics, or produce a compact e-ink-style page of headlines, without building its own feed pipeline.
Requirements
Either the remote streamable HTTP endpoint or a local stdio process via npx or the MCP bundle. Network access to the public Briefing Service API. An optional BRIEFING_KEY for the paid Reader tier; without it, 25 calls per IP per day are free, and the remote endpoint can also charge per call via x402.
Before you install
Read-only news retrieval, but paid tiers involve money: a $9/month Reader key passed as BRIEFING_KEY or an Authorization bearer header, or per-call USDC payments on Base through x402. Free usage is capped at 25 calls per IP per day. Content comes from a third-party service, so headlines and rankings reflect its LLM editor.

Installation

In SourceWeft

  1. Open Briefings in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.jshelley%2Fbriefings/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "briefings": {
      "type": "http",
      "url": "https://briefing-service.wholemind.workers.dev/mcp"
    }
  }
}

README

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 installnode 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

Source: README.md at commit 25c3370

Tools

3

list_briefings

List the briefings available (AI, Frontier Labs, Markets, US Sports, European Football, US News, World News, Crypto & Onchain hourly; Grants & Funding and Noticias Lentas (simple Spanish, B1) daily).

Takes no parameters.

get_briefing

One briefing as structured JSON: lead story, ranked stories and research items with summaries, why-it-matters and key points, plus when it was ranked.

Parameterskeyrequired

get_page

One rendered page of a briefing as a 480x800 1-bit PNG (page 0 is the front page; story pages follow). Made for e-ink and small displays.

Parameterskeyrequiredpage

Version history

1
  1. v0.3.0LatestSep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts