Skip to main content
Glama

The fastest 30-second deployment hot topic assistant — Say goodbye to mindless scrolling and only see the news you truly care about.

GitHub Stars GitHub Forks License Version MCP RSS AI Translation

WeCom Notification WeChat Notification Telegram Notification DingTalk Notification Feishu Notification Email Notification ntfy Notification Bark Notification Slack Notification Generic Webhook

GitHub Actions GitHub Pages Docker MCP Support AI Analysis Push AI Smart Filtering

中文 | English

This project aims to be lightweight and easy to deploy.

📑 Quick Navigation

💡 Click the links below to jump to the corresponding section. For deployment, we recommend starting with "Quick Start". For detailed customization, see "Configuration Details".

  • Thanks to all the viewers who starred the project. Forking is what you desire, starring is what I desire; having both is the best support for the open-source spirit. 😍

Acknowledgments to Early Supporters

💡 Special Note:

  1. About the list: The table below records supporters from the project's early stages (Angel Round). Due to the tedious nature of manual tracking in the early days, omissions or incomplete records are inevitable. If you were missed, it was truly unintentional, and I hope for your understanding.

  2. Future Planning: To focus limited energy back on code and feature iteration, this list will no longer be manually maintained starting today.

Regardless of whether your name is on the list, every bit of your support is the cornerstone that has allowed TrendRadar to reach where it is today. 🙏

Infrastructure Support

Thanks to GitHub for providing free infrastructure, which is the biggest prerequisite for this project to be easily run via one-click fork.

Data Support

This project uses the API from the newsnow project to obtain multi-platform data. Special thanks to the author for providing the service.

After contacting the author, they indicated there is no need to worry about server pressure, but this is based on their kindness and trust. Please:

  • Visit the newsnow project and star it to show support.

  • When deploying via Docker, please control the push frequency reasonably and do not over-exploit.

Promotion Assistance

Thanks to the following platforms and individuals for their recommendations (in chronological order):

Audience Support

Thanks to the friends who have provided financial support. Your generosity has turned into snacks and drinks by the keyboard, accompanying every iteration of the project.

Regarding the return of "One-Yuan Likes": With the release of v5.0.0, the project has entered a new stage. To support the growing API costs and caffeine consumption, the "One-Yuan Like" channel is now reopened. Every bit of your heart will be converted into Tokens and motivation in the world of code. 🚀 Go to Support

Supporter

Amount

Date

Note

D*5

1.8 * 3

2025.11.24

*Gui

1

2025.11.17

*Chao

10

2025.11.17

R*w

10

2025.11.17

This agent is awesome, brother

J*o

1

2025.11.17

Thanks for open source, wish you success

*Chen

8.88

2025.11.16

Great project, studying it

*Hai

1

2025.11.15

*De

1.99

2025.11.15

*Shu

8.8

2025.11.14

Thanks for open source, great project, supporting it

M*e

10

2025.11.14

Open source is not easy, thanks for your hard work

**Ke

1

2025.11.14

*Yun

88

2025.11.13

Good project, thanks for open source

*W

6

2025.11.13

*Kai

1

2025.11.13

Dui*.

1

2025.11.13

Thanks for your TrendRadar

s*y

1

2025.11.13

**Xiang

10

2025.11.13

Good project, regret not finding it sooner, thanks for open source!

*Wei

9.9

2025.11.13

TrendRadar is awesome, coffee for the teacher~

h*p

5

2025.11.12

Support Chinese open source power, keep it up!

c*r

6

2025.11.12

a*n

5

2025.11.12

.*c

1

2025.11.12

Thanks for sharing open source

*Ji

1

2025.11.11

*Zhu

1

2025.11.10

*Le

10

2025.11.09

*Jie

5

2025.11.08

*Dian

8.80

2025.11.07

Development is not easy, supporting it.

Q*Q

6.66

2025.11.07

Thanks for open source!

C*e

1

2025.11.05

Peter Fan

20

2025.10.29

M*n

1

2025.10.27

Thanks for open source

*Xu

8.88

2025.10.23

Teacher, I'm a newbie, haven't set it up after a few days, seeking advice

Eason

1

2025.10.22

Haven't figured it out yet, but you are doing a good thing

P*n

1

2025.10.20

*Jie

1

2025.10.19

*Xu

1

2025.10.18

*Zhi

1

2025.10.17

*😀

10

2025.10.16

Like

**Jie

10

2025.10.16

*Xiao

10

2025.10.16

*Ji

5

2025.10.14

TrendRadar

J*d

1

2025.10.14

Thanks for your tool, it's fun...

*H

1

2025.10.14

Na*O

10

2025.10.13

*Yuan

1

2025.10.13

P*g

6

2025.10.13

Ocean

20

2025.10.12

...It's really great!!! Even a newbie can use it directly...

**Pei

5.2

2025.10.2

github-yzyf1312: Long live open source

*Chun

3

2025.9.23

Keep it up, very good

*🍍

10

2025.9.21

E*f

1

2025.9.20

*Ji

1

2025.9.20

z*u

2

2025.9.19

**Hao

5

2025.9.17

*Hao

1

2025.9.15

T*T

2

2025.9.15

Like

*Jia

10

2025.9.10

*X

1.11

2025.9.3

*Biao

20

2025.8.31

Thanks from Lao Tong

*Xia

1

2025.8.30

2*D

88

2025.8.13 PM

2*D

1

2025.8.13 AM

S*o

1

2025.8.05

Supporting it

*Xia

10

2025.8.04

x*x

2

2025.8.03

trendRadar good project, like

*Yuan

1

2025.8.01

*Xie

5

2025.8.01

*Meng

0.1

2025.7.3

Available Tools

27 tools
aggregate_newsA

跨平台新闻聚合 - 对相似新闻进行去重合并

将不同平台报道的同一事件合并为一条聚合新闻,显示跨平台覆盖情况和综合热度。

Args: date_range: 日期范围,不指定则查询今天 platforms: 平台ID列表,如 ['zhihu', 'weibo'],不指定则使用所有平台 similarity_threshold: 相似度阈值,0.3-1.0,默认0.7(越高越严格) limit: 返回聚合新闻数量,默认50 include_url: 是否包含URL链接,默认False

Returns: JSON格式的聚合结果,包含去重统计、聚合新闻列表和平台覆盖统计

Examples: - aggregate_news() - aggregate_news(similarity_threshold=0.8)

ParametersJSON Schema
NameRequiredDescriptionDefault
date_rangeNo
platformsNo
similarity_thresholdNo
limitNo
include_urlNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the tool's function (aggregation with deduplication), output format (JSON with specific fields), and default behaviors (e.g., date_range defaults to today). However, it doesn't mention potential side effects, rate limits, authentication needs, or error conditions, which are important for a tool with multiple parameters and no annotation coverage.

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 well-structured with clear sections (purpose, Args, Returns, Examples) and uses bullet points for readability. Every sentence adds value, though the Chinese-to-English translation creates minor redundancy in the purpose statement. It could be slightly more concise in the opening lines but remains efficient overall.

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?

Given the tool's complexity (5 parameters, aggregation logic) and the presence of an output schema (which handles return values), the description is quite complete. It explains the tool's purpose, all parameters, return format, and provides examples. The main gap is lack of behavioral warnings (since no annotations exist), but otherwise it covers most contextual needs adequately.

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

Parameters5/5

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

The description provides excellent parameter semantics beyond the input schema, which has 0% description coverage. Each parameter (date_range, platforms, similarity_threshold, limit, include_url) is clearly explained with meaning, format examples, defaults, and constraints (e.g., similarity_threshold range 0.3-1.0). This fully compensates for the schema's lack of descriptions and adds significant value.

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 clearly states the tool's purpose: '跨平台新闻聚合 - 对相似新闻进行去重合并' (cross-platform news aggregation - deduplicate and merge similar news). It specifies the verb (aggregate), resource (news), and scope (across platforms with deduplication). However, it doesn't explicitly differentiate from sibling tools like 'find_related_news' or 'search_news', which prevents a perfect score.

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 through examples and parameter explanations (e.g., '不指定则查询今天' - if not specified, query today), but lacks explicit guidance on when to use this tool versus alternatives like 'find_related_news' or 'get_latest_news'. It provides some operational context but no clear when/when-not statements or named alternatives.

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

analyze_data_insightsA

统一数据洞察分析工具 - 整合多种数据分析模式

Args: insight_type: 洞察类型,可选值: - "platform_compare": 平台对比分析(对比不同平台对话题的关注度) - "platform_activity": 平台活跃度统计(统计各平台发布频率和活跃时间) - "keyword_cooccur": 关键词共现分析(分析关键词同时出现的模式) topic: 话题关键词(可选,platform_compare模式适用) date_range: 【对象类型】 日期范围(可选) - 格式: {"start": "YYYY-MM-DD", "end": "YYYY-MM-DD"} - 示例: {"start": "2025-01-01", "end": "2025-01-07"} - 重要: 必须是对象格式,不能传递整数 min_frequency: 最小共现频次(keyword_cooccur模式),默认3 top_n: 返回TOP N结果(keyword_cooccur模式),默认20

