fix: 修复mcp的时间查询问题,同时更新了中英文文档

This commit is contained in:
sansan 2025-11-18 07:03:23 +08:00
parent 2146bdda73
commit a450339ab7
10 changed files with 1870 additions and 60 deletions

1745
README-EN.md Normal file

File diff suppressed because it is too large Load Diff

BIN
_image/302ai.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

BIN
_image/ai3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1012 KiB

BIN
_image/banner-302ai-en.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

BIN
_image/banner-302ai-zh.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

BIN
_image/icon-302ai.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

View File

@ -173,9 +173,12 @@ async def analyze_topic_trend(
- "viral": 异常热度检测识别突然爆火的话题
- "predict": 话题预测预测未来可能的热点
date_range: 日期范围trend和lifecycle模式可选
- **格式**: {"start": "YYYY-MM-DD", "end": "YYYY-MM-DD"}
- **示例**: {"start": "2025-10-18", "end": "2025-10-25"}
- **说明**: AI需要根据用户的自然语言"最近7天"自动计算日期范围
- **格式**: {"start": "YYYY-MM-DD", "end": "YYYY-MM-DD"}必须是标准日期格式
- **说明**: AI必须根据当前日期自动计算并填入具体日期不能使用"今天"等自然语言
- **计算示例**:
- 用户说"最近7天" AI计算: {"start": "2025-11-11", "end": "2025-11-17"}假设今天是11-17
- 用户说"上周" AI计算: {"start": "2025-11-11", "end": "2025-11-17"}上周一到上周日
- 用户说"本月" AI计算: {"start": "2025-11-01", "end": "2025-11-17"}11月1日到今天
- **默认**: 不指定时默认分析最近7天
granularity: 时间粒度trend模式默认"day"仅支持 day因为底层数据按天聚合
threshold: 热度突增倍数阈值viral模式默认3.0
@ -188,11 +191,15 @@ async def analyze_topic_trend(
**AI使用说明**
当用户使用相对时间表达时"最近7天""过去一周""上个月"
AI需要自动计算对应的日期范围并传递给 date_range 参数
AI必须根据当前日期从环境 <env> 获取计算出具体的 YYYY-MM-DD 格式日期
Examples:
- analyze_topic_trend(topic="人工智能", analysis_type="trend", date_range={"start": "2025-10-18", "end": "2025-10-25"})
- analyze_topic_trend(topic="特斯拉", analysis_type="lifecycle", date_range={"start": "2025-10-18", "end": "2025-10-25"})
**重要**date_range 不接受"今天""昨天"等自然语言必须是 YYYY-MM-DD 格式
Examples (假设今天是 2025-11-17):
- 用户"分析AI最近7天的趋势"
analyze_topic_trend(topic="人工智能", analysis_type="trend", date_range={"start": "2025-11-11", "end": "2025-11-17"})
- 用户"看看特斯拉本月的热度"
analyze_topic_trend(topic="特斯拉", analysis_type="lifecycle", date_range={"start": "2025-11-01", "end": "2025-11-17"})
- analyze_topic_trend(topic="比特币", analysis_type="viral", threshold=3.0)
- analyze_topic_trend(topic="ChatGPT", analysis_type="predict", lookahead_hours=6)
"""
@ -415,14 +422,22 @@ async def search_news(
**AI使用说明**
当用户使用相对时间表达时"最近7天""过去一周""最近半个月"
AI需要自动计算对应的日期范围计算规则
- "最近7天" {"start": "今天-6天", "end": "今天"}
- "过去一周" {"start": "今天-6天", "end": "今天"}
- "最近30天" {"start": "今天-29天", "end": "今天"}
AI必须根据当前日期从环境 <env> 获取计算出具体的 YYYY-MM-DD 格式日期
Examples:
- 今天的新闻: search_news(query="人工智能")
- 最近7天: search_news(query="人工智能", date_range={"start": "2025-10-18", "end": "2025-10-25"})
**重要**date_range 不接受"今天""昨天"等自然语言必须是 YYYY-MM-DD 格式
**计算规则**假设从 <env> 获取今天是 2025-11-17
- "今天" 不传 date_range默认查今天
- "最近7天" {"start": "2025-11-11", "end": "2025-11-17"}
- "过去一周" {"start": "2025-11-11", "end": "2025-11-17"}
- "上周" 计算上周一到上周日 {"start": "2025-11-11", "end": "2025-11-17"}
- "本月" {"start": "2025-11-01", "end": "2025-11-17"}
- "最近30天" {"start": "2025-10-19", "end": "2025-11-17"}
Examples (假设今天是 2025-11-17):
- 用户"今天的AI新闻" search_news(query="人工智能")
- 用户"最近7天的AI新闻" search_news(query="人工智能", date_range={"start": "2025-11-11", "end": "2025-11-17"})
- 精确日期: search_news(query="人工智能", date_range={"start": "2025-01-01", "end": "2025-01-07"})
- 模糊搜索: search_news(query="特斯拉降价", search_mode="fuzzy", threshold=0.4)
"""
@ -640,27 +655,12 @@ def run_server(
if __name__ == '__main__':
import sys
import argparse
parser = argparse.ArgumentParser(
description='TrendRadar MCP Server - 新闻热点聚合 MCP 工具服务器',
formatter_class=argparse.RawDescriptionHelpFormatter,
epilog="""
使用示例:
# STDIO 模式(用于 Cherry Studio
uv run python mcp_server/server.py
# HTTP 模式(适合远程访问)
uv run python mcp_server/server.py --transport http --port 3333
Cherry Studio 配置示例:
设置 > MCP Servers > 添加服务器
- 名称: TrendRadar
- 类型: STDIO
- 命令: [UV的完整路径]
- 参数: --directory [项目路径] run python mcp_server/server.py
详细配置教程请查看: README-Cherry-Studio.md
"""
)

View File

@ -186,9 +186,9 @@ class AnalyticsTools:
Returns:
趋势分析结果字典
Examples:
- analyze_topic_trend_unified(topic="人工智能", analysis_type="trend", date_range={"start": "2025-10-18", "end": "2025-10-25"})
- analyze_topic_trend_unified(topic="特斯拉", analysis_type="lifecycle", date_range={"start": "2025-10-18", "end": "2025-10-25"})
Examples (假设今天是 2025-11-17):
- 用户"分析AI最近7天的趋势" analyze_topic_trend_unified(topic="人工智能", analysis_type="trend", date_range={"start": "2025-11-11", "end": "2025-11-17"})
- 用户"看看特斯拉本月的热度" analyze_topic_trend_unified(topic="特斯拉", analysis_type="lifecycle", date_range={"start": "2025-11-01", "end": "2025-11-17"})
- analyze_topic_trend_unified(topic="比特币", analysis_type="viral", threshold=3.0)
- analyze_topic_trend_unified(topic="ChatGPT", analysis_type="predict", lookahead_hours=6)
"""
@ -270,10 +270,10 @@ class AnalyticsTools:
代码调用示例
>>> tools = AnalyticsTools()
>>> # 分析7天趋势
>>> # 分析7天趋势(假设今天是 2025-11-17
>>> result = tools.get_topic_trend_analysis(
... topic="人工智能",
... date_range={"start": "2025-10-18", "end": "2025-10-25"},
... date_range={"start": "2025-11-11", "end": "2025-11-17"},
... granularity="day"
... )
>>> # 分析历史月份趋势
@ -421,10 +421,10 @@ class AnalyticsTools:
- "分析各平台今天的热点分布"
代码调用示例
>>> tools = AnalyticsTools()
>>> # 对比各平台(假设今天是 2025-11-17
>>> result = tools.compare_platforms(
... topic="人工智能",
... date_range={"start": "2025-10-01", "end": "2025-10-11"}
... date_range={"start": "2025-11-08", "end": "2025-11-17"}
... )
>>> print(result['platform_stats'])
"""
@ -668,10 +668,10 @@ class AnalyticsTools:
... topic="特斯拉",
... limit=10
... )
>>> # 分析一周内的特斯拉新闻返回前10条按权重排序
>>> # 分析一周内的特斯拉新闻(假设今天是 2025-11-17
>>> result = tools.analyze_sentiment(
... topic="特斯拉",
... date_range={"start": "2025-10-06", "end": "2025-10-13"},
... date_range={"start": "2025-11-11", "end": "2025-11-17"},
... limit=10
... )
>>> print(result['ai_prompt']) # 获取生成的提示词
@ -1355,9 +1355,9 @@ class AnalyticsTools:
- "分析各平台的发布时间规律"
代码调用示例
>>> tools = AnalyticsTools()
>>> # 查看各平台活跃度(假设今天是 2025-11-17
>>> result = tools.get_platform_activity_stats(
... date_range={"start": "2025-10-01", "end": "2025-10-11"}
... date_range={"start": "2025-11-08", "end": "2025-11-17"}
... )
>>> print(result['platform_activity'])
"""
@ -1486,10 +1486,10 @@ class AnalyticsTools:
- "追踪'比特币'话题的热度变化"
代码调用示例
>>> tools = AnalyticsTools()
>>> # 分析话题生命周期(假设今天是 2025-11-17
>>> result = tools.analyze_topic_lifecycle(
... topic="人工智能",
... date_range={"start": "2025-10-18", "end": "2025-10-25"}
... date_range={"start": "2025-10-19", "end": "2025-11-17"}
... )
>>> print(result['lifecycle_stage'])
"""

View File

@ -106,11 +106,11 @@ class DataQueryTools:
Returns:
搜索结果字典
Example:
Example (假设今天是 2025-11-17):
>>> tools = DataQueryTools()
>>> result = tools.search_news_by_keyword(
... keyword="人工智能",
... date_range={"start": "2025-10-01", "end": "2025-10-11"},
... date_range={"start": "2025-11-08", "end": "2025-11-17"},
... limit=50
... )
>>> print(result['total'])

View File

@ -8,11 +8,13 @@
<a href="https://trendshift.io/repositories/14726" target="_blank"><img src="https://trendshift.io/api/badge/repositories/14726" alt="sansan0%2FTrendRadar | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
<a href="https://share.302.ai/mEOUzG" target="_blank"><img src="_image/302ai.png" alt="302.AI logo" height="40"/></a>
[![GitHub Stars](https://img.shields.io/github/stars/sansan0/TrendRadar?style=flat-square&logo=github&color=yellow)](https://github.com/sansan0/TrendRadar/stargazers)
[![GitHub Forks](https://img.shields.io/github/forks/sansan0/TrendRadar?style=flat-square&logo=github&color=blue)](https://github.com/sansan0/TrendRadar/network/members)
[![License](https://img.shields.io/badge/license-GPL--3.0-blue.svg?style=flat-square)](LICENSE)
[![Version](https://img.shields.io/badge/version-v3.0.5-blue.svg)](https://github.com/sansan0/TrendRadar)
[![MCP](https://img.shields.io/badge/MCP-v1.0.1-green.svg)](https://github.com/sansan0/TrendRadar)
[![MCP](https://img.shields.io/badge/MCP-v1.0.2-green.svg)](https://github.com/sansan0/TrendRadar)
[![企业微信通知](https://img.shields.io/badge/企业微信-通知-00D4AA?style=flat-square)](https://work.weixin.qq.com/)
[![Telegram通知](https://img.shields.io/badge/Telegram-通知-00D4AA?style=flat-square)](https://telegram.org/)
@ -29,6 +31,11 @@
</div>
<div align="center">
**中文** | **[English](README-EN.md)**
</div>
> 本项目以轻量,易部署为目标
@ -38,17 +45,17 @@
| [🎯 核心功能](#-核心功能) | [🚀 快速开始](#-快速开始) | [🐳 Docker部署](#-docker-部署) | [🤖 AI分析专区](#-ai-智能分析部署) |
|:---:|:---:|:---:|:---:|
| [📝 更新日志](#-更新日志) | [🔌 MCP客户端](#-mcp-客户端) | [❓ 答疑与常见问题](#问题答疑与1元点赞) | [⭐ 项目相关](#项目相关) |
| [📝 更新日志](#-更新日志) | [🔌 MCP客户端](#-mcp-客户端) | [❓ 答疑与公益](#问题答疑与公益捐助) | [⭐ 项目相关](#项目相关) |
| [🔧 自定义监控平台](#自定义监控平台) | [📝 frequency_words.txt 配置](#frequencywordstxt-配置教程) | | |
</div>
- 感谢**耐心反馈 bug** 的贡献者,你们的每一条反馈让项目更加完善😉;
- 感谢**为项目点 star** 的观众们,**fork** 你所欲也,**star** 我所欲也,两者得兼😍是对开源精神最好的支持;
- 感谢**关注[公众号](#问题答疑与1元点赞)** 的读者们,你们的留言、点赞、分享和推荐等积极互动让内容更有温度😎。
- 感谢**关注[公众号](#问题答疑与公益捐助)** 的读者们,你们的留言、点赞、分享和推荐等积极互动让内容更有温度😎。
<details>
<summary>👉 点击查看<strong>致谢名单</strong> (当前 <strong>🔥66🔥</strong> 位)</summary>
<summary>👉 点击查看<strong>致谢名单</strong> (当前 <strong>🔥71🔥</strong> 位)</summary>
### 数据支持
@ -68,6 +75,11 @@
| 点赞人 | 金额 | 日期 | 备注 |
| :-------------------------: | :----: | :----: | :-----------------------: |
| *鬼 | 1 | 2025.11.17 | |
| *超 | 10 | 2025.11.17 | |
| R*w | 10 | 2025.11.17 | 这 agent 做的牛逼啊,兄弟 |
| J*o | 1 | 2025.11.17 | 感谢开源,祝大佬事业有成 |
| *晨 | 8.88 | 2025.11.16 | 项目不错,研究学习中 |
| *海 | 1 | 2025.11.15 | |
| *德 | 1.99 | 2025.11.15 | |
| *疏 | 8.8 | 2025.11.14 | 感谢开源,项目很棒,支持一下 |
@ -547,6 +559,15 @@ GitHub 一键 Fork 即可使用,无需编程基础。
### 2025/11/18 - mcp-v1.0.2
**MCP 模块更新:**
- 优化查询今日新闻却可能错误返回过去日期的情况
<details>
<summary><strong>👉 点击展开:历史更新</strong></summary>
### 2025/10/26 - mcp-v1.0.1
**MCP 模块更新:**
@ -554,10 +575,6 @@ GitHub 一键 Fork 即可使用,无需编程基础。
- 统一所有工具的时间参数格式
<details>
<summary><strong>👉 点击展开:历史更新</strong></summary>
### 2025/10/31 - v3.0.4
- 解决飞书因推送内容过长而产生的错误,实现了分批推送
@ -1048,7 +1065,7 @@ frequency_words.txt 文件增加了一个【必须词】功能,使用 + 号
> **自动识别**:使用以上邮箱时,无需手动配置 `EMAIL_SMTP_SERVER``EMAIL_SMTP_PORT`,系统会自动识别。
>
> **反馈说明**
> - 如果使用**其他邮箱**测试成功,欢迎开 [Issues](https://github.com/sansan0/TrendRadar/issues) 告知,我会添加到支持列表
> - 如果使用**其他邮箱**测试成功,欢迎开 [Issues](https://github.com/sansan0/TrendRadar/issues) 告知,我会添加到支持列表
> - 如果上述邮箱配置有误或无法使用,也请开 [Issues](https://github.com/sansan0/TrendRadar/issues) 反馈,帮助改进项目
**常见邮箱设置:**
@ -1427,7 +1444,7 @@ TrendRadar v3.0.0 新增了基于 **MCP (Model Context Protocol)** 的 AI 分析
Cherry Studio 提供 GUI 配置界面, 5 分钟快速部署, 复杂的部分是一键安装的。
**图文部署教程**:现已更新到我的[公众号](#问题答疑与1元点赞),回复 "mcp" 即可
**图文部署教程**:现已更新到我的[公众号](#问题答疑与公益捐助),回复 "mcp" 即可
**详细部署教程**[README-Cherry-Studio.md](README-Cherry-Studio.md)
@ -1439,7 +1456,7 @@ Cherry Studio 提供 GUI 配置界面, 5 分钟快速部署, 复杂的部分
> 实际不建议一次性问多个问题。如果你选择的 ai 模型连下图的按顺序调用都无法做到,建议换一个。
<img src="/_image/ai2.png" alt="mcp 使用效果图2" width="600">
<img src="/_image/ai3.png" alt="mcp 使用效果图" width="600">
## 🔌 MCP 客户端
@ -1735,17 +1752,65 @@ MCP Inspector 是官方调试工具,用于测试 MCP 连接:
</details>
## ☕问题答疑与1元点赞
## ☕问题答疑与公益捐助
> 心意到就行,收到的**点赞**用于提高开发者开源的积极性。**点赞**已收录于**致谢名单**
> 如果你想支持本项目,可通过微信搜索**腾讯公益**,对里面的**助学计划**随心捐助~
>
> 我还在为信息过载而焦虑,他们却在信息荒漠中挣扎,连学习的机会都没有,所以他们比我更需要支持。
<details>
<summary><b>👉 点击展开:作者有话说</b></summary>
<br>
感谢各位支持!因获得赞助商赞助,现已移除**一元点赞**打赏码。
之前参与**一元点赞**的朋友已收录至顶部**致谢名单**。
本项目开发和维护投入了大量时间、精力和成本(含 AI 模型费用),有了赞助支持后可以更安心维护。
目前大厂模型价格已相对亲民,如果你手上暂无合适的模型,点击下方**302.AI**也是对开发者的支持:
<div align="center">
<span style="margin-left: 10px"><a href="https://share.302.ai/mEOUzG" target="_blank"><img src="_image/icon-302ai.png" alt="302.AI logo" width="100"/></a></span>
</div>
**使用流程:**
1. 注册并充值后,进入右上角 [管理后台](https://302.ai/dashboard/overview)
2. 点击左侧 [API Keys](https://302.ai/apis/list)
3. 在页面下方找到默认 API KEY点击眼睛图标查看然后复制注意不是点最右侧的复制按钮
4. Cherry Studio 已集成 302.AI直接填入 API 密钥即可使用(当前必须得先填密钥才能看到完整模型列表)
若你已有合适的模型,也欢迎先**注册体验**~
</details>
- **GitHub Issues**:适合针对性强的解答。提问时请提供完整信息(截图、错误日志、系统环境等)。
- **公众号交流**:适合快速咨询。建议优先在相关文章下的公共留言区交流,如私信,请文明礼貌用语😉
|公众号关注 |微信点赞 | 支付宝点赞 |
|:---:|:---:|:---:|
| <img src="_image/weixin.png" width="300" title="硅基茶水间"/> | <img src="https://cdn-1258574687.cos.ap-shanghai.myqcloud.com/img/%2F2025%2F07%2F17%2F2ae0a88d98079f7e876c2b4dc85233c6-9e8025.JPG" width="300" title="微信支付"/> | <img src="https://cdn-1258574687.cos.ap-shanghai.myqcloud.com/img/%2F2025%2F07%2F17%2F1ed4f20ab8e35be51f8e84c94e6e239b4-fe4947.JPG" width="300" title="支付宝支付"/> |
<div align="center">
|公众号关注 |
|:---:|
| <img src="_image/weixin.png" width="400" title="硅基茶水间"/> |
</div>
## 🪄赞助商
> 302.AI 是一个按用量付费的企业级 AI 资源平台
> 提供市场上最新、最全面的 **AI模型****API**,以及多种开箱即用的在线 AI 应用。
<div align="center">
<span style="margin-left: 10px"><a href="https://share.302.ai/mEOUzG" target="_blank"><img src="_image/banner-302ai-zh.jpg" alt="302ai banner" width="800"/></a>
</div>
### 常见问题