Skip to main content
Glama
alisen39
by alisen39

🔥 WhatsHot · 什么火了

一个工具,看遍全网热榜。

微博、知乎、抖音、B 站、GitHub、财联社、周大福…… 把 400+ 个网站的热搜、实时快讯和金价整理成同一种格式,随取随用。

在线体验 · 三分钟上手 · 支持哪些网站 · 常见问题 · 开发者文档

License Python Sources

基于本项目构建的网页版 whatshot.top

为什么做这个

热点散落在几十个 App 和网站里:微博看热搜,知乎看讨论,B 站看视频,财联社盯快讯, 金店官网查金价……每个都要单独打开,格式也各不相同。

WhatsHot 把它们收拢到一处。每个来源都会变成结构相同的列表,包含标题、链接、热度和时间。 你可以在终端里直接看,用 RSS 阅读器订阅,交给 AI 助手分析,也可以接进自己的产品。

只想看看热榜,不想安装?直接打开 whatshot.top,网页版基于本项目构建。

Related MCP server: TrendRadar

你可以用它来

场景

怎么做

📰

每天花一分钟扫一遍全网热点

终端里输入 whatshot weibo

📡

用 RSS 阅读器订阅任意榜单

榜单地址后加 ?rss=true

🤖

让 AI 帮你查热点、追事件、看趋势

配合 whatshot-mcp 接入 AI 助手

💰

对比各家金店今天的金价

周大福、周生生、老凤祥、六福等金价榜

🧩

做热点看板、群聊机器人、每日简报

调用 JSON 接口

🕰️

回看某个话题何时上榜、热了多久

开启定时采集,保存历史

三分钟上手

1. 安装 uv(Python 包管理工具,会自动准备 Python 3.12+)

# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows(PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

2. 下载项目

git clone https://github.com/alisen39/whatshot.git
cd whatshot
uv sync

3. 看一眼微博热搜

uv run whatshot weibo --limit 5 -f plain

输出类似(示例):

1. 某地出现罕见天象
2. 新款手机今日开售
3. 周末全国大范围降温
4. 某综艺官宣新嘉宾
5. 高校食堂推出新菜品

换成别的网站,只需要换一个名字:

uv run whatshot zhihu -f plain        # 知乎热榜
uv run whatshot bilibili -f plain     # B 站全站排行
uv run whatshot cls -f plain          # 财联社电报
uv run whatshot --help                # 查看全部网站

想要别的格式,把 -f plain 换成 json、markdown 或 csv。

4. 启动接口服务(可选)

uv run python -m whats_hot_api

然后在浏览器里打开:

地址

内容

http://127.0.0.1:6688/weibo/hot

微博热搜(JSON)

http://127.0.0.1:6688/weibo/hot?rss=true

同一个榜单的 RSS 订阅地址

http://127.0.0.1:6688/weibo

微博有哪些榜单可选

http://127.0.0.1:6688/all

全部网站列表

把 RSS 地址填进 Inoreader、Feedly、NetNewsWire、Folo 等阅读器,就能像订阅公众号一样订阅热榜。 在服务器上部署时,把 127.0.0.1 换成服务器地址即可。

支持哪些网站

目前收录 400+ 个网站、2000+ 个榜单,分为热榜、快讯、金价三类。下面只列一部分:

类别

代表来源

综合热搜

微博、知乎、百度、抖音、快手、今日头条、百度贴吧、豆瓣、虎扑、Google Trends

视频与音乐

哔哩哔哩、AcFun、腾讯视频、爱奇艺、猫眼电影、网易云音乐、QQ 音乐、YouTube、TikTok、Spotify

新闻

澎湃新闻、新华网、人民网、央视网、腾讯新闻、网易新闻、联合早报、BBC、Reuters、纽约时报

科技与开发者

36氪、虎嗅、少数派、IT之家、V2EX、稀土掘金、GitHub、Hacker News、Product Hunt、Stack Overflow

AI 与科研

OpenAI、Anthropic、Google DeepMind、Hugging Face、arXiv、Nature、Science

财经快讯