Returns: JSON格式的数据洞察分析结果

Examples: - analyze_data_insights(insight_type="platform_compare", topic="人工智能") - analyze_data_insights(insight_type="platform_activity", date_range={"start": "2025-01-01", "end": "2025-01-07"}) - analyze_data_insights(insight_type="keyword_cooccur", min_frequency=5, top_n=15)

ParametersJSON Schema
NameRequiredDescriptionDefault
insight_typeNoplatform_compare
topicNo
date_rangeNo
min_frequencyNo
top_nNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the return format ('JSON format data insights analysis results') and provides parameter-specific constraints (e.g., date_range must be object format, not integer). However, it doesn't cover important behavioral aspects like whether this is a read-only operation, potential rate limits, authentication requirements, or what happens with invalid parameters.

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 well-structured with clear sections (Args, Returns, Examples) and uses bullet points effectively. While somewhat lengthy due to detailed parameter documentation, every sentence earns its place by adding necessary information. The front-loaded purpose statement is clear, though the Chinese title adds minor redundancy.

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?

Given the tool's complexity (5 parameters, 3 distinct analysis modes) and 0% schema description coverage, the description does an excellent job of explaining parameter usage and relationships. The presence of an output schema means the description doesn't need to detail return values. However, without annotations, it could better address behavioral aspects like error conditions or performance characteristics.

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

Parameters5/5

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

With 0% schema description coverage, the description fully compensates by providing comprehensive parameter documentation. It explains each parameter's purpose, lists valid values for insight_type with descriptions, specifies format requirements for date_range with examples, indicates which parameters apply to which modes, and provides default values. This adds substantial meaning beyond the bare schema.

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 clearly states this is a 'unified data insights analysis tool' that 'integrates multiple data analysis modes' and lists three specific insight types. It provides a clear verb ('analyze') and resource ('data insights'), though it doesn't explicitly differentiate from sibling tools like analyze_sentiment or analyze_topic_trend.

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 through parameter documentation (e.g., 'topic' is applicable to platform_compare mode, min_frequency and top_n are for keyword_cooccur mode). However, it doesn't explicitly state when to choose this tool over alternatives like analyze_topic_trend or compare_periods, nor does it provide exclusion criteria or prerequisites.

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

analyze_sentimentA

分析新闻的情感倾向和热度趋势

建议:使用自然语言日期时,先调用 resolve_date_range 获取精确日期范围。

Args: topic: 话题关键词(可选) platforms: 平台ID列表,如 ['zhihu', 'weibo'],不指定则使用所有平台 date_range: 日期范围,格式 {"start": "YYYY-MM-DD", "end": "YYYY-MM-DD"},默认今天 limit: 返回新闻数量,默认50,最大100(会对标题去重) sort_by_weight: 是否按热度权重排序,默认True include_url: 是否包含URL链接,默认False(节省token)

Returns: JSON格式的分析结果,包含情感分布、热度趋势和相关新闻

Examples: - analyze_sentiment(topic="AI", date_range={"start": "2025-01-01", "end": "2025-01-07"})

ParametersJSON Schema
NameRequiredDescriptionDefault
topicNo
platformsNo
date_rangeNo
limitNo
sort_by_weightNo
include_urlNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: it mentions title deduplication ('会对标题去重'), token-saving considerations ('节省token'), and default values for parameters. It also hints at output format ('JSON格式的分析结果'). However, it lacks details on rate limits, authentication needs, or error handling.

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 well-structured and front-loaded with the core purpose, followed by usage advice, parameter details, return information, and an example. Every sentence adds value without redundancy, and the bullet-point format for parameters enhances readability while maintaining brevity.

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

Completeness5/5

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

Given the tool's complexity (6 parameters, no annotations, but has output schema), the description is highly complete. It covers purpose, usage guidance, parameter semantics, and output format. The presence of an output schema means the description doesn't need to detail return values, and it adequately addresses the gaps left by the lack of annotations and low schema coverage.

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

Parameters5/5

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

The schema description coverage is 0%, so the description must fully compensate. It does so excellently by explaining all 6 parameters in detail: purpose, format, defaults, constraints (e.g., '最大100'), and practical implications (e.g., '节省token'). This adds significant meaning beyond the bare schema, making parameter usage clear.

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

Purpose5/5

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

The description clearly states the tool's purpose: '分析新闻的情感倾向和热度趋势' (analyze sentiment and heat trends of news). It specifies the resource (news) and the specific analysis performed (sentiment and heat trends), distinguishing it from siblings like 'analyze_topic_trend' or 'get_trending_topics' which might focus on different aspects of news analysis.

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

Usage Guidelines4/5

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

The description provides clear context for usage with the suggestion to call 'resolve_date_range' for natural language dates, which is helpful guidance. However, it does not explicitly state when to use this tool versus alternatives like 'analyze_topic_trend' or 'aggregate_news', leaving some ambiguity about sibling differentiation.

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

analyze_topic_trendA

统一话题趋势分析工具 - 整合多种趋势分析模式

建议:使用自然语言日期时,先调用 resolve_date_range 获取精确日期范围。

Args: topic: 话题关键词(必需) analysis_type: 分析类型 - "trend": 热度趋势分析(默认) - "lifecycle": 生命周期分析 - "viral": 异常热度检测 - "predict": 话题预测 date_range: 日期范围,格式 {"start": "YYYY-MM-DD", "end": "YYYY-MM-DD"},默认最近7天 granularity: 时间粒度,默认"day" spike_threshold: 热度突增倍数阈值(viral模式),默认3.0 time_window: 检测时间窗口小时数(viral模式),默认24 lookahead_hours: 预测未来小时数(predict模式),默认6 confidence_threshold: 置信度阈值(predict模式),默认0.7

Returns: JSON格式的趋势分析结果

Examples: - analyze_topic_trend(topic="AI", date_range={"start": "2025-01-01", "end": "2025-01-07"}) - analyze_topic_trend(topic="特斯拉", analysis_type="lifecycle")

ParametersJSON Schema
NameRequiredDescriptionDefault
topicYes
analysis_typeNotrend
date_rangeNo
granularityNoday
spike_thresholdNo
time_windowNo
lookahead_hoursNo
confidence_thresholdNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries full burden. It describes the tool's multi-mode behavior and mentions JSON output format, but lacks critical behavioral details: whether this is a read-only operation, computational cost, rate limits, authentication requirements, or what happens with invalid parameters. The description adds some behavioral context but leaves significant gaps for a tool with 8 parameters.

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 well-structured with clear sections (overview, advice, args, returns, examples) and uses bullet points effectively. While comprehensive, some sentences could be more concise (e.g., the opening line could be tighter). Overall, it's appropriately sized for an 8-parameter tool with multiple modes.

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?

Given the tool's complexity (8 parameters, multiple analysis modes, no annotations) and the presence of an output schema (which covers return values), the description is reasonably complete. It explains parameters thoroughly, provides usage guidance, and includes examples. The main gap is lack of behavioral transparency details that would be important for a multi-mode analysis tool.

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

Parameters5/5

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

With 0% schema description coverage, the description compensates excellently by providing detailed parameter semantics beyond the bare schema. It explains each parameter's purpose, lists analysis_type options with descriptions, specifies defaults, clarifies which parameters apply to which modes, and provides format examples. This adds substantial value beyond the minimal schema.

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 clearly states the tool performs 'topic trend analysis' with 'integrated trend analysis modes' and lists specific analysis types (trend, lifecycle, viral, predict). It distinguishes from siblings like 'get_trending_topics' by focusing on analysis rather than listing. However, it doesn't explicitly differentiate from 'analyze_data_insights' or 'compare_periods' which might have overlapping functionality.

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

Usage Guidelines4/5

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

The description provides explicit guidance to call 'resolve_date_range' first when using natural language dates, which is helpful context. It also implies usage through the analysis_type parameter options, suggesting when to use different modes. However, it doesn't explicitly state when NOT to use this tool or mention alternatives among siblings like 'analyze_data_insights'.

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

check_versionA

检查版本更新(同时检查 TrendRadar 和 MCP Server)

比较本地版本与 GitHub 远程版本,判断是否需要更新。

