Alisammour/storyflo-mcp

๐Ÿ”Ž Search & Data Extraction
0 Views
0 Installs

๐Ÿ“‡ โ˜๏ธ - Curated audio-news with a market-aware news signal. Search articles, fetch narrated audio, subscribe topic feeds, surface stories matched to actively traded Kalshi event contracts (CFTC-regulated; qualitative signal tags + link-out to Kalshi, never raw market data). 8 tools (7 free + 1 x402-paid over USDC on Base). Install via npx -y storyflo-mcp.

Quick Install

One-Click IDE Configuration
claude_desktop_config.json
{
  "mcpServers": {
    "alisammour-storyflo-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "alisammour-storyflo-mcp"
      ]
    }
  }
}
Or

Using an AI coding agent (Claude Code, Cursor, etc.)? Copy a ready-made prompt that tells it to fetch the setup instructions and install this server for you.

Documentation Overview

Storyflo MCP Server

storyflo-mcp MCP server storyflo-mcp MCP server score smithery badge

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

Add to Cursor Install in VS Code Install in VS Code Insiders

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.

Run the stdio bridge

npx storyflo-mcp            # or: node src/index.js

Or via Docker:

docker build -t storyflo-mcp .
docker run -i --rm storyflo-mcp

Environment variables:

VariableDefaultPurpose
STORYFLO_MCP_URLhttps://api.storyflo.com/mcp/v1Upstream MCP endpoint
STORYFLO_TOKEN(unset)OAuth bearer for tools/call; discovery (initialize, ping, tools/list, resources/list) works anonymously

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 audio
  • Daily 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

SurfaceURL
MCP transporthttps://api.storyflo.com/mcp/v1
Discovery manifesthttps://api.storyflo.com/.well-known/mcp.json
OAuth (RFC 8414)https://api.storyflo.com/.well-known/oauth-authorization-server
OpenAI tool spechttps://api.storyflo.com/v1/agents/openai-tools.json
API docshttps://www.storyflo.com/developers

One-click install

Cursor

cursor://anysphere.cursor-deeplink/mcp/install?name=storyflo&config=eyJ1cmwiOiAiaHR0cHM6Ly9hcGkuc3RvcnlmbG8uY29tL21jcC92MSJ9

Add Storyflo to Cursor

Claude Desktop / claude.ai

Settings โ†’ Connectors โ†’ Add custom connector โ†’ URL:

https://api.storyflo.com/mcp/v1

Any 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:

toolwhat it does
search_articlessearch the curated article corpus by query/vertical
get_articlefetch the full record + body text + audio URL by slug
get_audio_urlresolve the playable audio URL for an article
get_trending_topicswhat's hot on Storyflo right now
get_personasthe host voices (Theo / Mason / Riley / Iris / Brock / Wit)
get_vertical_landscapeone-shot per-vertical context for onboarding a listener
list_podcaststhe full catalog of audio shows (per-host + Declassified)
digesttop-N articles aggregated across verticals for a window
get_market_linked_storiesstories matched to Kalshi event contracts (editorial, not advice)
get_crypto_market_linkKraken affiliate markets link-out for crypto-relevant stories
search_declassifiedsubstring search across the Declassified case archive
get_declassified_casefull Declassified case record by slug
digest_declassifiedmost-recently-published Declassified cases over a window
subscribe_topicmint/update a personal podcast RSS feed scoped to verticals
subscribe_declassified_topicresolve a Declassified podcast-feed URL (read-only)
list_subscriptionslist feeds this agent has minted for the human
register_embedderreturns a partner onboarding URL (no email/row created)
get_embedder_manifestthe embedder integration manifest
get_embedder_network_manifestthe embedder network manifest
quote_partnershipexplore partnership tiers, creative formats + payout rails

Note: subscribe_topic, subscribe_declassified_topic, and list_subscriptions are 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

nametyperequireddescription
querystringnoFull-text query against title + body + summary. Omit to browse a vertical without a keyword filter.
verticalenumnoOne of: tech, finance, science, media, sports, culture. Narrows results to a single vertical.
limitintnoMax 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

nametyperequireddescription
slugstringyesArticle slug, as returned by search_articles.

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

nametyperequireddescription
slugstringyesArticle 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 ListenerSubscription row 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_subscriptions first and pass the union.
  • Single feed per listener โ€” call list_subscriptions first 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

nametyperequireddescription
verticalsarray<enum>yes1โ€“6 unique slugs from tech, finance, science, media, sports, culture. Replaces (does not append to) the listener's current selection.

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

nametyperequireddescription
verticalenumyesOne of tech, finance, science, media, sports, culture, news.

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

nametyperequireddescription
verticalsarrayno1โ€“6 verticals. Defaults to all 6 if omitted.
windowenumno24h (default), 7d, or 30d.
limitintnoMax 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

nametyperequireddescription
verticalstringnoFilter by story vertical (e.g. news, finance, tech, crypto).
categorystringnoFilter by Kalshi event category (e.g. Politics, Economics, Companies, Science and Technology, Sports).
signalenumnoOne of active, high_velocity, genuine_uncertainty. 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.
limitintnoMax 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 storyflo

Logo

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

Multimedia / audio adjacencies

Meta-MCP / aggregators

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.

Related MCP Servers

linxule/mineru-mcp

๐Ÿ“‡ โ˜๏ธ - MCP server for MinerU document parsing API. Parse PDFs, images, DOCX, and PPTX with OCR (109 languages), batch processing (200 docs), page ranges, and local file upload. 73% token reduction with structured output.

๐Ÿ”Ž Search & Data Extraction1 views
0xdaef0f/job-searchoor

๐Ÿ“‡ ๐Ÿ  - An MCP server for searching job listings with filters for date, keywords, remote work options, and more.

๐Ÿ”Ž Search & Data Extraction0 views
Aas-ee/open-webSearch

๐Ÿ ๐Ÿ“‡ โ˜๏ธ - Web search using free multi-engine search (NO API KEYS REQUIRED) โ€” Supports Bing, Baidu, DuckDuckGo, Brave, Exa, and CSDN.

๐Ÿ”Ž Search & Data Extraction0 views
ac3xx/mcp-servers-kagi

๐Ÿ“‡ โ˜๏ธ - Kagi search API integration

๐Ÿ”Ž Search & Data Extraction0 views

Engagement

Views
0
Installs
0
Upvotes
0

Views and upvotes are unique per visitor network (hashed IP). Installs count copy actions.

Status

Health: Not checked yet

We have not completed a health check for this listing yet.

Last checked: 7/28/2026, 10:45:29 AM

Unclaimed listing (imported or pending owner verification). Claim it โ†’
โ˜… Spotlight Slot

Feature Your MCP Server

Get maximum visibility for your server across our directory, search results, and detail pages.

Spotlight Your Server

Own this project?

This directory is pre-filled from public sources. Claim via GitHub README, site badge, or DNS TXT to get the verified badge and attach your website.

Claim this listing

Promote this listing

Optional paid placement. Free listings stay free forever.

Share & Embed

Add our SVG badge (dark/light directory styles) or embeddable widget to your site.