One address for any MCP client. No sign-in needed on this server.
3 read
Grouped by tool name. At most: only reads or looks up information.
Odel charges nothing per call. The publisher may charge for its own service.
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.
Claude Desktop / Claude Code / Cursor / any stdio client:
{
"mcpServers": {
"briefings": {
"command": "npx",
"args": ["-y", "briefing-mcp"],
"env": { "BRIEFING_KEY": "" }
}
}
}
Claude Code one-liner:
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).
| tool | what it returns | cost |
|---|---|---|
list_briefings | the 11 keys (ai, research, labs, finance, sports, soccer, us, world, crypto, grants, slow-es-b1), names and prices | free |
get_briefing(key) | lead, ranked stories, research, why-it-matters, key points | 25 free/IP/day, then key or x402 |
get_summary(key) | headlines and one-liners | free |
get_candidates(key) | every candidate this hour: canonical link, outlets, selected, collapsed duplicates with duplicate_of | free |
get_page(key, page, wide) | 480x800 1-bit PNG (or 800x480 wide front page) | 25 free/IP/day |
BRIEFING_KEY. Buy at https://briefing-service.wholemind.workers.dev/billing/checkoutDocs for agents: https://briefing-service.wholemind.workers.dev/llms.txt
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:
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.
BRIEFING_KEY: optional Reader key (sent as Authorization: Bearer).BRIEFING_BASE_URL: override the API base (default: the public service).MIT