Args: proxy_url: 可选的代理URL,用于访问 GitHub(如 http://127.0.0.1:7890)

Returns: JSON格式的版本检查结果,包含两个组件的版本对比和是否需要更新

Examples: - check_version() - check_version(proxy_url="http://127.0.0.1:7890")

ParametersJSON Schema
NameRequiredDescriptionDefault
proxy_urlNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It explains the tool's behavior (compares versions, checks GitHub) and mentions network access (proxy support), but doesn't disclose important behavioral traits like rate limits, authentication requirements, error conditions, or what happens when GitHub is unreachable.

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 well-structured with clear sections (purpose, args, returns, examples). Every sentence earns its place - the first paragraph states the purpose, the Args section explains the parameter, Returns describes output, and Examples show usage. No wasted words.

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?

Given the tool's moderate complexity (version checking with network access) and the presence of an output schema (which handles return values), the description is quite complete. It covers purpose, parameter usage, and output format. The main gap is lack of behavioral details like error handling or performance characteristics.

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 schema has 0% description coverage for its single parameter, but the description fully compensates by explaining what 'proxy_url' does (access GitHub through a proxy) and providing an example format. Since there's only one parameter and the description covers it completely, this exceeds the baseline expectation.

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

Purpose5/5

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

The description clearly states the specific action ('检查版本更新' - check version updates) and resources involved (TrendRadar and MCP Server). It distinguishes this tool from all sibling tools which focus on news analysis, data processing, notifications, and system operations rather than version checking.

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

Usage Guidelines4/5

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

The description provides clear context for when to use this tool (to compare local vs. remote versions and determine if updates are needed). However, it doesn't explicitly state when NOT to use it or mention alternatives among the sibling tools, which all serve different purposes.

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

compare_periodsA

时期对比分析 - 比较两个时间段的新闻数据

对比不同时期的热点话题、平台活跃度、新闻数量等维度。

使用场景:

  • 对比本周和上周的热点变化

  • 分析某个话题在两个时期的热度差异

  • 查看各平台活跃度的周期性变化

Args: period1: 第一个时间段(基准期) - {"start": "YYYY-MM-DD", "end": "YYYY-MM-DD"}: 日期范围 - "today", "yesterday", "this_week", "last_week", "this_month", "last_month": 预设值 period2: 第二个时间段(对比期,格式同 period1) topic: 可选的话题关键词(聚焦特定话题的对比) compare_type: 对比类型 - "overview": 总体概览(默认)- 新闻数量、关键词变化、TOP新闻 - "topic_shift": 话题变化分析 - 上升话题、下降话题、新出现话题 - "platform_activity": 平台活跃度对比 - 各平台新闻数量变化 platforms: 平台过滤列表,如 ['zhihu', 'weibo'] top_n: 返回 TOP N 结果,默认10

Returns: JSON格式的对比分析结果,包含: - periods: 两个时期的日期范围 - compare_type: 对比类型 - overview/topic_shift/platform_comparison: 具体对比结果(根据类型)

Examples: - compare_periods(period1="last_week", period2="this_week") # 周环比 - compare_periods(period1="last_month", period2="this_month", compare_type="topic_shift") - compare_periods( period1={"start": "2025-01-01", "end": "2025-01-07"}, period2={"start": "2025-01-08", "end": "2025-01-14"}, topic="人工智能" )

ParametersJSON Schema
NameRequiredDescriptionDefault
period1Yes
period2Yes
topicNo
compare_typeNooverview
platformsNo
top_nNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does well by explaining the return format (JSON with specific structure) and providing multiple examples. However, it doesn't mention important behavioral aspects like whether this is a read-only operation, potential rate limits, authentication requirements, or what happens with invalid date ranges. The examples help but don't fully compensate for the lack of annotation coverage.

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 well-structured with clear sections (purpose, usage scenarios, args, returns, examples). It's appropriately sized for a tool with 6 parameters. While comprehensive, some sections could be more concise - the parameter explanations are thorough but slightly verbose. Every sentence adds value, and the information is front-loaded with the core purpose first.

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?

For a complex comparison tool with 6 parameters and no annotations, the description provides good completeness. It covers purpose, usage scenarios, detailed parameter semantics, return format, and examples. The presence of an output schema means the description doesn't need to fully document return values. However, it could better address behavioral aspects like error conditions or performance characteristics given the complexity of the analysis.

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

Parameters5/5

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

Given 0% schema description coverage, the description provides excellent parameter documentation. It explains all 6 parameters in detail: period1/period2 formats (date ranges or preset values), topic as optional keyword, compare_type with three specific options and defaults, platforms as filter list, and top_n with default. The description adds substantial meaning beyond what the bare schema provides, fully compensating for the schema coverage gap.

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

Purpose5/5

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

The description clearly states the tool's purpose: '时期对比分析 - 比较两个时间段的新闻数据' (Period comparison analysis - compare news data from two time periods). It specifies the verb 'compare' and the resource 'news data from two time periods', and distinguishes from siblings by focusing specifically on comparative analysis rather than single-period analysis like analyze_topic_trend or get_trending_topics.

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

Usage Guidelines4/5

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

The description provides clear usage scenarios under '使用场景' (Usage scenarios) with three specific examples: comparing weekly changes, analyzing topic heat differences, and examining platform activity periodic changes. However, it doesn't explicitly state when NOT to use this tool or name specific alternatives among the sibling tools for different types of analysis.

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

generate_summary_reportB

每日/每周摘要生成器 - 自动生成热点摘要报告

Args: report_type: 报告类型(daily/weekly) date_range: 【对象类型】 自定义日期范围(可选) - 格式: {"start": "YYYY-MM-DD", "end": "YYYY-MM-DD"} - 示例: {"start": "2025-01-01", "end": "2025-01-07"} - 重要: 必须是对象格式,不能传递整数

Returns: JSON格式的摘要报告,包含Markdown格式内容

ParametersJSON Schema
NameRequiredDescriptionDefault
report_typeNodaily
date_rangeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It mentions the tool generates reports and returns JSON with Markdown content, but doesn't disclose important behavioral traits like whether this is a read-only operation, if it requires specific permissions, potential rate limits, processing time, or what '热点摘要' (hotspot summary) specifically entails. The description adds minimal behavioral context beyond basic functionality.

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

Conciseness3/5

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

The description is appropriately sized but not optimally structured. The purpose statement is clear, but the parameter documentation is embedded in the description rather than separated, and the formatting with asterisks and colons is somewhat inconsistent. Every sentence adds value, but the organization could be more front-loaded with the core purpose.

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?

Given the tool has 2 parameters with 0% schema coverage but has an output schema, the description provides adequate parameter documentation but lacks context about the tool's behavioral characteristics. The output schema existence means the description doesn't need to detail return values, but for a report generation tool with no annotations, more information about what constitutes a '热点摘要' (hotspot summary) and when to use it would be beneficial.

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% schema description coverage, the description must compensate for the schema's lack of documentation. It provides detailed information about both parameters: report_type options (daily/weekly) and date_range format/constraints with examples. This adds significant semantic value beyond what the bare schema provides, though it doesn't explain the relationship between report_type and date_range or when date_range is required.

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 clearly states the tool's purpose as '自动生成热点摘要报告' (automatically generate hotspot summary reports) with '每日/每周' (daily/weekly) scope, which is a specific verb+resource combination. However, it doesn't explicitly distinguish this from sibling tools like 'analyze_topic_trend' or 'get_trending_topics', which might have overlapping functionality.

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 alternatives like 'analyze_topic_trend' or 'get_trending_topics'. It mentions the report_type parameter (daily/weekly) but doesn't explain the context for choosing between them or when this tool is appropriate versus other analysis tools in the sibling list.

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

get_channel_format_guideA

获取通知渠道的格式化策略指南

返回各渠道支持的 Markdown 特性、格式限制和最佳格式化提示词。 在调用 send_notification 之前使用此工具,可以了解目标渠道的格式要求, 从而生成最佳排版效果的消息内容。

各渠道格式差异概览:

  • 飞书:支持 粗体彩色文本、链接、--- 分割线

  • 钉钉:支持 ### 标题、粗体、> 引用、--- 分割线,不支持颜色

  • 企业微信:仅支持 粗体链接、> 引用,不支持标题和分割线

  • Telegram:自动转为 HTML,支持粗体/斜体/删除线/代码/链接/引用块

  • ntfy:支持标准 Markdown,不支持颜色

  • Bark:iOS 推送,仅支持粗体和链接,内容需精简

  • Slack:自动转为 mrkdwn,粗体删除线、<url|链接>

  • 邮件:自动转为完整 HTML 网页,支持标题/样式/分割线

  • 通用 Webhook:标准 Markdown 或自定义模板

Args: channel: 指定渠道 ID(可选),不指定返回所有渠道策略 可选值: feishu, dingtalk, wework, telegram, email, ntfy, bark, slack, generic_webhook

Returns: JSON格式的渠道格式化策略,包含支持特性、限制和格式化提示词

Examples: - get_channel_format_guide() # 获取所有渠道策略 - get_channel_format_guide(channel="feishu") # 获取飞书策略 - get_channel_format_guide(channel="telegram") # 获取 Telegram 策略

ParametersJSON Schema
NameRequiredDescriptionDefault
channelNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the tool's behavior: it returns formatting strategies for notification channels, supports an optional parameter to filter by channel, and provides detailed examples of channel-specific format differences. It doesn't mention rate limits, authentication needs, or error conditions, but covers the core operational behavior well.

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 well-structured and appropriately sized. It starts with the core purpose, immediately provides usage context, then details channel differences in a clear bulleted format, followed by parameter and return explanations with concrete examples. Every sentence adds value without redundancy.

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

Completeness5/5

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

Given the tool's moderate complexity (single optional parameter), no annotations, but with an output schema present, the description is complete. It explains what the tool does, when to use it, parameter behavior, return format, and provides practical examples. The output schema will handle return value details, so the description appropriately focuses on operational context.

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

Parameters5/5

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

The schema description coverage is 0%, so the description must fully compensate. It does this excellently: it explains that the 'channel' parameter is optional, specifies what happens when omitted (returns all channel strategies), lists all possible values with clear examples, and provides usage examples. This adds comprehensive meaning beyond the basic schema.

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

Purpose5/5

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

The description explicitly states the tool's purpose: '获取通知渠道的格式化策略指南' (Get notification channel formatting policy guide). It specifies the exact resource (notification channels) and action (get formatting strategies), clearly distinguishing it from sibling tools like send_notification or get_notification_channels by focusing on format requirements rather than sending messages or listing channels.

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use this tool: '在调用 send_notification 之前使用此工具' (Use this tool before calling send_notification). It clearly positions this as a preparatory step for understanding format requirements, distinguishing it from the actual notification-sending sibling tool.

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

get_current_configB

获取当前系统配置

Args: section: 配置节,可选值: - "all": 所有配置(默认) - "crawler": 爬虫配置 - "push": 推送配置 - "keywords": 关键词配置 - "weights": 权重配置

Returns: JSON格式的配置信息

ParametersJSON Schema
NameRequiredDescriptionDefault
sectionNoall

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states the tool returns JSON-formatted configuration information, which is helpful, but doesn't mention whether this is a read-only operation, what permissions might be required, whether it's cached or real-time data, or any rate limits. For a configuration retrieval tool with zero annotation coverage, this leaves significant behavioral questions unanswered.

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 well-structured with clear sections (Args, Returns) and uses bullet points effectively for the enum values. It's appropriately sized for a single-parameter tool with multiple options. The only minor improvement would be integrating the default value more seamlessly rather than listing it separately, but overall it's efficient and well-organized.

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?

Given the tool's moderate complexity (single parameter with multiple options), the presence of an output schema (which handles return value documentation), and the excellent parameter documentation in the description, this is quite complete. The main gap is the lack of behavioral context that annotations would normally provide, but the description covers the core functionality adequately for a read operation.

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

Parameters5/5

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

The description provides excellent parameter semantics despite 0% schema description coverage. It clearly documents the single parameter 'section' with its default value ('all'), enumerates all possible values with their meanings, and explains what each option retrieves. This fully compensates for the lack of schema descriptions and adds substantial value beyond the basic input schema.

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 clearly states the tool's purpose as '获取当前系统配置' (get current system configuration), which is a specific verb+resource combination. It distinguishes itself from siblings like 'get_system_status' by focusing specifically on configuration retrieval rather than general system status. However, it doesn't explicitly contrast with all similar siblings, keeping it from a perfect score.

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 alternatives. While it mentions different configuration sections, it doesn't explain when to retrieve specific sections versus 'all', nor does it reference sibling tools like 'get_system_status' that might overlap in functionality. There's no mention of prerequisites, timing considerations, or use case scenarios.

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

get_latest_newsA

获取最新一批爬取的新闻数据,快速了解当前热点

Args: platforms: 平台ID列表,如 ['zhihu', 'weibo'],不指定则使用所有平台 limit: 返回条数限制,默认50,最大1000 include_url: 是否包含URL链接,默认False(节省token)

Returns: JSON格式的新闻列表

数据展示建议

  • 默认展示全部返回数据,除非用户明确要求总结

  • 用户说"总结"或"挑重点"时才进行筛选

  • 用户问"为什么只显示部分"说明需要完整数据

ParametersJSON Schema
NameRequiredDescriptionDefault
platformsNo
limitNo
include_urlNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and adds valuable behavioral context: it specifies default values (limit default 50, max 1000), token-saving behavior with include_url default, and data display recommendations. It does not mention rate limits, authentication needs, or destructive effects, but provides practical usage guidance.

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 appropriately sized and well-structured: it starts with the core purpose, then details parameters in a clear Args/Returns format, and adds practical usage notes. Every sentence earns its place with no redundancy or fluff.

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

Completeness5/5

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

Given the tool's moderate complexity (3 parameters, no annotations, but has output schema), the description is complete: it covers purpose, all parameters with semantics and defaults, return format, and even adds data display recommendations. The output schema existence means it needn't explain return values in detail.

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

Parameters5/5

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

The schema description coverage is 0%, so the description must compensate fully. It does so excellently: it explains all three parameters with clear semantics (platforms as ID lists with examples, limit with default and max, include_url with default and purpose), going well beyond what the bare schema provides.

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

Purpose5/5

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

The description clearly states the tool's purpose with specific verbs ('获取最新一批爬取的新闻数据') and resource ('新闻数据'), distinguishing it from siblings like 'get_news_by_date' (date-based) or 'search_news' (search-based). It explicitly mentions '快速了解当前热点' which highlights its use case for current trends.

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

Usage Guidelines4/5

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

The description provides clear context for when to use this tool ('获取最新一批爬取的新闻数据,快速了解当前热点'), but does not explicitly mention when not to use it or name specific alternatives among the many siblings. It implies usage for recent news without filtering, but lacks explicit exclusions.

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

get_latest_rssA

获取最新的 RSS 订阅数据(支持多日查询)

RSS 数据与热榜新闻分开存储,按时间流展示,适合获取特定来源的最新内容。

Args: feeds: RSS 源 ID 列表,如 ['hacker-news', '36kr'],不指定则返回所有源 days: 获取最近 N 天的数据,默认 1(仅今天),最大 30 天 limit: 返回条数限制,默认50,最大500 include_summary: 是否包含文章摘要,默认False(节省token)

Returns: JSON格式的 RSS 条目列表

Examples: - get_latest_rss() - get_latest_rss(days=7, feeds=['hacker-news'])

ParametersJSON Schema
NameRequiredDescriptionDefault
feedsNo
daysNo
limitNo
include_summaryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

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

With no annotations provided, the description carries full burden. It discloses some behavioral traits: supports multi-day queries, data is stored separately from trending news, shows in time stream format, and has defaults/limits for parameters. However, it doesn't mention rate limits, authentication needs, or what happens when limits are exceeded. The description doesn't contradict any annotations since none exist.

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 well-structured with clear sections: purpose statement, context explanation, Args section with parameter details, Returns section, and Examples. It's appropriately sized with no redundant information. The only minor issue is that the Chinese text might be slightly less accessible to some agents, but the structure is excellent.

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

Completeness5/5

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

Given the tool has 4 parameters with 0% schema coverage but an output schema exists, the description provides complete context. It explains the tool's purpose, distinguishes it from siblings, documents all parameters thoroughly, specifies the return format, and provides usage examples. The existence of an output schema means the description doesn't need to explain return values in detail.

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

Parameters5/5

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

With 0% schema description coverage, the description fully compensates by providing detailed parameter semantics. It explains all 4 parameters with clear meanings, defaults, constraints, and examples: feeds (RSS source IDs, optional), days (recent N days, default 1, max 30), limit (result count, default 50, max 500), include_summary (whether to include article summaries to save tokens).

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

Purpose5/5

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

The description clearly states the tool's purpose: '获取最新的 RSS 订阅数据' (get latest RSS subscription data). It specifies the resource (RSS data), distinguishes it from sibling tools by mentioning it's separate from '热榜新闻' (trending news) and shows content in time stream format, making it distinct from tools like get_latest_news or search_rss.

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

Usage Guidelines4/5

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

The description provides clear context about when to use this tool: for getting latest content from specific RSS sources in a time stream format. It distinguishes from sibling tools by mentioning RSS data is stored separately from trending news. However, it doesn't explicitly state when NOT to use it or name specific alternatives among the many sibling tools.

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

get_news_by_dateA

获取指定日期的新闻数据,用于历史数据分析和对比

Args: date_range: 日期范围,支持多种格式: - 范围对象: {"start": "2025-01-01", "end": "2025-01-07"} - 自然语言: "今天", "昨天", "本周", "最近7天" - 单日字符串: "2025-01-15" - 默认值: "今天" platforms: 平台ID列表,如 ['zhihu', 'weibo'],不指定则使用所有平台 limit: 返回条数限制,默认50,最大1000 include_url: 是否包含URL链接,默认False(节省token)

Returns: JSON格式的新闻列表,包含标题、平台、排名等信息

ParametersJSON Schema
NameRequiredDescriptionDefault
date_rangeNo
platformsNo
limitNo
include_urlNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: it explains the return format ('JSON格式的新闻列表'), includes performance considerations ('节省token' for token saving with include_url default), and specifies operational limits ('默认50,最大1000'). It doesn't mention rate limits, authentication needs, or error handling, but covers more than basics for a read operation.

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 well-structured with a purpose statement, detailed Args section, and Returns section—all in a compact format. Every sentence earns its place by explaining functionality or parameters. It could be slightly more front-loaded by moving the purpose statement earlier, but overall it's efficient with minimal waste.

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?

Given 4 parameters, 0% schema coverage, no annotations, but an output schema exists, the description is largely complete. It thoroughly documents all parameters and their usage, explains the return format, and provides context for the tool's purpose. The output schema means it doesn't need to detail return values, but it could mention sibling tools or error cases for a perfect score.

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

Parameters5/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 fully compensate—and it does excellently. For all 4 parameters, it provides clear semantics: date_range formats with examples, platforms as ID lists with examples, limit defaults and max, and include_url purpose and default. This adds substantial meaning beyond the bare schema, fully documenting parameter usage.

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 clearly states the tool's purpose as '获取指定日期的新闻数据' (get news data for specified dates) with the specific use case '用于历史数据分析和对比' (for historical data analysis and comparison). It distinguishes from siblings like 'get_latest_news' (which presumably gets current news) by focusing on historical/date-specific retrieval. However, it doesn't explicitly contrast with 'search_news' or 'find_related_news', keeping it from a perfect score.

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 through '用于历史数据分析和对比' (for historical data analysis and comparison), suggesting this tool is for retrospective analysis rather than real-time monitoring. However, it provides no explicit guidance on when to use this versus alternatives like 'search_news' or 'get_latest_news', nor does it mention any prerequisites or exclusions. The usage context is helpful but incomplete.

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

get_notification_channelsA

获取所有已配置的通知渠道及其状态

检测 config.yaml 和 .env 环境变量中的通知渠道配置。 支持 9 个渠道:飞书、钉钉、企业微信、Telegram、邮件、ntfy、Bark、Slack、通用 Webhook。

Returns: JSON格式的渠道状态,包含每个渠道是否已配置及配置来源

Examples: - get_notification_channels()

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses key behavioral traits: it reads from specific configuration files (config.yaml and .env), lists the 9 supported notification channels, and describes the JSON return format with channel status and configuration source. However, it doesn't mention potential errors, rate limits, or authentication needs.

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 well-structured and front-loaded: it starts with the core purpose, then details configuration sources and supported channels, followed by return format and an example. Every sentence adds value without redundancy, making it efficient and easy to parse.

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?

Given the tool's low complexity (0 parameters) and the presence of an output schema, the description is mostly complete. It covers purpose, configuration sources, supported channels, and return format. However, it could benefit from more explicit usage context or error handling details, though the output schema likely handles return values.

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 input schema has 0 parameters with 100% coverage, so the schema fully documents the lack of inputs. The description appropriately doesn't add parameter information, maintaining focus on the tool's behavior and output. This aligns with the baseline for zero parameters.

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

Purpose5/5

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

The description clearly states the tool's purpose with specific verbs ('获取' - get/retrieve) and resources ('所有已配置的通知渠道及其状态' - all configured notification channels and their status). It distinguishes from siblings by focusing on notification channels specifically, unlike other tools that handle news, data analysis, or system status.

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 by mentioning it detects configurations in config.yaml and .env files, but it doesn't explicitly state when to use this tool versus alternatives like 'get_current_config' or 'get_system_status'. No exclusions or clear alternatives are provided, leaving usage context somewhat vague.

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

get_rss_feeds_statusB

获取 RSS 源状态信息

查看当前配置的 RSS 源及其数据统计信息。

Returns: JSON格式的 RSS 源状态,包含: - available_dates: 有 RSS 数据的日期列表 - total_dates: 总日期数 - today_feeds: 今日各 RSS 源的数据统计 - {feed_id}: { name, item_count } - generated_at: 生成时间

Examples: - get_rss_feeds_status() # 查看所有 RSS 源状态

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool returns JSON with specific fields (available_dates, total_dates, today_feeds, generated_at), which is helpful. However, it doesn't mention whether this is a read-only operation, if it requires authentication, potential rate limits, or error conditions. For a status-checking tool with zero annotation coverage, this leaves significant behavioral gaps.

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 well-structured and appropriately sized. It starts with a clear purpose statement, details the return format in a bulleted list, and ends with an example. Each sentence adds value without redundancy. However, the inclusion of both Chinese and English in the example ('get_rss_feeds_status() # 查看所有 RSS 源状态') is slightly verbose, preventing a perfect score.

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?

Given the tool's simplicity (0 parameters, output schema exists), the description is reasonably complete. It explains what the tool does and the structure of the return value, which compensates for the lack of annotations. With an output schema likely covering the JSON structure, the description doesn't need to detail return values extensively. However, it misses behavioral context like read-only nature or error handling, keeping it from a perfect score.

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 schema description coverage is 100% (empty schema). The description doesn't need to explain parameters, so it naturally meets expectations. It correctly indicates no parameters are needed with the example 'get_rss_feeds_status()', aligning with the schema. This justifies a score above baseline, as it handles the parameter-less case appropriately.

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 clearly states the tool's purpose: '获取 RSS 源状态信息' (Get RSS feed status information) and '查看当前配置的 RSS 源及其数据统计信息' (View currently configured RSS feeds and their data statistics). It specifies the verb ('获取/查看' - get/view) and resource ('RSS 源状态信息' - RSS feed status information), making the purpose unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'get_latest_rss' or 'get_storage_status', which prevents a perfect score.

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 alternatives. It includes an example ('get_rss_feeds_status() # 查看所有 RSS 源状态') that reinforces the purpose but doesn't mention when this tool is appropriate compared to siblings like 'get_latest_rss', 'list_available_dates', or 'get_system_status'. There's no discussion of prerequisites, context, or exclusions, leaving usage unclear.

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

get_storage_statusB

获取存储配置和状态

查看当前存储后端配置、本地和远程存储的状态信息。

Returns: JSON格式的存储状态信息,包含本地/远程存储状态和拉取配置

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states this is a read-only operation ('获取'/'查看') and describes what information will be returned (storage backend configuration, local/remote storage status, pull configuration). However, it doesn't mention potential side effects, authentication requirements, rate limits, or error conditions. For a tool with zero annotation coverage, this provides basic behavioral context but lacks important operational details.

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 appropriately concise with three sentences that each serve a distinct purpose: stating the tool's function, elaborating on what information it provides, and describing the return format. The information is front-loaded with the core purpose first. There's minimal redundancy, though the Chinese/English mixing in the Returns section is slightly awkward.

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?

Given this is a simple read-only status tool with 0 parameters, 100% schema coverage, and an output schema exists, the description is reasonably complete. It explains what information will be retrieved (storage configuration and status) and the return format (JSON). The existence of an output schema means the description doesn't need to detail return values. For this complexity level, the description provides adequate context.

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 with 100% schema description coverage, so the baseline is 4. The description correctly indicates this is a parameterless tool that retrieves system information without needing any inputs. No additional parameter semantics are needed since there are no parameters to document.

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 clearly states the tool's purpose with specific verbs ('获取' meaning 'get/retrieve', '查看' meaning 'view/check') and resources ('存储配置和状态' meaning 'storage configuration and status'). It distinguishes itself from siblings like get_system_status by focusing specifically on storage, but doesn't explicitly contrast with get_current_config which might overlap. The purpose is clear but sibling differentiation is implicit 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 alternatives. There's no mention of when this tool is appropriate versus get_system_status (which might include storage status) or get_current_config (which might include configuration details). The agent must infer usage from the tool name and description alone without any explicit context or exclusions provided.

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

get_system_statusB

获取系统运行状态和健康检查信息

返回系统版本、数据统计、缓存状态等信息

Returns: JSON格式的系统状态信息

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. While it mentions what information is returned, it doesn't describe important behavioral aspects such as whether this is a read-only operation (implied but not stated), whether it requires authentication, performance characteristics, or potential side effects. For a status-checking tool with zero annotation coverage, this leaves significant gaps.

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 efficiently structured in three brief sections: purpose, returned information, and output format. Each sentence adds value without redundancy. However, the mix of Chinese and English creates minor readability issues, and the 'Returns:' section is somewhat redundant with the previous line.

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?

Given that the tool has no parameters, an output schema exists, and it's a relatively simple status-checking operation, the description provides adequate basic information. However, it lacks important context about when to use it versus sibling tools, behavioral details, and could better explain the relationship to similar tools like 'check_version' and 'get_storage_status'.

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 with 100% schema description coverage, so the schema fully documents the lack of inputs. The description appropriately doesn't discuss parameters since none exist. This meets the baseline expectation for parameterless tools, though it doesn't add extra value beyond what the schema already provides.

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 clearly states the tool's purpose as '获取系统运行状态和健康检查信息' (get system running status and health check information) and specifies what information is returned (system version, data statistics, cache status). It distinguishes from siblings like 'check_version' (which likely only returns version) and 'get_storage_status' (which likely only returns storage status). However, it doesn't explicitly contrast with these specific siblings, so it doesn't reach the highest clarity level.

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 alternatives. It doesn't mention when this tool is appropriate (e.g., for monitoring, troubleshooting) or when other tools like 'check_version' or 'get_storage_status' might be more suitable. There's no context about prerequisites or exclusions.

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

list_available_datesA

列出本地/远程可用的日期范围

查看本地和远程存储中有哪些日期的数据可用。

Args: source: 数据来源 - "local": 仅本地 - "remote": 仅远程 - "both": 同时列出并对比(默认)

Returns: JSON格式的日期列表,包含各来源的日期信息和对比结果

Examples: - list_available_dates() - list_available_dates(source="local")

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNoboth

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses that the tool lists and compares date availability from different sources, which is useful behavioral context. However, it doesn't mention potential limitations (e.g., rate limits, authentication needs, data freshness) or what '对比结果' (comparison results) entail. It adds some value but lacks depth for a tool with no annotation coverage.

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 appropriately sized and well-structured with clear sections (description, Args, Returns, Examples). Each sentence adds value, though the first two sentences are somewhat redundant. It's front-loaded with the core purpose and efficiently organized without unnecessary fluff.

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?

Given the tool's moderate complexity (1 parameter, no annotations, but with an output schema), the description is fairly complete. It covers the purpose, parameter semantics, return format, and examples. The output schema exists, so the description doesn't need to detail return values. However, it could improve by addressing behavioral aspects like error handling or data scope.

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 description adds significant meaning beyond the input schema, which has 0% description coverage. It explains the 'source' parameter with three options ('local', 'remote', 'both') and their semantics, including the default value. This compensates well for the schema's lack of documentation, though it doesn't detail format or constraints beyond the enum-like options.

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 clearly states the tool's purpose: '列出本地/远程可用的日期范围' (list available date ranges from local/remote storage). It specifies the verb (list/view) and resource (date ranges), though it doesn't explicitly differentiate from sibling tools like 'resolve_date_range' or 'compare_periods'. The purpose is clear but lacks sibling distinction.

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 by mentioning '本地和远程存储' (local and remote storage) and provides examples with different source values. However, it doesn't explicitly state when to use this tool versus alternatives like 'get_storage_status' or 'resolve_date_range'. Usage is implied but not clearly defined relative to siblings.

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

read_articleA

读取指定 URL 的文章内容,返回 LLM 友好的 Markdown 格式

通过 Jina AI Reader 将网页转换为干净的 Markdown,自动去除广告、导航栏等噪音内容。 适合用于:阅读新闻正文、获取文章详情、分析文章内容。

典型使用流程:

  1. 先用 search_news(include_url=True) 搜索新闻获取链接

  2. 再用 read_article(url=链接) 读取正文内容

  3. AI 对 Markdown 正文进行分析、摘要、翻译等

Args: url: 文章链接(必需),以 http:// 或 https:// 开头 timeout: 请求超时时间(秒),默认 30,最大 60

Returns: JSON格式的文章内容,包含完整 Markdown 正文

Examples: - read_article(url="https://example.com/news/123")

Note: - 使用 Jina AI Reader 免费服务(100 RPM 限制) - 每次请求间隔 5 秒(内置速率控制) - 部分付费墙/登录墙页面可能无法完整获取

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
timeoutNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key traits: the tool uses Jina AI Reader for conversion, removes noise content, has rate limits (100 RPM, 5-second intervals), and may fail on restricted pages. It also specifies the return format (JSON with Markdown). However, it lacks details on error handling or timeout behavior beyond the default.

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 appropriately sized and well-structured, with a clear purpose statement upfront, followed by usage guidelines, workflow examples, parameter details, and notes. Every section adds value without redundancy, and it uses bullet points and formatting (like **典型使用流程**) for readability.

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

Completeness5/5

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

Given the tool's complexity (web scraping with rate limits), no annotations, and an output schema (which handles return values), the description is complete. It covers purpose, usage, parameters, behavioral traits (like rate limits and limitations), and integration with sibling tools, leaving no significant gaps for an AI agent to understand and invoke the tool correctly.

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

Parameters5/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 fully. It adds significant meaning beyond the bare schema: it explains that 'url' is required and must start with http:// or https://, and that 'timeout' has a default of 30 seconds and a maximum of 60 seconds. This provides clear semantic context that the schema alone does not.

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

Purpose5/5

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

The description clearly states the tool's purpose with specific verbs ('读取' - read, '返回' - return) and resources ('文章内容' - article content, 'Markdown 格式' - Markdown format). It distinguishes from siblings by focusing on reading individual articles rather than searching, aggregating, or analyzing news, which are handled by other tools like search_news or analyze_data_insights.

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use this tool versus alternatives, including a '典型使用流程' (typical workflow) that recommends using search_news first to get URLs and then read_article for content extraction. It also lists suitable scenarios ('适合用于' - suitable for) like reading news content or analyzing articles, and notes exclusions for paywalled or login-required pages.

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

read_articles_batchA

批量读取多篇文章内容(最多 5 篇,间隔 5 秒)

逐篇请求文章内容,每篇之间自动间隔 5 秒以遵守速率限制。

典型使用流程:

  1. 先用 search_news(include_url=True) 搜索新闻获取多个链接

  2. 再用 read_articles_batch(urls=[...]) 批量读取正文

  3. AI 对多篇文章进行对比分析、综合报告

Args: urls: 文章链接列表(必需),最多处理 5 篇 timeout: 每篇的请求超时时间(秒),默认 30

Returns: JSON格式的批量读取结果,包含每篇的完整内容和状态

Examples: - read_articles_batch(urls=["https://a.com/1", "https://b.com/2"])

Note: - 单次最多读取 5 篇,超出部分会被跳过 - 5 篇约需 25-30 秒(每篇间隔 5 秒) - 单篇失败不影响其他篇的读取

ParametersJSON Schema
NameRequiredDescriptionDefault
urlsYes
timeoutNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: rate limiting (5-second intervals between articles), error handling (single failures don't affect others), execution time (25-30 seconds for 5 articles), and constraints (max 5 articles, excess skipped). It doesn't mention authentication needs or data retention policies, but covers most operational aspects well.

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 well-structured and appropriately sized. It uses clear sections (description, typical workflow, args, returns, examples, notes) with bullet points for readability. Every sentence adds value: the opening defines purpose and constraints, the workflow provides context, parameter explanations are clear, and notes cover important behavioral details. No wasted text.

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

Completeness5/5

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

Given the tool's complexity (batch operations with rate limiting), no annotations, and the presence of an output schema (which handles return values), the description is remarkably complete. It covers purpose, workflow integration, parameters, constraints, timing, error handling, and provides examples. The output schema existence means the description doesn't need to detail return format, allowing focus on operational context.

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% schema description coverage, the description must compensate for the lack of parameter documentation in the schema. It provides good semantic context for both parameters: 'urls' is described as a required list of article links with a 5-item maximum, and 'timeout' is explained as the request timeout per article with a default of 30 seconds. The description adds meaningful context beyond what the bare schema provides.

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

Purpose5/5

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

The description clearly states the tool's purpose: '批量读取多篇文章内容' (batch read multiple article contents) with specific constraints (max 5 articles, 5-second intervals). It explicitly distinguishes from sibling tools like 'read_article' (singular) and 'search_news' (searching vs. reading content). The description provides a specific verb ('读取' - read) and resource ('文章内容' - article content) with clear scope limitations.

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

Usage Guidelines5/5

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

The description provides explicit usage guidelines in the '典型使用流程' (typical usage flow) section, detailing a three-step process: 1) use search_news to get URLs, 2) use this tool to batch read, 3) AI analysis. It clearly positions this tool as part of a workflow with specific prerequisites and distinguishes it from alternatives like 'read_article' for single articles.

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

