Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Storyflo

REMOTE · API.STORYFLO.COM · SCANNED SEP 20

Curated audio news, daily briefings, the Declassified library + market-linked signals.

Available components

0 this week 91 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security94
Transport & Reachability100
Schema Quality & AI Usability69
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 5301 tokens (~143/item across 37 items; 37 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
  • No destabilizing schema changes in the last 30 days.Pass
Tool Coverage88
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 64% of tool parameters carry a description.Partial
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 37 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 38 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the Storyflo MCP server?

Storyflo is a hosted endpoint at https://api.storyflo.com/mcp/v1, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · api.storyflo.com

# add to Claude Code
claude mcp add --transport http alisammour-storyflo-mcp 'https://api.storyflo.com/mcp/v1'
// .cursor/mcp.json
{
  "mcpServers": {
    "alisammour-storyflo-mcp": {
      "url": "https://api.storyflo.com/mcp/v1"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "alisammour-storyflo-mcp": {
      "type": "http",
      "url": "https://api.storyflo.com/mcp/v1"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.alisammour-storyflo-mcp]
url = "https://api.storyflo.com/mcp/v1"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "alisammour-storyflo-mcp": {
      "type": "remote",
      "url": "https://api.storyflo.com/mcp/v1",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add alisammour-storyflo-mcp --url 'https://api.storyflo.com/mcp/v1' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  alisammour-storyflo-mcp:
    url: "https://api.storyflo.com/mcp/v1"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "alisammour-storyflo-mcp": {
      "Transport": "http",
      "Url": "https://api.storyflo.com/mcp/v1"
    }
  }
}
# add to Vellum
assistant mcp add alisammour-storyflo-mcp -t streamable-http -u 'https://api.storyflo.com/mcp/v1'
// mcp.json
{
  "mcpServers": {
    "alisammour-storyflo-mcp": {
      "type": "http",
      "url": "https://api.storyflo.com/mcp/v1"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 13 Sept 26 0
    • The server rewrote its instructions, which are the text every model session reads security
    • Schema quality: excellent → good functional
  • 26 Aug 26 +1
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 25 Aug 26 0
    • Stability: 0.97 → pass security
  • 24 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

  • 19 Aug 26 0
    • Tool coverage: 75% → 64% functional
    • New tool “fm_book_status” functional
    • New tool “fm_close_position” functional
    • New tool “fm_open_position” functional
    • New tool “fm_reposition” functional
  • 14 Aug 26 0
    • Schema quality: 3679 → 4801 functional
    • Tool coverage: 67% → 75% functional
    • New tool “publisher_attach_audio” functional
    • New tool “publisher_connect_folder” functional
    • New tool “publisher_episodes” functional
    • New tool “publisher_folder_status” functional
    • New tool “publisher_stats” functional
    • New tool “publisher_status” functional
    • New tool “publisher_upload_audio” functional
    • New tool “search_unified” functional
  • 11 Aug 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 31 Jul 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Probed https://api.storyflo.com/mcp/v1

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=api.storyflo.com CN=Amazon RSA 2048 M04,O=Amazon,C=US 26 Jun 2026 9 Jan 2027 RSA 2048 SHA256-RSA a2ab9be5bd545e04dfdd58e565590e0
SANs: api.storyflo.com
CN=Amazon RSA 2048 M04,O=Amazon,C=US (CA) CN=Amazon Root CA 1,O=Amazon,C=US 23 Aug 2022 23 Aug 2030 RSA 2048 SHA256-RSA 773124f2a952e3ed18a58bdb85d1bc0ce5f27
CN=Amazon Root CA 1,O=Amazon,C=US (CA) CN=Starfield Services Root Certificate Authority - G2,O=Starfield Technologies\, Inc.,L=Scottsdale,ST=Arizona,C=US 25 May 2015 31 Dec 2037 RSA 2048 SHA256-RSA 67f944a2a27cdf3fac2ae2b01f908eeb9c4c6

Background: What to check on a remote MCP endpoint →

DNSSEC secure

Validation of api.storyflo.com. Secure

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
com. present 19718 13 Verified
storyflo.com. present 8114, 57587 13, 13 Verified
api.storyflo.com. Verified address RRset verified with the apex keys
Authentication Enforced and verified

The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.

Result Enforced and verified
Enforced On tool calls
HTTP status 200

WWW-Authenticate challenge Bearer realm="storyflo", resource_metadata="https://api.storyflo.com/.well-known/oauth-protected-resource/mcp/v1"

Bearer realm="storyflo", resource_metadata="https://api.storyflo.com/.well-known/oauth-protected-resource/mcp/v1"

Protected resource metadata

Document https://api.storyflo.com/.well-known/oauth-protected-resource/mcp/v1
Retrieved Yes
Resource https://api.storyflo.com/mcp/v1
Authorisation server https://storyflo.com

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://api.storyflo.com/mcp/v1 Verified 200
http (plaintext) http://api.storyflo.com/mcp/v1 HTTPS enforced 301 https://api.storyflo.com:443/mcp/v1
MCP tools · 37 exposed · ~4,914 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
digest ~69

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.

NameTypeReqDescription
limitinteger
verticalsarray
windowstring

No output schema declared.

No examples provided.

digest_declassified ~75

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.

NameTypeReqDescription
limitinteger
windowstring

No output schema declared.

No examples provided.

fm_book_status ~88

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.

NameTypeReqDescription
access_tokenstringyesYour access token — the same one your storyflo dashboard uses.
tenant_slugstringyesYour desk slug on storyflo.

No output schema declared.

No examples provided.

fm_close_position ~70

Close a call when the divergence resolves or goes stale. The position stays on the book as closed rather than being deleted.

NameTypeReqDescription
access_tokenstringyes
notestringOptional closing note, in words.
position_keystringyes
tenant_slugstringyes

No output schema declared.

No examples provided.

fm_open_position ~188

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 QUALITATIVE: a percentage, odds or implied probability is refused, because a number attached to a market view reads as investment advice.

NameTypeReqDescription
access_tokenstringyes
categorystring
eventstringyesWhat the call is about.
leanstringWhich way you lean, in words. No numbers.
rationalestringWhy, in words. No odds or percentages.
story_titlestring
story_urlstring
tagsarray
tenant_slugstringyes
venue_urlstring

No output schema declared.

No examples provided.

fm_reposition ~74

Update your view on an open call as the signal evolves. Same qualitative rule as opening one.

NameTypeReqDescription
access_tokenstringyes
leanstring
position_keystringyesFrom fm_book_status or fm_open_position.
rationalestring
tenant_slugstringyes

No output schema declared.

No examples provided.

get_article ~32

Fetch the full record for an article by slug, including body_text + audio_url.

NameTypeReqDescription
slugstringyes

No output schema declared.

No examples provided.

get_audio_url ~42

Resolve the playable audio URL for an article. Returns a stitched-with-ad URL on free tier or the bare audio for plus/pro.

NameTypeReqDescription
slugstringyes

No output schema declared.

No examples provided.

get_crypto_market_link ~321

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 venue without leaving the brief context. Markets-as-INPUT posture (counsel-cleared) — Storyflo never quotes prices, never recommends positions, and never frames exposure as risk-free. Behavior - Read-only. No persistent server state. - Idempotent — same (asset, embedder_slug) returns the same URL. - Fail-closed — when KRAKEN_AFFILIATE_ENABLED is off OR the partner base URL is unset, the call returns an error structure rather than a half-formed URL. - Attribution-aware — pass embedder_slug to credit the embedding publisher in the affiliate ?ref parameter; default falls back to ?ref=storyflo so the link is always trackable. When to use Surface the link in show-notes copy or in MCP-client renderings of a crypto-relevant story. DO NOT inline the URL into spoken audio narration without the host-read line that frames it as an editorial signal.

NameTypeReqDescription
assetstringyesPrimary crypto asset symbol — BTC, ETH, SOL, USDC, etc. Case-insensitive; upper-cased before being embedded in the URL.
embedder_slugstringOptional embedder attribution slug. When set, the affiliate URL carries ?ref=<slug>; omit to default to ?ref=storyflo.

No output schema declared.

No examples provided.

get_declassified_case ~102

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 needs the full case body to summarize, narrate, or hand off audio playback. Public — no auth required.

NameTypeReqDescription
slugstringyesCase slug as returned by `search_declassified`.

No output schema declared.

No examples provided.

get_divergence_index ~214

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 gap between the market-implied probability and the probability the NEWS NARRATIVE implies for the same event, then ranks events by the absolute divergence. Each item carries Storyflo's divergence value, Storyflo's news-narrative probability, a qualitative market descriptor, the matched story links, and a link-out to the market venue. This is ORIGINAL ANALYSIS computed by Storyflo, not market-data redistribution: it never returns raw external market odds. Cite as 'per Storyflo's Divergence Index'. Filter by source (kalshi|polymarket). Public — no auth required. Not investment advice.

NameTypeReqDescription
limitintegerMax items to return (1-50, default 25).
sourcestringFilter to one market source: kalshi or polymarket.

No output schema declared.

No examples provided.

get_embedder_manifest ~102

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 another partner's manifest to plan an ad buy. Public — no auth required.

NameTypeReqDescription
slugstringyesEmbedder slug (e.g. 'theflatlay', 'highsnobiety').

No output schema declared.

No examples provided.

get_embedder_network_manifest ~78

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 its surface, or when a DSP partner needs the canonical integration shape. Public — no auth required.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_market_linked_stories ~264

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 data lives. Editorial sourcing surface, not market-data redistribution: Storyflo never returns raw prices, market-implied probabilities, volumes, or open interest in this payload. Use this 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. Filter by story vertical, Kalshi category (Politics, Economics, Companies, Science and Technology, Sports), or by signal tag.

NameTypeReqDescription
categorystringFilter by Kalshi event category (e.g. Politics, Economics, Companies, Sports)
limitinteger
signalstringFilter by qualitative signal tag. high_velocity = the matched market is repricing meaningfully in the last 24h; genuine_uncertainty = the market sits in the 40–60% band where it itself is uncertain.
verticalstringFilter by story vertical (e.g. news, finance, tech, crypto)

No output schema declared.

No examples provided.

get_mcp_usage_self ~98

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 shape. Use this to self-budget against rate limits, audit which tools your agent actually uses, or decide whether a paid tier is worth the spend. Read-only, no side effects.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_my_private_feed ~195

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 is the Substack/Patreon private-feed model: the token lives in the URL path (unguessable, fetchable over HTTPS) — paste the returned feed_url into the app's "Add a show by URL". Pass the listener's existing listener_token (from the storyflo /listen page) as identity; the private feed token is minted on first call and stable thereafter. Keep the URL private — anyone with it can subscribe. Public — the listener_token arg is the credential, no OAuth required.

NameTypeReqDescription
listener_tokenstringyesThe listener's existing storyflo listener_token (identity). Get it from the /listen page or the /v1/listeners surface.

No output schema declared.

No examples provided.

get_personas ~93

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 voice for the agent's use case before rendering audio or briefing the user on which host covers which vertical. Public — no auth required.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_trending_topics ~119

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 'what's hot on storyflo right now' to its human, or to decide which vertical landscape to dig into next. Public — no auth required.

NameTypeReqDescription
windowstringAdvisory window — today's snapshot covers the rolling 24h; week + month are reflected back for future expansion.

No output schema declared.

No examples provided.

get_vertical_briefing ~98

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_moms, yoga. First call without an X-Payment header returns the x402 challenge; sign + retry.

NameTypeReqDescription
verticalstringyes

No output schema declared.

No examples provided.

get_vertical_landscape ~162

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 public RSS feed the listener can paste into any podcast player. Use after the agent has decided which vertical to set up — saves a follow-up `get_personas` + `search_articles` + `get_premium_briefing` round trip. Public — no auth required.

NameTypeReqDescription
verticalstringyesVertical slug — tech / finance / news / science / health / young_moms / yoga, or a persona-owned alias (ai, crypto, ml, markets, fintech, economics).

No output schema declared.

No examples provided.

list_podcasts ~133

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 title, host name, vertical, RSS feed URL (paste into Apple Podcasts / Spotify / Overcast), and a deep-link to the storyflo.com listen surface. Use to surface every audio show an agent can offer its user without re-deriving the catalog from /v1/podcasts/* URL patterns. Public — no auth required.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_subscriptions ~25

Return the listener feed(s) this agent has minted on the human's behalf.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

publisher_attach_audio ~111

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 you own.

NameTypeReqDescription
episode_slugstringyesEpisode to attach it to.
keystringyesThe key returned by publisher_upload_audio.
tenant_slugstringyesYour publisher slug on storyflo.
tokenstringyesYour publisher access token.

No output schema declared.

No examples provided.

publisher_connect_folder ~125

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 address to share the folder with. Then call again with folder=<the Drive URL>. Recording the connection moves no audio; the scan happens afterwards.

NameTypeReqDescription
folderstringGoogle Drive folder URL or id. Omit to get setup instructions.
tenant_slugstringyesYour publisher slug on storyflo.
tokenstringyesYour publisher access token.

No output schema declared.

No examples provided.

publisher_episodes ~136

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=awaiting to answer 'what is still pending?'.

NameTypeReqDescription
limitinteger
statusstring
tenant_slugstringyesYour publisher slug on storyflo.
tokenstringyesYour publisher access token — the same one the dashboard uses. Rotatable at POST /v1/publisher/{slug}/access-token/rotate.

No output schema declared.

No examples provided.

publisher_folder_status ~96

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 the reason so they can be renamed and picked up on the next scan.

NameTypeReqDescription
tenant_slugstringyesYour publisher slug on storyflo.
tokenstringyesYour publisher access token.

No output schema declared.

No examples provided.

publisher_stats ~118

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.

NameTypeReqDescription
daysinteger
tenant_slugstringyesYour publisher slug on storyflo.
tokenstringyesYour publisher access token — the same one the dashboard uses. Rotatable at POST /v1/publisher/{slug}/access-token/rotate.

No output schema declared.

No examples provided.

publisher_status ~131

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 'what is my feed URL', 'is anything stuck', or as the first call when a publisher asks how things are going.

NameTypeReqDescription
tenant_slugstringyesYour publisher slug on storyflo.
tokenstringyesYour publisher access token — the same one the dashboard uses. Rotatable at POST /v1/publisher/{slug}/access-token/rotate.

No output schema declared.

No examples provided.

publisher_upload_audio ~161

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 PUT URL plus a ready-to-paste curl command. Nothing changes in storyflo until you upload and then call publisher_attach_audio — this tool alone moves no bytes and mutates nothing.

NameTypeReqDescription
content_typestringAudio MIME type, e.g. audio/mpeg for mp3.
episode_slugstringEpisode this audio is for.
tenant_slugstringyesYour publisher slug on storyflo.
tokenstringyesYour publisher access token.

No output schema declared.

No examples provided.

quote_partnership ~110

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 agent should hand the returned contact_url to the human to open a formal partnership thread. Public — no auth required.

NameTypeReqDescription
monthly_impressionsintegeryesExpected monthly impressions across the partner's surface.
verticalstringyesVertical scope the partner plans to cover.

No output schema declared.

No examples provided.

register_embedder ~168

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_token are minted on verification). DOES NOT create a DB row + DOES NOT send email — the MCP tool is a discovery + handoff surface so an agent can call it speculatively without triggering inbox-bound email to the human. Public — no auth required.

NameTypeReqDescription
emailstringyesContact email — must contain '@'. Storyflo emails the magic link here on signup.
namestringyesDisplay name for the embedder (publisher / agent product).
verticalstringOptional vertical scope (tech / finance / news / etc.).

No output schema declared.

No examples provided.

search_articles ~76

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).

NameTypeReqDescription
limitinteger
querystringSearch query
verticalstring

No output schema declared.

No examples provided.

search_declassified ~138

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 Declassified case matching a topic (e.g. 'UAP', 'JFK', 'COINTELPRO', 'Roswell') before fetching the full case via `get_declassified_case` or handing the audio_url to a player. Public — no auth required.

NameTypeReqDescription
limitinteger
querystringyesSubstring matched against case title + synopsis.

No output schema declared.

No examples provided.

search_unified ~244

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). Use this when you do not already know which corpus holds the answer, or when a topic spans several — e.g. a macro question with both coverage and a live position. Results are ranked WITHIN each corpus and never blended, so a large corpus cannot drown a small one. `profile=desk` leads with signals (news/declassified as supporting evidence); `profile=publisher` leads with news and declassified carrying attribution for citation. Signals are qualitative only — no raw market odds, not investment advice.

NameTypeReqDescription
corporastringComma-separated subset: news, declassified, signals. Omit for all three.
limitintegerMax results PER CORPUS.
profilestringRanking emphasis. Same buckets either way; only order and enrichment differ.
querystringyesWhat to search for, across every corpus.
verticalstring

No output schema declared.

No examples provided.

stream_briefing_render_events ~182

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). Event types: `briefing.rendered` (daily-brief lands), `declassified.published` (new Declassified episode), `persona_briefing.rendered` (persona brief synthesised / audio rendered). Frame shape: {event_type, seq, slug, vertical, persona_slug, audio_url, published_at, metadata}. The endpoint replays the last ~1000 events on connect; a heartbeat is emitted every 30s. Public-anon read.

NameTypeReqDescription
event_typestringOptional event_type filter.
verticalstringOptional vertical filter.

No output schema declared.

No examples provided.

subscribe_declassified_topic ~145

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 of cases that already mention the topic. Read-only — does NOT store the user's email or any PII; the RSS feed is the subscription. Public — no auth required.

NameTypeReqDescription
emailstringOptional — informational only; no row is written for it.
topicstringyesTopic the listener wants alerts for (e.g. 'UAP', 'JFK', 'COINTELPRO').

No output schema declared.

No examples provided.

subscribe_topic ~331

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 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 `ListenerSubscription` row is created or updated. The returned RSS URL stays stable across calls for the same listener (the listener doesn't need to re-paste it). • 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 (read the current set via `list_subscriptions` first and pass the union if you want additive behavior). • Single feed per listener — call `list_subscriptions` first to avoid clobbering an existing feed the listener explicitly chose. When to use Use after 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`.

NameTypeReqDescription
verticalsarrayyes1–6 vertical slugs the feed should cover. Replaces (not appends) the listener's current selection.

No output schema declared.

No examples provided.

Common questions

What is the Storyflo MCP server?

Storyflo is an MCP server listed in the public MCP registry as io.github.Alisammour/storyflo-mcp. Curated audio news, daily briefings, the Declassified library + market-linked signals. This page covers its hosted endpoint (https://api.storyflo.com/mcp/v1).

Is the Storyflo MCP server safe to use?

Storyflo scores 91 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Storyflo MCP server expose?

Storyflo exposes 37 tools: search_articles, get_article, get_audio_url, subscribe_topic, list_subscriptions, and 32 more. Their descriptions and schemas cost roughly 4,914 tokens of context every time the server is loaded.

Does the Storyflo MCP server require authentication?

Yes. Storyflo asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

Is the Storyflo MCP server still maintained?

Storyflo is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.