storyflo
Storyflo MCP 服务器
Storyflo 的官方模型上下文协议 (MCP) 服务器 — 一个精选音频新闻平台,可叙述热门文章及听众转发的通讯,并将其作为可调用接口暴露给任何 LLM 智能体。
本仓库是发现与安装参考。Storyflo 平台本身是专有的;此 README 是智能体和人类进行集成所需的文档。
你可以做什么
按垂直领域搜索 Storyflo 的文章库(
tech、finance、science、media、sports、culture等 30 多个领域)获取完整文章及音频 URL
解析可播放音频(免费层级)或高质量音频(Plus 层级)
代表听众订阅主题源
汇总每日 Top-N 简报
Related MCP server: 1MCP Server
端点
接口 | URL |
MCP 传输 |
|
发现清单 |
|
OAuth (RFC 8414) |
|
OpenAI 工具规范 |
|
API 文档 |
|
一键安装
Cursor
cursor://anysphere.cursor-deeplink/mcp/install?name=storyflo&config=eyJ1cmwiOiAiaHR0cHM6Ly9hcGkuc3RvcnlmbG8uY29tL21jcC92MSJ9Claude Desktop / claude.ai
设置 → 连接器 → 添加自定义连接器 → URL:
https://api.storyflo.com/mcp/v1任何兼容 MCP 的客户端 (Continue, Cline, Zed, Windsurf, ChatGPT 自定义连接器)
{
"mcpServers": {
"storyflo": {
"url": "https://api.storyflo.com/mcp/v1",
"transport": "streamable-http"
}
}
}暴露的工具
工具 | 描述 |
| 搜索文章库,返回 slug/标题/发布者/摘要/audio_url |
| 获取指定 slug 的完整记录 + 正文文本 + audio_url |
| 解析文章的可播放音频 |
| 更新听众订阅的垂直领域;返回 RSS 订阅 URL |
| 智能体已创建的听众订阅列表 |
| 汇总所选垂直领域的 Top-N 内容(最繁重的操作,通过 x402 付费) |
身份验证
OAuth 2.1 + PKCE。公共客户端(Claude/ChatGPT/Cursor 的 MCP 连接器)通过 /oauth/register 进行动态客户端注册 (RFC 7591) 自动注册。无需手动 API 密钥。
x402 微支付
高级工具通过 Base 主网上的 USDC x402 协议进行计量。智能体按调用付费,无需预付合同。免费层级工具(search_articles、list_topics、get_daily_briefing)无需付费。
70/20/10 收入分成:70% 给发布者,20% 给推荐智能体,10% 给 Storyflo。链上且确定性执行。
SDK
TypeScript 和 Python 的原生客户端库:
npm install storyflo-sdk # https://www.npmjs.com/package/storyflo-sdk
pip install storyflo # https://pypi.org/project/storyflo/通过 Smithery 安装
npx -y @smithery/cli install storyfloLogo
用于客户端 UI 的 Storyflo 品牌标识:
https://storyflo.com/icon-512.png
支持
开发者问题:api@storyflo.com
错误报告:在此仓库提交 issue
Discord:待定
许可证
本仓库内容(README + 清单引用)采用 MIT 许可证。Storyflo 平台本身是专有的;通过公共 API 进行智能体集成是受支持的集成方式。
Available Tools
7 toolsdigestBuild a daily digestARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| verticals | No | ||
| window | No | 24h | |
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint, destructiveHint), the description adds the key behavioral note that this is the 'heaviest action' and counts more against the per-agent rate limit. This is useful context not present in the annotations, aiding in cost/rate management.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: the first defines the action and scope, the second adds a use-case example and rate-limit warning. Every sentence is purposeful, with no redundancy or filler. Front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's purpose, usage context, and a critical rate-limit caveat, making it reasonably complete for a simple read-only tool with no output schema. It does not mention that verticals is optional or the default window, but those are captured in the schema, and the description adds enough to avoid major confusion.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description compensates by explaining 'top-N' (limit), 'selected verticals' (verticals), and 'requested window' (window). This gives functional meaning to all three parameters, though it does not enumerate allowed enum values (those are in the schema).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool aggregates top-N articles across verticals for a time window, with a specific verb ('Aggregate') and resource ('articles'). However, it does not explicitly differentiate from sibling tools like digest_declassified or get_vertical_briefing, so it lacks explicit sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear usage context with the example prompt 'read me today's tech news' and warns that it is a heavy action for rate limits. It does not mention specific alternatives or when not to use it, but the context is sufficient for typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_articleGet articleARead-onlyIdempotentInspect
Fetch the full record for an article by slug, including body_text + audio_url.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety traits. The description adds that the record includes body_text and audio_url, which is useful return-content context beyond the annotations, but does not disclose any additional behavioral traits like error handling or rate limits. This aligns with the 'annotations present' baseline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that is immediately clear and front-loaded. Every word adds value, with no filler or redundant phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 parameter) and the presence of annotations covering safety, the description is largely complete. It mentions the key return fields (body_text + audio_url) despite no output schema. It does not describe error behavior or edge cases, but for a straightforward fetch tool, this is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It only mentions 'by slug', which essentially repeats the parameter name without adding meaning (e.g., format, example, or what a slug is). With no other context, the description fails to enrich the parameter beyond its name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Fetch' and identifies the resource ('article') and the key identifier ('by slug'). It also lists key fields returned ('body_text + audio_url'), which clearly distinguishes it from sibling tools like search_articles (which searches) and get_audio_url (which returns only a URL).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies use when you have a slug and need the full article record. No explicit exclusions or alternatives are named, but the context is unambiguous. A score of 4 is appropriate because it provides clear context without explicit when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_audio_urlGet audio URLARead-onlyIdempotentInspect
Resolve the playable audio URL for an article. Returns a stitched-with-ad URL on free tier or the bare audio for plus/pro.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnly, idempotent, and non-destructive hints. The description adds tier-dependent output behavior (stitched-with-ad vs bare audio), which is valuable and not derivable from annotations or schema. This exceeds the baseline expectation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, both informative and free of redundancy. The main action is front-loaded, and the second sentence adds a meaningful nuance about tiers. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter resolver with robust annotations, the description covers the core purpose, the input implied by 'article', and the output type (URL). No output schema exists, so the return description suffices. Edge cases are not necessary at this complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has only 'slug' with no description, and schema coverage is 0%. The description clarifies that the slug refers to an article, but does not explain the slug format or how to obtain it. It offers partial compensation for a simple parameter but not complete semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb 'Resolve' and a specific resource 'playable audio URL for an article'. It distinguishes itself from siblings like get_article by focusing on audio URL resolution. The tier-dependent return detail further anchors its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it: 'for an article' indicates it pairs with an article identifier (slug). It doesn't explicitly name alternatives or exclusion criteria, but the context is clear. Lacks explicit 'use this instead of...' guidance, so not a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_vertical_briefingGet per-vertical premium briefingARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| vertical | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal readOnly, openWorld, idempotent, and non-destructive. The description goes further by disclosing the payment requirement, the x402 challenge on first call, the need to sign and retry, and the audio output format — behavioral details not present in annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four dense sentences with no filler. The first sentence states the core function, followed by payment, validation, and authentication flow — each sentence serves a distinct purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the description explains what is returned (audio briefing), the query window (last 24h), the vertical constraint, the auth challenge, and the payment method. This is complete given the tool's complexity and rich annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description fully compensates by listing all 7 allowed vertical values (tech, finance, news, science, health, young_moms, yoga) and adding the canonical-bucket constraint. This directly aids parameter selection beyond the raw enum in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches a 'stitched audio briefing' of the top-25 trending articles for a single vertical over the last 24 hours. This specific verb+resource+scope distinguishes it from siblings like get_vertical_landscape and digest.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: it is premium (USDC on Base via x402), the vertical must be one of 7 canonical buckets, and the first call without X-Payment triggers a challenge-retry flow. However, it does not explicitly name alternatives or state when not to use this tool relative to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_subscriptionsList active subscriptionsARead-onlyIdempotentInspect
Return the listener feed(s) this agent has minted on the human's behalf.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds context beyond this by specifying that the returned feeds are those the agent minted on the human's behalf, clarifying the exact scope of the data. This is useful behavioral information not present in the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded with the verb 'Return' and directly states the resource. There is zero waste or repetition of the title or annotations. It is as concise as possible while still providing meaningful context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple, read-only list operation with no parameters, no output schema, and strong safety annotations. The description fully explains what the tool returns and the specific scope, making it complete for the tool's complexity. There are no gaps in information needed for an agent to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so there are no parameter descriptions to add. As per the baseline for 0-parameter tools, this scores a 4. The description does not need to discuss parameters because there are none.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: it returns listener feed(s) that the agent has minted on the human's behalf. The verb 'Return' is synonymous with 'list' and the resource is specific, distinguishing it from sibling tools like list_podcasts. However, the phrase 'listener feed(s)' is somewhat jargon-heavy, slightly reducing clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives. It does not mention exclusions, prerequisites, or compare with sibling tools such as get_my_private_feed or subscribe_topic. The usage is only implied by the tool name and title, not explained.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_articlesSearch Storyflo articlesARead-onlyIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Search query | |
| vertical | No | ||
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds behavioral value by listing the exact return fields (slug, title, publisher, vertical, snippet, audio_url, listen_seconds) and explaining the vertical scoping behavior, which goes beyond the annotations. However, it does not mention edge cases like empty queries or pagination behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary purpose, and every sentence adds value. It efficiently covers the resource, return fields, and vertical scoping without unnecessary fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with 3 optional parameters and no output schema, the description is reasonably complete. It specifies the return fields, and the schema provides constraints for limit and query. It does not explain sorting or empty-query behavior, but given the annotations and schema, the context is sufficiently covered for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, with only 'query' having a schema description. The description compensates for 'vertical' by listing allowed values, but 'limit' is not mentioned in either the schema description or the tool description. The parameter semantics are partially clarified, but not fully compensated for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb ('Search') and resource ('Storyflo's article corpus'), and lists the return fields, making the purpose unambiguous. It does not explicitly name sibling tools like search_declassified, but the scope is clear enough to differentiate from other search tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides usage guidance for the vertical parameter ('Use vertical to scope') but does not mention when to use this tool versus alternatives such as search_declassified or get_article. The usage context is implied rather than explicitly stated, and there are no exclusion criteria or alternative tool references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
subscribe_topicSubscribe to topic feedBIdempotentInspect
Update the human's listener feed to the given verticals. Returns a podcast feed URL the listener can paste into Spotify, Apple Podcasts, etc.
| Name | Required | Description | Default |
|---|---|---|---|
| verticals | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool is a mutation ('Update') which aligns with readOnlyHint=false. The idempotentHint=true is consistent with 'returns a podcast feed URL'. No additional behavioral traits beyond annotations are provided, such as authentication needs or side effects on existing subscriptions. The description adds the return value context, meriting a 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences that each contribute value: the first states the action and target, the second explains the output and usage. No filler or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool (one parameter, no output schema), the description covers the basic purpose and return value. However, it lacks details on whether subscriptions are replaced or appended, and does not reference related tools like list_subscriptions for managing subscriptions. Completeness is adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must clarify parameter meaning. It mentions 'to the given verticals' but does not explain how the array is processed (e.g., replaces or appends), nor does it describe the enumerated values beyond their names. This leaves ambiguity about the parameter's semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (update the listener feed) and the resource (human's listener feed), and specifies the return type (podcast feed URL). It distinguishes itself from sibling tools like get_article or search_articles by focusing on subscription. However, it could more explicitly differentiate from similar tools like list_subscriptions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide guidance on when to use this tool versus alternatives, nor does it mention prerequisites or scenarios where it should not be used. It only states what it does, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
7 tool updates
v1.0.0- First observed
digest - First observed
get_article - First observed
get_audio_url - First observed
get_vertical_briefing - First observed
list_subscriptions - First observed
search_articles - First observed
subscribe_topic
TDQS
Scored across 7 tools
Each tool has a clearly distinct purpose: digest aggregates, get_article fetches full record, get_audio_url resolves audio, get_vertical_briefing fetches audio briefing, list_subscriptions returns feeds, search_articles searches, subscribe_topic updates feeds. No overlapping functionality.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., 'digest', 'get_article', 'search_articles', 'subscribe_topic'), making them predictable and easy to distinguish.
With 7 tools, the server is well-scoped for its purpose of news article retrieval, audio briefings, and subscription management. Each tool serves a necessary function without redundancy.
Core workflows are covered: searching, fetching articles and audio, subscribing to verticals, and getting briefings. Minor gaps exist: no unsubscribe tool and the digest tool lacks explicit vertical selection, but agents can work around these limitations.
Maintenance
Related MCP Connectors
Dive into the latest and greatest from the tech world with our Hacker News MCP server.
Publish, search, and promote time-sensitive news and messages through a public remote MCP server.
Prediction-market news, $0.01/query. Register and buy inside this MCP session — free testnet funds.
Pay-per-call DeFi and macro intel for AI agents. x402 USDC tools via streamable HTTP /api/mcp.
Related MCP Servers
- AlicenseAqualityDmaintenanceOne click installation & Configuration,access to OpenAI's websearch functionality through the Model Context Protocol。194MIT
- AlicenseNot gradedqualityAmaintenanceA unified Model Context Protocol server that aggregates multiple MCP servers into one, allowing AI assistants like Claude Desktop, Cursor, and Cherry Studio to connect to a single server instead of managing multiple instances.1,652 npm514Apache 2.0
- AlicenseAqualityDmaintenanceMCP server to search 4,800+ MCP servers, AI agents, CLI tools and agent skills from the A2ASearch directory. Ask Claude: "Find MCP servers for database access".384 npm21MIT
- AlicenseAqualityDmaintenanceEnables LLMs to search, fetch, and manage arXiv research papers across various categories. It allows users to browse recent publications, query specific metadata, and retrieve full abstracts through a local database.5MIT