resolve_date_rangeA

【推荐优先调用】将自然语言日期表达式解析为标准日期范围

为什么需要这个工具? 用户经常使用"本周"、"最近7天"等自然语言表达日期,但 AI 模型自己计算日期 可能导致不一致的结果。此工具在服务器端使用精确的当前时间计算,确保所有 AI 模型获得一致的日期范围。

推荐使用流程:

  1. 用户说"分析AI本周的情感倾向"

  2. AI 调用 resolve_date_range("本周") → 获取精确日期范围

  3. AI 调用 analyze_sentiment(topic="ai", date_range=上一步返回的date_range)

Args: expression: 自然语言日期表达式,支持: - 单日: "今天", "昨天", "today", "yesterday" - 周: "本周", "上周", "this week", "last week" - 月: "本月", "上月", "this month", "last month" - 最近N天: "最近7天", "最近30天", "last 7 days", "last 30 days" - 动态: "最近5天", "last 10 days"(任意天数)

Returns: JSON格式的日期范围,可直接用于其他工具的 date_range 参数: { "success": true, "expression": "本周", "date_range": { "start": "2025-11-18", "end": "2025-11-26" }, "current_date": "2025-11-26", "description": "本周(周一到周日,11-18 至 11-26)" }

Examples: 用户:"分析AI本周的情感倾向" AI调用步骤: 1. resolve_date_range("本周") → {"date_range": {"start": "2025-11-18", "end": "2025-11-26"}, ...} 2. analyze_sentiment(topic="ai", date_range={"start": "2025-11-18", "end": "2025-11-26"})