财联社、华尔街见闻、金十数据、东方财富、同花顺、第一财经、雪球

游戏与 ACG

Steam、NGA、米游社、原神、崩坏:星穹铁道、英雄联盟、游研社

生活与阅读

什么值得买、微信读书、豆瓣读书、喜马拉雅、懂球帝、中央气象台、历史上的今天

金价

周大福、周生生、老凤祥、六福珠宝、中国黄金、菜百首饰、周六福

完整清单:运行 uv run whatshot --help,或启动服务后访问 /all。

更多用法

接入 AI 助手

whatshot-mcp 是配套的 MCP 服务。接入 Claude、 Cursor 等支持 MCP 的 AI 工具后,可以直接问它“今天各平台都在讨论什么”“这件事最早在哪儿上的榜”。 它既可以连接你自己运行的 WhatsHot,也可以连接 WhatsHot 托管服务。

定时采集与历史数据

默认只返回“此刻”的榜单。如果想知道某个话题什么时候上榜、热了多久,可以启动后台采集服务, 按你设定的频率保存到本地数据库,之后再按关键词搜索、看趋势。配置方法见 定时采集与历史数据。

常见问题

需要注册账号或申请 API Key 吗? 不需要。数据来自各网站公开的页面和接口,直接运行即可。

一定要装 Redis 或数据库吗? 不需要。没有 Redis 时自动只用内存缓存;只有开启历史采集时才会用到本地 DuckDB 文件,无需单独安装。

数据多久更新一次? 每次请求时实时抓取,并缓存一段时间避免频繁访问:热榜默认 30 分钟,快讯默认 5 分钟。 需要最新数据时,在地址后加 ?cache=false,或在命令行加 --cache refresh。

海外网站抓不到? GitHub、纽约时报等部分海外来源在国内网络需要代理,可以在 .env 里用 ROUTE_PROXY 为指定域名配置代理, 见 HTTP API 与配置。

某个网站突然不能用了? 网站改版很常见。欢迎提交 Issue 告诉我们,或者直接提 PR 修复。

数据可以商用吗? 代码使用 MIT 许可,可以自由使用。抓取到的内容版权归各来源网站所有,请遵守对方的服务条款, 并合理控制请求频率。

开发者文档

想新增一个网站?通常只需要在 whats_hot_api/routes/ 下加一个文件,见 开发与扩展。

License

MIT。第三方代码授权说明见 THIRD_PARTY_NOTICES.md。

Available Tools

7 tools
fetch_currentB
Read-onlyIdempotent

Fetch a current board. This may access the upstream website but never persists a history capture.

NameRequiredDescriptionDefault
siteYes
limitNo
paramsNo
path_typeNohot

Output Schema

NameRequiredDescription
kindYes
siteYes
typeYes
itemsYes
titleYes
boardKeyYes
fromCacheYes
observedAtYes
updateTimeYes

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false. The description adds meaningful behavioral context beyond annotations: it explicitly states the tool may access the upstream website (external network dependency) and never persists a history capture (persistence behavior). This is valuable transparency about side effects and network behavior not covered by 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no fluff. The first sentence states the action; the second adds the key behavioral caveat about upstream access and non-persistence. Every word earns its place, though it could name alternatives to siblings for a more complete picture.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description doesn't need to explain return values. However, 4 parameters with 0% schema description coverage means parameter semantics are entirely undocumented. The tool touches an external website with network implications, and while the constraints are clear (read-only, non-persisting), the parameter meanings and usage patterns are not explained. Adequate for a fetch operation but leaves parameter understanding to inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description does not explain any parameters. The description contributes no parameter-level detail. However, there is a rich output schema present, which reduces the burden on parameter documentation somewhat. The schema itself provides names (site, limit, params, path_type) but no semantic meaning, leaving the agent to guess at what 'path_type' or 'params' control.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb+resource: 'Fetch a current board.' It distinguishes from sibling tools by emphasizing 'current' (versus history-oriented tools like query_history, search_history, get_trend_series). However, 'board' is a domain-specific term not otherwise defined, and it doesn't explicitly name alternatives. The purpose is clear but somewhat generic without deeper context about what a 'board' represents.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context (fetching current data rather than history) by contrasting with the upstream website, which helps distinguish from the history-based siblings. It notes 'may access the upstream website but never persists a history capture,' which clarifies it's a live-fetch operation. However, it doesn't provide explicit when-to-use vs when-not-to-use guidance or name specific alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_source_schemaB
Read-onlyIdempotent

