storyflo-mcp is a remote MCP server that gives an AI agent 37 tools, among them digest, digest_declassified, fm_book_status. It answers at https://api.storyflo.com/mcp/v1 over streamable HTTP, and it listed its tools to an anonymous client, so no sign-in was needed for that. Our probes reached it 10 of 10 times since 5 September 2026; the last check, on 18 October 2026, succeeded.
Curated audio news, daily briefings, the Declassified library + market-linked signals.
Description as the publisher wrote it.
| Tool | What it does |
|---|---|
digest | Aggregate the top-N articles across selected verticals for the requested window. Heaviest action — counts more against the per-agent rate limit. Use this for 'read me today's tech news' style prompts. Inputs: verticals, window, limit |
digest_declassified | Return the most-recently-published Declassified cases over a rolling window. Use for 'what's new in Declassified this week' style prompts. window=today (~24h) | week (default) | month. Public — no auth required. Inputs: window, limit |
fm_book_status | A signalflo fund manager's own book: which calls are open, how many have closed, and the deep links to the desk and dashboard. Use this first when a manager asks what is on their book right now. Inputs: tenant_slug, access_token |
fm_close_position | Close a call when the divergence resolves or goes stale. The position stays on the book as closed rather than being deleted. Inputs: tenant_slug, access_token, position_key, note |
fm_open_position | Record a new call on your book: the event, which way you lean, and why. Idempotent — opening a call you already hold repositions it instead of creating a duplicate, so an agent may safely re-run its loop. Lean and rationale must be QUALITAT Inputs: tenant_slug, access_token, event, lean, rationale, category |
fm_reposition | Update your view on an open call as the signal evolves. Same qualitative rule as opening one. Inputs: tenant_slug, access_token, position_key, lean, rationale |
get_article | Fetch the full record for an article by slug, including body_text + audio_url. Inputs: slug |
get_audio_url | Resolve the playable audio URL for an article. Returns a stitched-with-ad URL on free tier or the bare audio for plus/pro. Inputs: slug |
get_crypto_market_link | Return Storyflo's markets-partner Kraken affiliate URL for a given crypto asset (BTC, ETH, etc). Editorial linkout, not a trading prompt: the URL points at Kraken's public asset page so a listener who wants exposure can reach a regulated ve Inputs: asset, embedder_slug |
get_declassified_case | Fetch the full record for a Declassified case by slug. Returns title, summary, transcript_excerpt, episode_date, duration_sec, agency, audio_url, source_doc_url, and up to 5 related cases. Use after `search_declassified` when the agent need Inputs: slug |
get_divergence_index | The Storyflo Divergence Index — Storyflo's own computed metric for where prediction markets disagree with the press. For each event Storyflo holds both a liquid prediction-market contract and a set of narrated news stories, it computes the Inputs: limit, source |
get_embedder_manifest | Wrap the public ``/embed/<slug>/manifest.json`` — an agent-discoverable JSON bundle of creative formats, voice options, payout config, and beacon URLs for a registered embedder. Use after `register_embedder` or when an agent is reading anot Inputs: slug |
get_embedder_network_manifest | Wrap the public ``/embed/network-manifest.json`` — the platform-level DSP/SSP onboarding bundle: supported creative formats, payout rails, attribution URLs, integration patterns. Use when an agent is evaluating whether to wire storyflo into |
get_market_linked_stories | Storyflo stories that match an actively traded event contract on Kalshi (a CFTC-regulated exchange). Each item carries qualitative signal tags (high_velocity, genuine_uncertainty) plus a link-out to Kalshi's own page where the live market d Inputs: vertical, category, signal, limit |
get_mcp_usage_self | Return the caller's own trailing 30-day MCP tool-usage summary: total calls, success rate, p50 latency, and per-tool call/error counts. Identity is resolved from the OAuth bearer token on this request — anonymous callers receive a zeroed sh |
get_my_private_feed | Return the caller's PRIVATE per-user podcast feed URL — a personalized daily brief (the stories from the topics the listener follows) delivered to whatever podcast app they already use (Apple Podcasts, Overcast, Pocket Casts, Snipd). This i Inputs: listener_token |
get_personas | Return the storyflo 6-host persona catalog (Theo, Mason, Jessica, etc.) — each entry includes slug, name, voice_id, owned verticals, tone archetype, sign-off line, and the listener-facing URLs for sample audio + RSS. Use this to pick a voic |
get_trending_topics | Return storyflo's current cross-vertical trending snapshot: top stories ranked by recency + velocity, active publishers in the last 24h, the featured daily-brief compilation, and per-vertical hot lists. Use when the agent needs to surface ' Inputs: window |
get_vertical_briefing | Fetch a stitched audio briefing of the top-25 trending articles in a single vertical from the last 24h. Premium — settles in USDC on Base via x402. Vertical must be one of the canonical 7 buckets: tech, finance, news, science, health, young Inputs: vertical |
get_vertical_landscape | Return everything an agent needs to onboard a listener for a single vertical in one tool call: top stories, the named host persona (with sample-audio URL and tone), the premium-briefing URL the agent can deep-link (x402-gated), and the publ Inputs: vertical |
list_podcasts | Return the public catalog of Storyflo podcast shows — the Declassified archive plus 6 daily-brief shows hosted by Theo (tech), Mason (markets), Jessica (news), Chloe (health), Brock (sports), and Wit (comedy). Each entry includes the show t |
list_subscriptions | Return the listener feed(s) this agent has minted on the human's behalf. |
publisher_attach_audio | Confirm a finished upload and mark that episode live. Verifies the file really landed in storage before changing anything, then points the episode at it so it appears in your RSS feed on the next build. Attaches ONE upload to ONE episode yo Inputs: tenant_slug, token, key, episode_slug |
publisher_connect_folder | Connect a Google Drive folder of recordings so storyflo can match them to episodes automatically — the alternative to uploading a back catalogue file by file. Call with NO folder argument first to get the setup instructions, including the a Inputs: tenant_slug, token, folder |
publisher_episodes | List a publisher's episodes newest-first with their real state: 'live' (has finished audio and appears in the RSS feed) or 'awaiting' (storyflo knows the episode exists but has no finished audio yet). Filter with status=live or status=await Inputs: tenant_slug, token, status, limit |
publisher_folder_status | What the connected folder has produced: files seen, files matched and attached, and — most usefully — the files storyflo could read but would NOT auto-attach because the filename did not clearly identify an episode. Those are listed with th Inputs: tenant_slug, token |
publisher_stats | Plays over a window (default 30 days, max 365) plus the episodes driving them. Answers 'how did last month go' and 'which episode is working'. Zero plays on a new feed is normal — directories take days to index a fresh RSS URL. Inputs: tenant_slug, token, days |
publisher_status | Where a publisher stands right now: their RSS feed URL (the one to submit to Apple Podcasts and Spotify), how many episodes storyflo holds, how many already have finished audio, and how many are still awaiting source audio. Use this for 'wh Inputs: tenant_slug, token |
publisher_upload_audio | Get a one-time upload URL for an episode's source audio — your own recording (StreamYard, Riverside, Zoom, a local file). Use this when an episode shows as 'awaiting': storyflo knows it exists but has no audio for it. Returns a presigned PU Inputs: tenant_slug, token, episode_slug, content_type |
quote_partnership | Return the indicative partnership tier (starter / growth / scale / enterprise) + monthly fee + storyflo revenue-share bps for a partner integrating storyflo into their agent product. Pure pricing-matrix lookup; no contract is created. The a Inputs: vertical, monthly_impressions |
register_embedder | Resolve the storyflo embedder onboarding URL prefilled with the partner's name + email + optional vertical. Returns the URL the human must visit to complete signup (storyflo emails a magic link to verify ownership; the embedder slug + ref_t Inputs: name, email, vertical |
search_articles | Search Storyflo's article corpus. Returns slug, title, publisher, vertical, snippet, audio_url, and listen_seconds for each match. Use vertical to scope (tech / finance / science / media / sports / culture). Inputs: query, vertical, limit |
search_declassified | Search Storyflo's Declassified archive — narrated cases drawn from FBI, CIA, NSA, NASA, DOJ, AARO, war.gov and other publicly-released government documents. Substring match across case title + synopsis. Use when the agent needs to find a De Inputs: query, limit |
search_unified | Search ALL of Storyflo in one call and get results back as separate per-corpus buckets: `news` (the narrated article archive), `declassified` (government-document cases), and `signals` (Atlas's book of positions off the Divergence Index). U Inputs: query, corpora, profile, vertical, limit |
stream_briefing_render_events | Subscribe to real-time briefing-render events. Returns the SSE endpoint URL with the chosen filters as query params — the agent's MCP client should open it with EventSource (browser), httpx.stream / aiohttp (Python), or `curl -N` (CLI). Eve Inputs: vertical, event_type |
subscribe_declassified_topic | Resolve a podcast-feed URL the user can paste into Apple Podcasts, Overcast, Pocket Casts, or Spotify to receive every new Declassified case automatically. Also returns a JSON `episodes_url` the agent can poll, plus a `matched_so_far` count Inputs: topic, email |
subscribe_topic | Mint or update the human's personal Storyflo podcast feed. Pass 1–6 vertical slugs from `tech`, `finance`, `science`, `media`, `sports`, `culture`. The server creates a private RSS feed scoped to those verticals — or updates the existing fe Inputs: verticals |
Every block below points at https://api.storyflo.com/mcp/v1. Pick your client and copy.
claude mcp add --transport http storyflo-mcp https://api.storyflo.com/mcp/v1
{
"mcpServers": {
"storyflo-mcp": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://api.storyflo.com/mcp/v1"]
}
}
}{
"mcpServers": {
"storyflo-mcp": {
"url": "https://api.storyflo.com/mcp/v1"
}
}
}{
"servers": {
"storyflo-mcp": {
"type": "http",
"url": "https://api.storyflo.com/mcp/v1"
}
}
}{
"context_servers": {
"storyflo-mcp": {
"url": "https://api.storyflo.com/mcp/v1"
}
}
}{
"mcpServers": {
"storyflo-mcp": {
"serverUrl": "https://api.storyflo.com/mcp/v1"
}
}
}{
"mcpServers": {
"storyflo-mcp": {
"url": "https://api.storyflo.com/mcp/v1"
}
}
}name: storyflo-mcp
version: 0.0.1
schema: v1
mcpServers:
- name: storyflo-mcp
type: streamable-http
url: https://api.storyflo.com/mcp/v1{
"mcpServers": {
"storyflo-mcp": {
"httpUrl": "https://api.storyflo.com/mcp/v1"
}
}
}{
"mcpServers": {
"storyflo-mcp": {
"type": "http",
"url": "https://api.storyflo.com/mcp/v1"
}
}
}{
"mcpServers": {
"storyflo-mcp": {
"url": "https://api.storyflo.com/mcp/v1"
}
}
}goose://extension?url=https%3A%2F%2Fapi.storyflo.com%2Fmcp%2Fv1&type=streamable_http&id=storyflo-mcp&name=storyflo-mcp
It answered our last check on 18 October 2026 in 410 ms. Over 10 checks since 5 September 2026 it answered 10. Status here comes from Neuronto's own probes, not from the publisher.
37, as returned by the server's own tools/list on 31 August 2026: digest, digest_declassified, fm_book_status, fm_close_position, fm_open_position, fm_reposition, get_article, get_audio_url, and 29 more.
It answered our last check on 18 October 2026 in 410 ms. Over 10 checks since 5 September 2026 it answered 10.
Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://api.storyflo.com/mcp/v1. The exact JSON is above, with the same setup for Claude Code, Claude Desktop, VS Code, Windsurf, Zed, Gemini CLI and the rest.
It listed its tools to an anonymous client, so reading the tool list needs no key. Individual tools can still ask for credentials in their own inputs.
Publisher: io.github.alisammour. Endpoint host: api.storyflo.com. ARD identifier: urn:air:io.github.alisammour:mcp:storyflo-mcp.
First indexed 31 August 2026. The tools are exactly what the server returned; nothing on this page
is inferred from its name. Ranking in Neuronto search is never for sale.