用户:"看看最近7天的特斯拉新闻"
AI调用步骤:
1. resolve_date_range("最近7天")
   → {"date_range": {"start": "2025-11-20", "end": "2025-11-26"}, ...}
2. search_news(query="特斯拉", date_range={"start": "2025-11-20", "end": "2025-11-26"})
ParametersJSON Schema
NameRequiredDescriptionDefault
expressionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively explains key behaviors: the tool runs server-side for consistent time calculations, handles various natural language expressions, returns JSON with specific fields, and the output can be directly used in other tools' date_range parameters. It doesn't mention error handling or edge cases, but covers the core operational behavior well.

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 well-structured with clear sections (purpose, why needed, usage workflow, args, returns, examples) but is somewhat lengthy. Every section adds value, though some redundancy exists between the workflow explanation and examples. The information is front-loaded with the core purpose first.

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

Completeness5/5

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

Given the tool's complexity (natural language parsing with server-side time calculation), no annotations, and the presence of an output schema, the description is remarkably complete. It explains the tool's purpose, workflow, parameter details, return format with examples, and integration with other tools. The output schema existence means the description doesn't need to exhaustively document return values, which it handles appropriately.

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

Parameters5/5

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

With 0% schema description coverage and only one parameter, the description fully compensates by providing extensive parameter semantics. It explains that 'expression' accepts natural language date expressions, lists multiple supported formats with examples (single days, weeks, months, recent N days, dynamic ranges), and shows both Chinese and English examples. This goes far beyond what the bare schema provides.

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