Describe one source, its boards, and accepted parameters.

NameRequiredDescriptionDefault
siteYes

Output Schema

NameRequiredDescription
sourceYes

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the safe read-only profile is established. The description adds that it reveals boards and accepted parameters but doesn't disclose whether the site must be registered/valid first or what happens for an unknown site identifier.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, compact sentence that front-loads the core function. It's efficient with no wasted words, though it could arguably add a brief note about the site parameter for no length penalty.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema, which relieves the description of explaining return values. With one required parameter, annotations, and an output schema, the description is borderline adequate. The main gap is the undocumented 'site' parameter meaning, which leaves the description slightly incomplete for a tool that exists to explain schemas.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With schema description coverage at 0% and 1 required parameter, the description provides zero guidance on what the 'site' parameter should contain (e.g., an ID, a name, a label). The description mentions 'a source' but doesn't clarify how 'site' maps to a source or where to obtain valid site values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb (Describe) with a clear resource scope (one source, its boards, and accepted parameters). It distinguishes itself somewhat from sibling list_sources by focusing on a single source's detailed schema rather than enumerating sources, though it doesn't explicitly name the sibling or contrast with it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description conveys this is for exploring a specific source's structure (boards and parameters), which implies it should be used when you need details about one source rather than listing all sources. However, it doesn't explicitly state when to use this vs list_sources, or mention the required site parameter context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_storage_statsA
Read-onlyIdempotent

Return local history storage counts and freshness.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
enabledNo
capturesNo
goldRowsNo
hotlistRowsNo
newsflashItemsNo
latestObservedAtNo

TDQS

A3.5/5.0
Behavior3/5

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 fully covered by annotations. The description adds the 'local history storage' scope context, which is useful. However, it doesn't clarify what 'freshness' measures or how it relates to source data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, efficient sentence with zero wasted words. Perfectly sized for a zero-parameter read-only stats tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Has an output schema, so return values are documented elsewhere. Zero parameters mean no param ambiguity. The tool is simple enough that a one-sentence description with rich annotations (read-only, idempotent, non-destructive) is nearly complete. Slight deduction for not hinting at what 'freshness' means or when it's useful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters, and with no params, the baseline is 4. The description appropriately explains what is returned (storage counts and freshness) without any parameter burden to carry. Nothing is missing here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource ('Return local history storage counts and freshness'), clearly indicating what data is retrieved. It doesn't explicitly differentiate itself from siblings like list_sources or get_source_schema, but the subject matter (storage stats) is distinct enough to be understood.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives. No mention of what 'storage counts' refers to or when checking storage vs querying history would be appropriate. Sibling tools like list_sources and query_history exist, but no comparison is offered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_trend_seriesC
Read-onlyIdempotent

Get rank and hot-value trends for one historical item.

NameRequiredDescriptionDefault
siteYes
sinceNo
untilNo
bucketNo1h
item_idYes
board_keyYes

Output Schema

NameRequiredDescription
siteYes
bucketYes
itemIdYes
seriesYes
boardKeyYes

TDQS

