Token导航 LogoToken导航TokenDH.com
Analyze It Trends MCP Server logo
运维云端stdio官方级别未说明来源级核验

Analyze It Trends MCP Server

MCP Server

一个基于MCP协议的IT趋势分析服务器,用于收集和分析IT服务、技术和趋势的流行度信号,支持从Reddit、自由职业市场和趋势搜索引擎获取数据并生成报告。

工具数

5

提示词数

0

GitHub Stars

0

资源数

0
报告生成Python云端部署

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

kryadov

提供方

kryadov

最后核验

2026/5/17 20:20

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python -m venv .venv

详细介绍

IT趋势 MCP服务器

概述

此仓库提供了一个模型上下文协议(MCP)服务器,用于收集和分析有关IT服务、技术和趋势受欢迎程度的信号。它通过MCP暴露工具,以获取Reddit讨论、聚合指标并生成报告(HTML/PDF/Excel)。该设计具有可扩展性,可添加自由职业者市场爬虫和趋势搜索器(如Google Trends、GitHub Trending、Stack Overflow)。

建筑学

  • server.py使用FastMCP构建的MCP服务器,用于注册工具、资源和提示。
  • tools/

- reddit_analyzer.py使用PRAW获取并分析Reddit帖子;提取技术提及内容和朴素情感分析结果。 - report_generator.py生成HTML/PDF/Excel格式的报告;使用matplotlib渲染图表。 - freelance_analyzer.py抓取并解析公开的自由职业市场(如Upwork/Freelancer),并汇总技能需求,同时进行基本费率分析。 - trends_searcher.py从Google Trends、GitHub趋势和Stack Overflow标签中搜索公开信号;对结果进行标准化并汇总。

  • utils/

- cache_manager.py带有TTL(生存时间)的文件/Redis缓存,以及get_or_fetch辅助函数。 - data_processor.py归一化、增长率、异常检测以及多源聚合辅助工具。 - api_clients.py外部API客户端(目前为Reddit)的工厂。

  • templates/

- report_template.html用于HTML报告的Jinja2模板。

  • config.yaml服务器、数据源、分析、缓存、数据库和报告的配置。

MCP组件