Purpose5/5

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

The description clearly states the tool's purpose: '将自然语言日期表达式解析为标准日期范围' (parse natural language date expressions into standard date ranges). It specifies the exact verb ('解析' - parse) and resource ('自然语言日期表达式' - natural language date expressions), and distinguishes itself from siblings by focusing on date parsing rather than analysis, search, or other operations.

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

Usage Guidelines5/5

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

The description provides explicit usage guidelines: it recommends prioritizing this tool ('推荐优先调用') and outlines a specific workflow where AI should call this tool first to get consistent date ranges before using other tools like analyze_sentiment or search_news. It clearly states when to use it (for natural language date expressions) and provides concrete examples of the workflow.

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

search_newsA

统一搜索接口,支持多种搜索模式,可同时搜索热榜和RSS

建议:使用自然语言日期时,先调用 resolve_date_range 获取精确日期范围。

Args: query: 搜索关键词或内容片段 search_mode: 搜索模式 - "keyword": 精确关键词匹配(默认) - "fuzzy": 模糊内容匹配 - "entity": 实体名称搜索(人物/地点/机构) date_range: 日期范围,格式 {"start": "YYYY-MM-DD", "end": "YYYY-MM-DD"},默认今天 platforms: 平台ID列表,如 ['zhihu', 'weibo'],不指定则使用所有平台 limit: 热榜返回条数限制,默认50 sort_by: 排序方式 - "relevance"(相关度)/ "weight"(权重)/ "date"(日期) threshold: 相似度阈值(仅fuzzy模式),0-1,默认0.6 include_url: 是否包含URL链接,默认False include_rss: 是否同时搜索RSS数据,默认False rss_limit: RSS返回条数限制,默认20