C2.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds minimal behavioral context—'rank and hot-value trends' hints at the return shape but not at time-bucket granularity or how since/until defaults behave. There's no contradiction, but the description doesn't substantially enrich beyond 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single efficient sentence that front-loads the core purpose. It's appropriately concise with no filler. However, it's so terse that it sacrifices informative content—a slightly longer description that covers time-range parameters would be more valuable without risking verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 6 parameters with 0% schema coverage, but an output schema exists, which somewhat offsets the need to explain return values. For a trend-series tool with time-range and bucketing parameters, the description omits critical information about how since/until/bucket shape the data. The single-sentence coverage of 'rank and hot-value trends for one historical item' is plausible but leaves the time-domain semantics unexplained, making this marginally adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the full burden of parameter meaning. It mentions 'rank and hot-value trends' and a single historical item (implying site, board_key, item_id), but it fails to explain the time-related parameters (site, since, until, bucket). The 'bucket' enum ('10m','1h','6h','1d') is structural but its effect on the returned series isn't described. The description only loosely covers the three required params and none of the optional ones.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource ('Get rank and hot-value trends') for a single historical item. It's reasonably clear, but 'for one historical item' is vague—it doesn't clarify whether 'item' refers to a product, a search term, or another entity. The description doesn't explicitly differentiate from siblings like query_history or search_history, though 'trends for one item' hints at a narrow single-item scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool vs alternatives. Siblings include query_history and search_history, which likely relate to the same data domain, yet no distinguishing phrase or exclusion is given. The description implies a use case (viewing historical trend series) but provides no context on prerequisites, such as needing a board_key and item_id obtained from another tool first.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_sourcesA
Read-onlyIdempotent

List all discoverable WhatsHot sources without network access.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
sourcesYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds 'without network access' as behavioral context beyond the annotations, which is genuinely useful. But the annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is well covered. The description contributes the offline/local nature of the operation but little else.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that states the purpose and the key behavioral constraint (no network access). Zero wasted words; every element earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a simple zero-parameter tool that lists sources. Given the rich annotations (read-only, idempotent, non-destructive), an output schema exists for return values, and there are no parameters to document, the description covers what's needed. It could perhaps mention what 'WhatsHot sources' consists of or how many there might be, but the description is adequate for a simple list operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0 parameters, the schema provides no parameter information, so the baseline of 4 applies. The description correctly indicates there's nothing to configure - it's a simple listing operation. No parameter documentation burden exists.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description has a clear verb+resource ('List all discoverable WhatsHot sources'). It distinguishes from siblings by explicitly noting 'without network access', which separates it from tools like fetch_current or get_trend_series that likely make network requests. It doesn't strongly differentiate from get_source_schema but the scope is clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'without network access' implies this is a safe, offline listing operation, which provides some usage context. However, there's no explicit statement of when to use this vs. alternatives like get_source_schema, nor any exclusions or prerequisites mentioned. It's implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

query_historyC
Read-onlyIdempotent

Query persisted historical items with cursor pagination.

NameRequiredDescriptionDefault
kindNo
siteNo
limitNo
sinceNo
untilNo
cursorNo
board_keyNo

Output Schema

NameRequiredDescription
itemsYes
truncatedYes
nextCursorNo

TDQS

C2.7/5.0
Behavior3/5

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 agent knows this is a safe read operation. The description adds 'persisted historical items' and 'cursor pagination' context, which is useful. However, it does not describe the return format, how cursors are obtained (e.g., from previous responses), or the meaning of the output. With annotations covering the safety profile, a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single-sentence description is concise and avoids verbose filler. However, it is brief to the point of under-specification rather than tight-but-complete, warranting a minor deduction.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 7 parameters with 0% schema description coverage, the tool needs substantial documentation to be usable. The description fails to explain parameter semantics, filtering behavior, cursor usage mechanics, or how this differs from sibling search_history. Despite having an output schema, the 0% parameter coverage and sibling ambiguity leave significant gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries full burden for parameter meaning, but it adds nothing about the 7 parameters. The mention of 'kind' and 'cursor' exists in the schema but the description never explains their purpose, valid values, or interactions. The since/until date filters and board_key are entirely undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Query persisted historical items with cursor pagination.' This gives a clear verb+resource (query historical items) and mentions pagination via cursor. However, it does not specify what 'historical items' are or how it differs from sibling tool search_history, which sounds like it does something similar.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus search_history, fetch_current, or other siblings. The presence of sibling search_history strongly suggests a similar purpose that should be disambiguated, but no distinction is provided. Context around kind/site/board_key filtering is entirely absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_historyB
Read-onlyIdempotent

Search persisted titles, descriptions, and newsflash content. Returns attributable evidence, not free-form summaries.

