storyflo
Storyflo is an audio news and intelligence platform that lets LLM agents search and consume curated news, generate briefings, access declassified documents, and discover market-linked stories. 20 tools are free, with one premium paid tool.
Search & browse articles by keyword and/or vertical (tech, finance, science, media, sports, culture) — returns title, snippet, audio URL, and listen duration
Fetch full articles by slug, including body text and audio URL
Resolve audio URLs for direct playback (free tier includes stitched ads; Plus/Pro returns bare audio)
Daily digest — aggregate top articles across multiple verticals for a rolling 24h, 7d, or 30d window
Premium vertical briefing (paid via x402/USDC on Base) — stitched audio of top-25 trending articles in a single vertical from the last 24 hours
Subscribe to topic feeds — create or update personal podcast RSS feeds scoped to 1–6 verticals, compatible with Spotify, Apple Podcasts, Pocket Casts, etc.
List subscriptions — retrieve all podcast feeds created on the user's behalf
Declassified document library (public, no auth required) — search, retrieve full records, and get digests of FBI, CIA, NSA, NASA, DOJ, and AARO declassified cases
Market-linked insights — find articles matched to actively traded Kalshi event contracts (with signal tags) and Kraken crypto market link-outs for crypto-relevant stories
Discovery tools — retrieve trending topics, host personas, per-vertical landscape context, and the full podcast catalog
Partnership/embedder registration — explore partnership tiers, creative formats, and revenue-sharing payout rails
Generate RSS feeds that can be added to Apple Podcasts for subscribing to curated audio news and declassified case releases.
Provides access to narrated declassified NASA documents, including search and retrieval of case records from the Storyflo Declassified library.
Provides an OpenAI-compatible tool specification, enabling OpenAI agents to use Storyflo tools for searching articles, fetching audio, and accessing declassified documents.
Generate RSS feeds that can be added to Overcast for subscribing to curated audio news and declassified case releases.
Generate RSS feeds compatible with Pocket Casts for subscribing to curated audio news and declassified case releases.
Generate RSS feeds compatible with Spotify for subscribing to curated audio news and declassified case releases.
Storyflo MCP Server
Official Model Context Protocol server for Storyflo — curated audio news + daily briefings + the public Declassified library (FBI/CIA/NSA/NASA/DOJ/AARO releases) + market-linked story signals, all exposed as a callable surface for any LLM agent.
Claude Desktop one-click
.mcpb: for a no-config Claude Desktop install, see the companion extension repo Alisammour/storyflo-mcp-extension.
This repository contains a zero-dependency stdio bridge (src/index.js) that relays MCP JSON-RPC between a local stdio client and the hosted streamable-http endpoint, plus discovery + install references. The Storyflo platform itself is proprietary; agent integration through the public API is the supported surface.
Install — one click
Claude Code: claude mcp add --transport http storyflo https://api.storyflo.com/mcp/v1
Any remote client: https://api.storyflo.com/mcp/v1 (streamable-http) · stdio: npx storyflo-mcp
The best tools are free + no-auth — try search_declassified (real FBI/CIA/NSA/NASA cases) in seconds, then earn revenue share by integrating via register_embedder.
Related MCP server: 1MCP Server
Run the stdio bridge
npx storyflo-mcp # or: node src/index.jsOr via Docker:
docker build -t storyflo-mcp .
docker run -i --rm storyflo-mcpEnvironment variables:
Variable | Default | Purpose |
|
| Upstream MCP endpoint |
| (unset) | OAuth bearer for |
Claude Desktop / any stdio-only MCP client config:
{
"mcpServers": {
"storyflo": {
"command": "npx",
"args": ["-y", "storyflo-mcp"],
"env": { "STORYFLO_TOKEN": "<optional bearer>" }
}
}
}What you can do
Audio news — search Storyflo's curated corpus by vertical (
tech,finance,science,media,sports,culture, + more), fetch full articles, and resolve playable audioDaily briefings — aggregate top-N cross-vertical roll-ups (
digest) or a stitched single-vertical audio briefing (get_vertical_briefing, premium)Declassified library — narrated FBI/CIA/NSA/NASA/DOJ/AARO releases, public + no auth
Market-linked signals — Storyflo stories matched to Kalshi event contracts + a Kraken crypto markets link-out (editorial, not investment advice)
Discovery — trending topics, host personas, per-vertical landscape, full podcast catalog
Subscriptions — mint personal podcast feeds for articles or Declassified, on the listener's behalf
Partner integration — register as an embedder + explore partnership tiers/payout rails for revenue share
Endpoints
Surface | URL |
MCP transport |
|
Discovery manifest |
|
OAuth (RFC 8414) |
|
OpenAI tool spec |
|
API docs |
|
One-click install
Cursor
cursor://anysphere.cursor-deeplink/mcp/install?name=storyflo&config=eyJ1cmwiOiAiaHR0cHM6Ly9hcGkuc3RvcnlmbG8uY29tL21jcC92MSJ9Claude Desktop / claude.ai
Settings → Connectors → Add custom connector → URL:
https://api.storyflo.com/mcp/v1Any MCP-compatible client (Continue, Cline, Zed, Windsurf, ChatGPT Custom Connectors)
{
"mcpServers": {
"storyflo": {
"url": "https://api.storyflo.com/mcp/v1",
"transport": "streamable-http"
}
}
}Tools
Storyflo exposes 21 tools (20 free + 1 premium) across three auth tiers:
Public (no auth, no OAuth flow needed) — designed so any LLM agent can browse + recommend from a fresh client install without an OAuth handshake:
tool | what it does |
| search the curated article corpus by query/vertical |
| fetch the full record + body text + audio URL by slug |
| resolve the playable audio URL for an article |
| what's hot on Storyflo right now |
| the host voices (Theo / Mason / Riley / Iris / Brock / Wit) |
| one-shot per-vertical context for onboarding a listener |
| the full catalog of audio shows (per-host + Declassified) |
| top-N articles aggregated across verticals for a window |
| stories matched to Kalshi event contracts (editorial, not advice) |
| Kraken affiliate markets link-out for crypto-relevant stories |
| substring search across the Declassified case archive |
| full Declassified case record by slug |
| most-recently-published Declassified cases over a window |
| mint/update a personal podcast RSS feed scoped to verticals |
| resolve a Declassified podcast-feed URL (read-only) |
| list feeds this agent has minted for the human |
| returns a partner onboarding URL (no email/row created) |
| the embedder integration manifest |
| the embedder network manifest |
| explore partnership tiers, creative formats + payout rails |
Note:
subscribe_topic,subscribe_declassified_topic, andlist_subscriptionsare listed as public for discovery; calls that mint/list a listener's feed resolve identity via OAuth bearer when present.
Premium (x402 over USDC on Base mainnet) — get_vertical_briefing: a stitched audio briefing of the top-25 trending articles in a vertical from the last 24h.
The live tool manifest (with full JSON Schema for every parameter) is at
/v1/agents/openai-tools.json — the source of truth Glama, OpenAI, and Anthropic introspect.
Declassified library · public · no auth (NEW, 2026-06-20)
The Declassified library is Storyflo's narrated archive of publicly-released government documents from FBI, CIA, NSA, NASA, DOJ, AARO, war.gov, and other agencies. Every case has a narrated audio version, a transcript excerpt, and a source-document link. The 4 tools below traverse the same archive that backs the /declassified FE shelf and the public Declassified RSS feed.
search_declassified · public
Substring search across case title + synopsis. Returns {slug, title, dek, episode_date, duration_sec, agency, category, era, audio_url} per match.
Parameters: query (string, required), limit (int, 1-50, default 10).
get_declassified_case · public
Full case record by slug. Returns {slug, title, dek, summary, transcript_excerpt, episode_date, duration_sec, agency, category, era, cover_url, audio_url, source_doc_url, related_cases:[{slug, title}]}.
Parameters: slug (string, required).
digest_declassified · public
Most-recently-published cases over a rolling window. Returns the same card shape as search_declassified.
Parameters: window (today | week (default) | month), limit (int, 1-50, default 10).
subscribe_declassified_topic · public
Resolves a podcast-feed URL the user can paste into Apple Podcasts, Overcast, Pocket Casts, or Spotify to receive every new Declassified case automatically. Returns {topic, rss_feed_url, archive_url, episodes_url, matched_so_far, note}. Read-only by design: no DB row is written, no email is stored, the RSS feed IS the subscription.
Parameters: topic (string, required), email (string, optional — informational only, never stored).
search_articles · free
Search Storyflo's curated article corpus by query and/or vertical. Use this when the agent needs to find articles matching a topic before deciding which one to read or play.
Parameters
name | type | required | description |
| string | no | Full-text query against title + body + summary. Omit to browse a vertical without a keyword filter. |
| enum | no | One of: |
| int | no | Max results (default 10, capped 25). |
Returns — array of { slug, title, publisher, vertical, snippet, audio_url, listen_seconds, published_at }.
get_article · free
Fetch the full record for a single article by slug. Use after search_articles when the agent needs the full body text or full audio URL.
Parameters
name | type | required | description |
| string | yes | Article slug, as returned by |
Returns — { slug, title, body_text, audio_url, publisher, vertical, sources[], published_at }.
get_audio_url · free
Resolve the playable audio URL for an article without fetching the body. Use when the agent wants to hand off audio playback to the user. Free tier returns a stitched-with-ad URL; Plus/Pro returns the bare audio.
Parameters
name | type | required | description |
| string | yes | Article slug. |
Returns — { slug, audio_url, listen_seconds, tier }.
subscribe_topic · free
Mint or update the human's personal Storyflo podcast feed. Pass 1–6 vertical slugs and the server creates a private RSS feed scoped to those verticals — or updates the existing feed in place if the listener already has one. Returns the RSS URL the listener can paste into Spotify, Apple Podcasts, Pocket Casts, or any podcast client.
Behavior
Persistent server-side side-effect — a
ListenerSubscriptionrow is created or updated. The returned RSS URL stays stable across calls for the same listener (no re-pasting needed).Idempotent on identical input — calling twice with the same verticals leaves state unchanged.
REPLACES on different input — calling with a different verticals set OVERWRITES the previous selection rather than adding to it. Use this to switch a listener's feed; do NOT call to add verticals incrementally. For additive behavior, read the current set via
list_subscriptionsfirst and pass the union.Single feed per listener — call
list_subscriptionsfirst to avoid clobbering an existing feed the listener explicitly chose.
Use when the agent has been asked to set up audio news for the human across a defined set of topics. Do NOT use to FETCH articles or audio — that's search_articles + get_audio_url.
Parameters
name | type | required | description |
| array<enum> | yes | 1–6 unique slugs from |
Returns — { feed_url, verticals, listener_token }.
list_subscriptions · free
Return the listener feeds this agent has minted on the human's behalf. Use before subscribe_topic to avoid creating duplicate feeds.
Parameters — none.
Returns — array of { feed_url, verticals, created_at }.
get_vertical_briefing · paid (x402)
Fetch a stitched audio briefing of the top-25 trending articles in a single vertical from the last 24h. Use when the agent wants a "today's headlines for X" experience for the user. Read-only — no listener state mutated.
Parameters
name | type | required | description |
| enum | yes | One of |
Returns — { vertical, audio_url, item_count, listen_seconds, articles[] }.
Cost — single x402 charge; covers the full stitched briefing audio.
digest · free (heaviest)
Aggregate the top-N articles across one or more verticals for a window (24h / 7d / 30d). The heaviest action — counts most against per-agent rate limit. Use for "read me today's tech + finance news" prompts where the agent wants a curated cross-vertical roll-up rather than a single vertical's briefing.
Parameters
name | type | required | description |
| array | no | 1–6 verticals. Defaults to all 6 if omitted. |
| enum | no |
|
| int | no | Max articles per vertical (default 5, capped 25). |
Returns — { window, verticals, items: [{ slug, title, vertical, audio_url, snippet }] }.
get_market_linked_stories · free
Storyflo stories that match an actively traded event contract on Kalshi — a CFTC-regulated designated contract market. Each item carries qualitative signal tags plus a link-out to Kalshi's own page where the live market data lives.
This is an editorial sourcing surface, not market-data redistribution. Storyflo never returns raw prices, market-implied probabilities, volumes, or open interest in this payload. The agent or user follows the linkout to see live numbers on Kalshi.
Use when the agent needs to know which Storyflo stories are about news themes that have an actively traded event contract — e.g. World Cup matches, political mention contracts, corporate events. Same shape as a newsroom citing CME futures: market activity informs which stories are worth surfacing.
Parameters
name | type | required | description |
| string | no | Filter by story vertical (e.g. |
| string | no | Filter by Kalshi event category (e.g. |
| enum | no | One of |
| int | no | Max items (default 10, capped 50). |
Returns — array of:
{
"story": { "slug", "title", "vertical", "published_at" },
"matched_market": { "title", "category", "url" },
"signal_tags": ["active", "high_velocity"?, "genuine_uncertainty"?],
"match": { "score", "shared_terms" }
}plus top-level attribution and disclaimer strings on every payload.
The matched_market.url links to Kalshi's own events page so the user / agent sees live market data on the source. Storyflo does not redistribute that data.
Compliance posture (counsel-reviewed; regression-tested in CI):
Vocabulary locked: never bets, odds, picks, or wagers — anywhere on the surface
Attribution on every payload: "Market data: Kalshi, a CFTC-regulated designated contract market"
Disclaimer on every payload: market-implied probabilities are exchange prices, not Storyflo forecasts and not investment advice; story-to-market links indicate topical correlation, not causation; informational use only
Liquidity floor (vol24h ≥ 100 OR OI ≥ 1000) excludes thin markets that could be manipulated into the feed
Near-resolved markets (implied probability outside 3–97%) excluded — keeps forward-looking signal only
Input-not-output frame: raw prices, probabilities, volumes, and open interest are computed internally for ranking but never exposed in the public payload. The linkout is the user's path to live data on Kalshi's own surface.
Authentication
OAuth 2.1 + PKCE. Public clients (Claude/ChatGPT/Cursor's MCP connectors) auto-register via Dynamic Client Registration (RFC 7591) at /oauth/register. No manual API key needed.
x402 micropayments
The premium tool (get_vertical_briefing) is metered via x402 over USDC on Base mainnet. Agents pay per call, no upfront contract. All 20 other tools require no payment — the Declassified, discovery, and partner tools need no auth at all, and the listener/article tools require only OAuth.
70/20/10 revenue split: 70% to the publisher, 20% to the recommending agent, 10% to Storyflo. On-chain and deterministic.
SDK
Native client libraries for TypeScript and Python:
npm install storyflo-sdk # https://www.npmjs.com/package/storyflo-sdk
pip install storyflo # https://pypi.org/project/storyflo/Install via Smithery
npx -y @smithery/cli install storyfloLogo
The Storyflo brand mark for client UIs:
https://www.storyflo.com/icon-512.png
Related MCP servers
If you ship an agent that uses storyflo, you might also want the following — same x402-over-Base monetization rail, similar agent-facing posture, or natural complements in the news / finance / audio category space.
Same payment rail (x402 over USDC on Base)
forgemeshlabs/coinopai-mcp — paid crypto intelligence (trade decisions, audit against real prices, signal history) over USDC micropayments on Base.
8randonpickart5/alderpost-mcp — eight bundled intelligence endpoints (security, company, threat, compliance, sales, sports, property, health) via x402 on Base.
Financial / market-data sourcing
Yahoo Finance MCP server — real-time equity quotes for agents that need security-level data alongside storyflo's market-aware news signal.
News + article sourcing
angheljf/nyt — NY Times article search.
AceDataCloud/MCPSerp — Google SERP (web, images, news, maps) search.
andybrandt/mcp-simple-arxiv — search + read arXiv papers.
Aas-ee/open-webSearch — free multi-engine web search.
Multimedia / audio adjacencies
AceDataCloud/MCPSuno — Suno AI music generation + vocal extraction.
bogdan01m/zapcap-mcp-server — video caption and B-roll generation.
Meta-MCP / aggregators
1mcp/agent — unified MCP server that aggregates multiple MCP servers into one.
tadas-github/a2asearch-mcp — discover 4,800+ MCP servers, agents, and CLI tools.
If you maintain an MCP server that pairs naturally with storyflo and isn't listed, please open a PR or comment on an issue. We curate this list quarterly.
Support
Developer questions: api@storyflo.com
Bug reports: open an issue on this repo
Discord: TBD
License
MIT for this repository's content (README + manifest references). The Storyflo platform itself is proprietary; agent integration through the public API is the supported integration surface.
Maintenance
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Alisammour/storyflo-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server