Returns: JSON格式的搜索结果,包含热榜新闻列表和可选的RSS结果

Examples: - search_news(query="AI") - search_news(query="AI", include_rss=True) - search_news(query="特斯拉", date_range={"start": "2025-01-01", "end": "2025-01-07"})

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
search_modeNokeyword
date_rangeNo
platformsNo
limitNo
sort_byNorelevance
thresholdNo
include_urlNo
include_rssNo
rss_limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It describes the tool's unified search capability, date handling recommendation, and return format (JSON with hot list and optional RSS results). However, it doesn't mention rate limits, authentication requirements, error conditions, or whether this is a read-only operation versus something that might trigger background processes.

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 well-structured with clear sections (purpose, recommendation, args, returns, examples). While comprehensive, it's appropriately sized for a 10-parameter tool. Some sentences could be more concise, but overall it's efficiently organized with zero wasted content.

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?

Given the complexity (10 parameters, 0% schema coverage) and presence of an output schema, the description provides excellent parameter documentation and clear purpose. It could benefit from more behavioral context (rate limits, permissions) and explicit sibling tool differentiation, but covers the essential usage information well.

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

Parameters5/5

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

With 0% schema description coverage for 10 parameters, the description provides excellent compensation. It documents all parameters with clear explanations, default values, format examples, and mode-specific behaviors (like threshold only applying to fuzzy mode). This adds substantial value beyond the bare schema.

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 clearly states this is a 'unified search interface' that 'supports multiple search modes' and can 'search hot lists and RSS simultaneously.' It specifies the verb (search) and resource (news), though it doesn't explicitly differentiate from sibling tools like 'search_rss' or 'get_latest_news' beyond mentioning its unified nature.

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

Usage Guidelines4/5

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

The description provides explicit guidance to 'use natural language dates, first call resolve_date_range to get precise date range' which is helpful context. It also mentions the tool's unified nature (hot lists and RSS), but doesn't explicitly state when to use this versus alternatives like 'search_rss' or 'get_latest_news'.

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

search_rssA

搜索 RSS 数据

在 RSS 订阅数据中搜索包含指定关键词的文章。

Args: keyword: 搜索关键词(必需) feeds: RSS 源 ID 列表,如 ['hacker-news', '36kr'] - 不指定时:搜索所有 RSS 源 days: 搜索最近 N 天的数据,默认 7 天,最大 30 天 limit: 返回条数限制,默认50 include_summary: 是否包含文章摘要,默认False

Returns: JSON格式的匹配 RSS 条目列表

Examples: - search_rss(keyword="AI") - search_rss(keyword="machine learning", feeds=['hacker-news'], days=14)

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordYes
feedsNo
daysNo
limitNo
include_summaryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

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

With no annotations provided, the description carries full burden. It discloses key behavioral traits: it's a search operation (implied read-only), mentions default values and constraints (days max 30, limit default 50), and specifies the return format (JSON list). However, it doesn't mention rate limits, authentication needs, or error conditions.

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 well-structured and appropriately sized. It starts with a clear purpose statement, then provides detailed parameter explanations in a bullet-like format, followed by return information and practical examples. Every sentence adds value with no redundancy.

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?

Given the tool's moderate complexity (5 parameters, search operation) and the presence of an output schema (which handles return values), the description is nearly complete. It covers purpose, parameters, and basic behavior well. The main gap is lack of explicit mention about whether this is a read-only operation or if it has side effects.

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

Parameters5/5

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

With 0% schema description coverage, the description fully compensates by explaining all 5 parameters in detail. It clarifies that 'keyword' is required, explains the meaning and default behavior of 'feeds', specifies constraints for 'days' (default 7, max 30), 'limit' (default 50), and the boolean nature of 'include_summary' (default False).

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

Purpose5/5

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

The description clearly states the tool searches RSS data for articles containing specified keywords, using specific verbs ('搜索' meaning search) and resources ('RSS 数据' meaning RSS data). It distinguishes from sibling tools like 'search_news' by specifying it searches RSS subscription data rather than general news.

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

Usage Guidelines4/5

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

The description provides clear context about when to use this tool (searching RSS subscription data with keywords) and mentions the default behavior when 'feeds' parameter is unspecified. However, it doesn't explicitly contrast with alternatives like 'search_news' or specify when not to use it.

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

send_notificationA

向已配置的通知渠道发送消息

接受 markdown 格式内容,内部自动适配各渠道的格式要求和限制:

  • 飞书:Markdown 卡片消息(支持 粗体彩色文本、链接、---)

  • 钉钉:Markdown(自动降级标题为 ###、剥离 标签和删除线)

  • 企业微信:Markdown(自动剥离 # 标题、---、 标签、删除线)

  • Telegram:HTML(自动转换 **→、*→、~~→、>→

  • Email:HTML 邮件(完整网页样式,支持 # 标题、---、粗体斜体)

  • ntfy:Markdown(自动剥离 标签)

  • Bark:Markdown(自动简化为粗体+链接,适配 iOS 推送)

  • Slack:mrkdwn(自动转换 **→*、~~→~、text→<url|text>)

  • 通用 Webhook:Markdown(支持自定义模板)

提示:发送前可调用 get_channel_format_guide 获取目标渠道的详细格式化策略, 以生成最佳排版效果的消息内容。

Args: message: markdown 格式的消息内容(必需) title: 消息标题,默认 "TrendRadar 通知" channels: 指定发送的渠道列表,不指定则发送到所有已配置渠道 可选值: feishu, dingtalk, wework, telegram, email, ntfy, bark, slack, generic_webhook

Returns: JSON格式的发送结果,包含每个渠道的发送状态

Examples: - send_notification(message="测试消息\n这是一条测试通知") - send_notification(message="紧急通知", title="系统告警", channels=["feishu", "dingtalk"])

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYes
titleNoTrendRadar 通知
channelsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does well by detailing the automatic format adaptation across multiple channels (e.g., '飞书:Markdown 卡片消息', '钉钉:Markdown(自动降级标题为 ###)'), which is crucial behavioral context. However, it doesn't mention potential rate limits, authentication requirements, or error handling for failed sends, leaving some gaps for a tool with no annotation coverage.

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 efficiently structured: it starts with the core purpose, immediately details format adaptation across channels (critical context), provides a usage tip with alternative tool reference, then clearly documents parameters and returns with examples. Every sentence adds value, and the information is front-loaded with the most important behavioral details first.

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

Completeness5/5

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

Given the tool's complexity (multi-channel sending with format adaptation), no annotations, 0% schema coverage, but with an output schema (Returns JSON格式的发送结果), the description is remarkably complete. It covers purpose, behavioral traits (format adaptation), parameter semantics, usage guidance with alternatives, and examples. The output schema handles return values, so the description appropriately focuses on input and behavior.

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

Parameters5/5

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

With 0% schema description coverage (schema provides no descriptions for parameters), the description fully compensates by explaining all three parameters: 'message: markdown 格式的消息内容(必需)' clarifies format and requirement; 'title: 消息标题,默认 "TrendRadar 通知"' specifies default value; 'channels: 指定发送的渠道列表...' lists all possible values and behavior when unspecified. This adds significant meaning beyond the bare schema.

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

Purpose5/5

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

The description clearly states the specific action ('向已配置的通知渠道发送消息' - send messages to configured notification channels) and resource (notification channels). It distinguishes itself from sibling tools like get_notification_channels (which retrieves channels) and get_channel_format_guide (which provides formatting guidance) by focusing on the sending operation.

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use this tool versus alternatives: it mentions '发送前可调用 get_channel_format_guide 获取目标渠道的详细格式化策略' (before sending, you can call get_channel_format_guide to get detailed formatting strategies for target channels), clearly indicating an alternative tool for pre-send formatting checks. It also specifies that channels can be specified or left to default to all configured channels.

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

sync_from_remoteA

从远程存储拉取数据到本地

用于 MCP Server 等场景:爬虫存到远程云存储(如 Cloudflare R2), MCP Server 拉取到本地进行分析查询。

Args: days: 拉取最近 N 天的数据,默认 7 天 - 0: 不拉取 - 7: 拉取最近一周的数据 - 30: 拉取最近一个月的数据

Returns: JSON格式的同步结果,包含: - success: 是否成功 - synced_files: 成功同步的文件数量 - synced_dates: 成功同步的日期列表 - skipped_dates: 跳过的日期(本地已存在) - failed_dates: 失败的日期及错误信息 - message: 操作结果描述

Examples: - sync_from_remote() # 拉取最近7天 - sync_from_remote(days=30) # 拉取最近30天

Note: 需要在 config/config.yaml 中配置远程存储(storage.remote)或设置环境变量: - S3_ENDPOINT_URL: 服务端点 - S3_BUCKET_NAME: 存储桶名称 - S3_ACCESS_KEY_ID: 访问密钥 ID - S3_SECRET_ACCESS_KEY: 访问密钥

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does well by explaining what the tool does (pulls data), what it returns (JSON with specific fields), configuration requirements (config.yaml or environment variables), and example usage patterns. It doesn't mention rate limits, authentication details beyond env vars, or error handling specifics.

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 well-structured with clear sections (Args, Returns, Examples, Note) and front-loaded the core purpose. While comprehensive, some information could be more concise - the configuration details are quite detailed. Every sentence adds value, but the overall length is substantial for a single-parameter tool.

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

Completeness5/5

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

Given the tool's complexity (data synchronization with configuration requirements), no annotations, and the presence of an output schema, the description is remarkably complete. It covers purpose, usage context, parameter details, return format, examples, and configuration prerequisites - providing everything needed to understand and use the tool effectively.

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

Parameters5/5

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

With 0% schema description coverage and only 1 parameter, the description fully compensates by providing comprehensive parameter semantics. It explains the 'days' parameter with its default value (7), meaning (pull data from recent N days), and specific examples of values (0, 7, 30) with their interpretations.

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

Purpose5/5

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

The description clearly states the tool's purpose with specific verbs ('从远程存储拉取数据到本地' - pull data from remote storage to local) and resources (data from cloud storage like Cloudflare R2). It distinguishes itself from sibling tools by focusing on data synchronization rather than analysis, search, or notification functions.

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

Usage Guidelines4/5

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

The description provides clear context about when to use this tool ('用于 MCP Server 等场景' - for MCP Server scenarios where crawlers store data in remote cloud storage and MCP Server pulls it locally for analysis). However, it doesn't explicitly state when NOT to use it or mention specific alternatives among the sibling tools.

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

trigger_crawlA

手动触发一次爬取任务(可选持久化)

Args: platforms: 平台ID列表,如 ['zhihu', 'weibo'],不指定则使用所有平台 save_to_local: 是否保存到本地 output 目录,默认 False include_url: 是否包含URL链接,默认False(节省token)

Returns: JSON格式的任务状态信息,包含成功/失败平台列表和新闻数据

Examples: - trigger_crawl(platforms=['zhihu']) - trigger_crawl(save_to_local=True)

ParametersJSON Schema
NameRequiredDescriptionDefault
platformsNo
save_to_localNo
include_urlNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It mentions the tool triggers a crawling task with optional persistence, but doesn't disclose important behavioral aspects like whether this is a long-running operation, what permissions are required, rate limits, error handling, or what happens when the task completes. The description adds some context about saving locally and token optimization, but lacks comprehensive behavioral disclosure.

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 well-structured with clear sections (Args, Returns, Examples) and uses bullet points effectively. It's appropriately sized with no redundant information, though the Chinese-only text might limit accessibility for some agents. Every sentence adds value, but the structure could be slightly more front-loaded.

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?

Given the tool has an output schema (Returns JSON format task status information), the description doesn't need to explain return values in detail. It covers the main purpose and parameters well, though for a tool that triggers potentially resource-intensive crawling tasks, more context about execution behavior and constraints would be beneficial. The presence of an output schema reduces the completeness burden.

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

Parameters5/5

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

With 0% schema description coverage, the description fully compensates by providing clear semantic explanations for all three parameters: 'platforms' (platform ID list with examples), 'save_to_local' (whether to save to local output directory), and 'include_url' (whether to include URL links to save tokens). The description adds significant value beyond the bare schema.

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 clearly states the tool's purpose: '手动触发一次爬取任务' (manually trigger a crawling task) with optional persistence. It specifies the action (trigger) and resource (crawling task), but doesn't explicitly differentiate from sibling tools like 'get_latest_news' or 'search_news' which might also involve crawling operations.

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 alternatives. It doesn't mention when manual triggering is needed versus automated crawling, or how this differs from sibling tools like 'get_latest_news' or 'sync_from_remote' that might involve similar data collection operations.

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. Dates show when Glama detected each change.

  1. 27 tool updatesv6.0.0
    • First observedaggregate_news
    • First observedanalyze_data_insights
    • First observedanalyze_sentiment
    • First observedanalyze_topic_trend
    • First observedcheck_version
    • First observedcompare_periods
    • First observedfind_related_news
    • First observedgenerate_summary_report
    • First observedget_channel_format_guide
    • First observedget_current_config
    • First observedget_latest_news
    • First observedget_latest_rss
    • First observedget_news_by_date
    • First observedget_notification_channels
    • First observedget_rss_feeds_status
    • First observedget_storage_status
    • First observedget_system_status
    • First observedget_trending_topics
    • First observedlist_available_dates
    • First observedread_article
    • First observedread_articles_batch
    • First observedresolve_date_range
    • First observedsearch_news
    • First observedsearch_rss
    • First observedsend_notification
    • First observedsync_from_remote
    • First observedtrigger_crawl

TDQS

A3.6/5.0
Disambiguation3/5

Most tools have distinct purposes, but there is some overlap that could cause confusion. For example, 'analyze_topic_trend' and 'analyze_sentiment' both analyze topics with similar parameters, and 'search_news' and 'find_related_news' both search for news but with different focuses. The descriptions help clarify, but an agent might misselect between these pairs.

Naming Consistency4/5

The naming is mostly consistent with a verb_noun pattern (e.g., 'aggregate_news', 'analyze_sentiment', 'get_latest_news'), but there are a few deviations like 'check_version' (verb_noun but simpler) and 'sync_from_remote' (verb_preposition_noun). Overall, the pattern is predictable and readable, with minor inconsistencies.

Tool Count2/5

With 27 tools, the count is too high for a news analysis server, making it feel heavy and potentially overwhelming. While the domain is broad (news aggregation, analysis, notification, system management), many tools could be consolidated (e.g., multiple analysis tools or system status tools) to reduce complexity and improve usability.

Completeness4/5

The tool set covers the news analysis domain comprehensively, including data retrieval (e.g., 'get_latest_news'), analysis (e.g., 'analyze_topic_trend'), notification (e.g., 'send_notification'), and system management (e.g., 'sync_from_remote'). Minor gaps exist, such as no direct tool for deleting or modifying stored data, but agents can work around this with existing tools for most workflows.

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/LeePresident/TrendRadar'

If you have feedback or need assistance with the MCP directory API, please join our Discord server