NameRequiredDescriptionDefault
siteNo
limitNo
sinceNo
untilNo
cursorNo
keywordYes
board_keyNo

Output Schema

NameRequiredDescription
itemsYes
truncatedYes
nextCursorNo

TDQS

B3/5.0
Behavior4/5

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 safe read nature is established. The description adds value by noting the output contract — 'attributable evidence, not free-form summaries' — which tells the agent what kind of result to expect and that it should not treat results as synthesized summaries. This is meaningful behavioral context beyond 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one short line, front-loaded with the core action and ends with a valuable contrastive note. Every word earns its place. It's appropriately concise for a search tool, though it could be slightly more informative without becoming bloated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema and 7 parameters with rich structural metadata (date-time formats, cursor for pagination, nullable fields). The description covers the search-scope and output-nature aspects but remains thin given the tool's complexity — pagination semantics (cursor), date filtering (since/until), and site/board filtering are entirely unexplained. The output schema helps but the description still under-serves the filtering and pagination dimensions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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 for explaining the 7 parameters. It fails to do so — none of keyword, site, limit, since, until, cursor, or board_key are explained in the description. The only hint is that the tool searches across 'titles, descriptions, and newsflash content' and that keyword is required. With 7 parameters at 0% coverage, this is a notable gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the verb+resource ('Search persisted titles, descriptions, and newsflash content') and adds the distinctive 'attributable evidence, not free-form summaries' qualifier, which differentiates search_history from query_history. However, it's relatively terse and doesn't fully clarify how this differs from the closely named sibling 'query_history' — the differentiation is implied rather than explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus its siblings. Given siblings like 'query_history' and 'fetch_current', there is no statement about what scenarios call for search_history specifically, nor exclusions. The agent receives no help choosing among the closely related search/query tools.

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.

  1. 7 tool updatesv0.1.0
    • First observedfetch_current
    • First observedget_source_schema
    • First observedget_storage_stats
    • First observedget_trend_series
    • First observedlist_sources
    • First observedquery_history
    • First observedsearch_history

TDQS

B3.4/5.0

Scored across 7 tools

Disambiguation4/5

Each tool targets a distinct concern: source discovery, schema introspection, live fetching, history querying, searching, trend analysis, and storage stats. The main potential confusion is between query_history and search_history, but the descriptions make clear that querying returns persisted items with pagination while searching targets content and returns attributable evidence, which differentiates them sufficiently.

Naming Consistency4/5

Names mostly follow a verb_noun pattern with clear action prefixes (list_, get_, fetch_, query_, search_, get_). There's a minor deviation with get_source_schema vs fetch_current where 'fetch' and 'get' use different verbs for similar acquisition actions, but this is arguably intentional given that fetch_current accesses the network while get_source_schema is local.

Tool Count5/5

Seven tools is within the ideal 3-15 range and each tool appears to earn its place by covering a distinct dimension of the domain: discovery, introspection, live fetch, history retrieval, search, analytics, and storage management. No redundant or filler tools.

Completeness4/5

The surface covers the full lifecycle: source discovery, schema understanding, live fetching, persistence querying, search, trend analytics, and storage management. Minor gaps exist—such as the absence of explicit history write/capture control (though fetch_current implies an upstream capture mechanism) and possibly pagination/sampling controls for trend series—but no obvious dead ends that would cause agent failures.

Maintenance

ActivityActive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A modern multi-platform hot news aggregation server based on FastMCP that supports real-time hot topics data collection from 13+ major platforms including Zhihu, Weibo, Baidu, and Bilibili.
    3
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    An aggregator for real-time hot topics and news from major social and financial platforms like Zhihu, Bilibili, and Wall Street News. It features an MCP server that allows AI models to fetch and analyze trending information for automated insights.
    17
    GPL 3.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    A Python-based MCP server that aggregates real-time trending topics and news from over 30 sources including social media, technology, and finance platforms. It enables AI applications to retrieve the latest hot searches and news from major services like Weibo, Baidu, and IT Home through a unified interface.
    33
    MIT