工具

  • analyze_trends (别名: analyzetrends_analyze

- 输入: days: int = 7sources: {"reddit": bool, "freelance": bool, "trends": bool}include_charts: boollanguage: str - 输出: { "date": "YYYY-MM-DD", "top_trends": list[str], "growth_leaders": list[str], "sources": {..}, "summary": str } - 注:聚合公共信号(Google趋势、GitHub热门趋势、Stack Overflow)并进行每日缓存。

  • search_trends

- 输入: keywords: list[str]timeframe: str = "now 7-d"region: str = "US" - 输出: { "date": "YYYY-MM-DD", "inputs": {..}, "sources": { "google_trends": {...}, "github_trending": {...}, "stackoverflow": {...} }, "top_technologies": [{"technology": str, "mentions": float}] }

  • analyze_reddit

- 输入: subreddits: list[str]lookback_days: intkeywords: list[str] - 输出:包含以下内容的JSON top_technologies (技术,提及次数)、每项技术的情感倾向以及统计数据 - 实现:使用PRAW客户端,从指定的子版块获取最近帖子,提取关键词提及内容,进行简单情感分析,并按提及次数排序

  • analyze_freelance

- 输入: platforms: list[str] (以下一项或多项:Upwork、Freelancer、全部), categories: list[str] (可选) - 输出: { "date": "YYYY-MM-DD", "source": "freelance_markets", "platforms": [...], "top_technologies": [...], "avg_hourly_rate": number, "stats": {...}, "status": "ok|partial|not_available" }

  • generate_report (别名: report_generatecreate_report

- 输入: data: dictformat: str (pdf/电子表格/html), include_charts: bool - 输出: { "file_path": "...", "path": "..." } 生成的报告文件的路径 - 实现:使用Jinja2模板生成HTML,通过matplotlib生成图表,通过reportlab生成PDF,通过openpyxl处理Excel

  • get_historical_comparison (存根)

- 输入: technology: strdays_back: int - 输出: { status: "not_implemented", message: "..." }

资源

  • cache://trends/{date} – 如果存在,则按日期返回缓存的趋势数据。
  • history://technology/{name} – 如果存在,返回该技术的历史数据(缓存或 ./data 文件)。

提示

  • analysis_prompt – 系统提示进行分析。
  • forecast_prompt – 预测系统提示。

安装

  1. 克隆并准备环境

- Python 3.10及以上版本 - 创建并激活虚拟环境

    python -m venv .venv
  1. 安装依赖项
   pip install -r requirements.txt
  1. 配置环境

- 创建一个 .env 在项目根目录中创建文件并设置所需的变量。 - 至少提供Reddit的登录凭据: - REDDIT_CLIENT_ID - REDDIT_CLIENT_SECRET - 可选: GITHUB_TOKENSTACKOVERFLOW_KEYREDIS_URL

  1. 评论 config.yaml

- 调整子版块、缓存后端、报告输出目录等。

运行MCP服务器

默认情况下, server.py 运行Streamable HTTP传输(通过配置 config.yaml,默认地址为 http://localhost:8080/)。

你也可以使用辅助脚本:

  • Windows(操作系统): run_server.bat
  • macOS/Linux: ./run_server.sh

直接运行:

python server.py

可用工具(MCP)

  • analyze_trends (别名: analyzetrends_analyze)

- 示例调用

    result = await mcp_client.call_tool("analyze_trends", {
        "days": 7,
        "sources": {"reddit": true, "freelance": true, "trends": true},
        "include_charts": true,
        "language": "en"
    })
  • analyze_reddit

- 示例调用

    result = await mcp_client.call_tool("analyze_reddit", {
        "subreddits": ["programming", "webdev"],
        "lookback_days": 7,
        "keywords": ["python", "javascript", "react"]
    })
  • generate_report (别名: report_generatecreate_report)

- 示例调用

    report = await mcp_client.call_tool("generate_report", {
        "data": result,
        "format": "html",  # or "pdf" / "excel"
        "include_charts": true
    })
    # Note: Response includes both keys: {"file_path": "...", "path": "..."}

数据模式

分析趋势结果

{
  "date": "YYYY-MM-DD",
  "top_trends": ["python", "rust", "kotlin"],
  "growth_leaders": ["langchain", "webgpu", "bun"],
  "sources": {"reddit": true, "freelance": true, "trends": true},
  "summary": "Aggregated technology signals from public sources for the last N days."
}

分析Reddit结果

{
  "date": "YYYY-MM-DD",
  "subreddits": ["programming", "webdev"],
  "lookback_days": 7,
  "top_technologies": [
    {"technology": "python", "mentions": 123},
    {"technology": "javascript", "mentions": 98}
  ],
  "sentiment": {
    "python": {"avg_sentiment": 0.42, "mentions": 25},
    "javascript": {"avg_sentiment": 0.12, "mentions": 30}
  },
  "stats": {"posts_analyzed": 300, "unique_tech_count": 20}
}

生成报告结果

{ "file_path": "./reports/report_20250101_120000.html", "path": "./reports/report_20250101_120000.html" }

故障排除

  • 缺少Reddit凭据

- 如果Reddit客户端未配置,服务器将优雅地返回空结果。请提供 REDDIT_CLIENT_ID 并且 REDDIT_CLIENT_SECRET 在你的 .env

  • SSL/网络错误

- Reddit抓取器具有简单的指数退避重试机制。请检查连接状态或稍后再试。

  • 图表不可见

- 确保 matplotlib 已安装且可使用非无头后端。报告仍将生成,但不包含图表。

  • PDF/Excel生成问题

- 如果 reportlab 或者 openpyxl 如果缺失,服务器将回退到HTML生成。

  • Redis 缓存无法工作

- 验证 REDIS_URL 并且确保一个 Redis 服务器正在运行,或者切换 cache.storage 翻译为:“存档”在 config.yaml

获取Reddit API凭证

按照以下步骤创建一个Reddit应用,并获取该项目所需的凭据:

  1. 使用您的账户登录Reddit。
  2. 访问 https://www.reddit.com/prefs/apps(或 https://old.reddit.com/prefs/apps)。
  3. 点击“创建应用”(或“创建另一个应用”)。
  4. 填写表格:

- 名称:例如,IT趋势MCP - 应用类型:脚本 - 描述:可选 - 重定向URI:http://localhost:8080(Reddit要求;本项目未使用)

  1. 应用创建后,复制:

- 客户端ID:应用程序名称下方显示的短字符串(位于“个人使用脚本”旁边)。 - 客户端密钥:标记为“secret”的值。

  1. 将它们放入你的 .env 文件中:

- REDDIT_CLIENT_ID=你的客户端ID - REDDIT_CLIENT_SECRET=你的客户端密钥 - REDDIT_USER_AGENT=ITTrendsAnalyzer/1.0 由 \ 提供

  1. 保存.env文件并重启服务器。

注释:

  • 服务器通过PRAW使用只读访问权限;无需用户名/密码或刷新令牌。
  • 根据每个Reddit API的规则,使用一个独特且描述性的用户代理。
  • API的使用受到速率限制;如果遇到错误,请放慢速度稍后再试。

路线图

  • 持久化历史数据并启用 get_historical_comparison
  • 增加更多自由职业者资源(如Fiverr)并提供更丰富的费率分析
  • 在适当的情况下,为GitHub/StackExchange提供OAuth/API集成
  • 使用时间序列模型进行预测改进
  • 添加测试和持续集成;提供Docker打包

许可证

根据您的项目需求,选择Apache-2.0或类似的许可证。

目录标签

目录标签

报告生成Python云端部署IT趋势分析本地部署数据聚合Reddit分析自由职业市场分析

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

oauth

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

5

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiooauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP