
paiad/mcp-java-news-crawler
Developer tools✨用Java实现的MCP,爬取最新热点新闻,允许LLM调用。告别信息茧房,用AI洞悉世界。
Overview
一个基于 的 Java 热点新闻爬虫服务。AI 助手(Claude、Codex、Gemini、Cherry Studio 等)可通过自然语言指令实时获取全网热点新闻、搜索特定事件并分析舆论趋势。 :国际媒体通过 RSS 获取,数据仅含标题、摘要和发布时间,不含热度或互动数据(hotScore 为 0,hotDesc 为发布时间 GMT)。 构建产物位于 target/mcp-java-news-crawler-jar-with-dependencies.jar。 仅支持 POST /mcp,JSON-RPC notification 返回 202 Accepted,GET / DELETE 返回 405。 编辑各自配置文件,粘贴 JSON 模板: - Codex: ~/.codex/config.json - Gemini: ~/.gemini/settings.json 镜像基于 eclipse-temurin:21-jre-alpine 多阶段构建,体积小巧。MCP 客户端使用 -i(不需要 -t)。 - 程序自动读取 .env 或系统环境变量 HTTP_PROXY - 国内平台无需代理 - 未配置代理时,国际平台可能超时或失败 - 服务使用 STDIO 通信,日志输出到 System.err——请勿修改日志配置导致日志打印到 stdout - 部分平台可能因反爬策略调整导致爬取失败,欢迎提交 Issue 或 PR - 请合理使用,遵守各平台使用条款
README
MCP Java News Crawler
一个基于 Model Context Protocol (MCP) 的 Java 热点新闻爬虫服务。AI 助手(Claude、Codex、Gemini、Cherry Studio 等)可通过自然语言指令实时获取全网热点新闻、搜索特定事件并分析舆论趋势。
功能概览
MCP 工具
| 工具名称 | 功能描述 |
|---|---|
get_hot_news |
获取多平台热榜新闻 |
search_news |
关键词搜索新闻 |
支持的平台
| 平台 ID | 平台名称 | 类型 | 说明 |
|---|---|---|---|
douyin |
抖音 | 国内 | 抖音热点 |
toutiao |
今日头条 | 国内 | 头条热榜 |
weibo |
微博 | 国内 | 微博热搜 |
bilibili |
B 站 | 国内 | B 站热门视频 |
baidu |
百度 | 国内 | 百度热搜 |
zhihu |
知乎 | 国内 | 知乎热榜 |
wallstreetcn |
华尔街见闻 | 国内 | 财经资讯 |
google_news |
Google News | 国际 | 谷歌新闻 |
reddit |
国际 | Reddit 热帖 | |
bbc |
BBC | 国际 | BBC 新闻 |
reuters |
Reuters | 国际 | 路透社 |
apnews |
AP News | 国际 | 美联社 |
guardian |
The Guardian | 国际 | 卫报 |
techcrunch |
TechCrunch | 国际 | 科技资讯 |
hacker_news |
Hacker News | 国际 | 黑客新闻 |
关于国际平台:国际媒体通过 RSS 获取,数据仅含标题、摘要和发布时间,不含热度或互动数据(
hotScore为 0,hotDesc为发布时间 GMT)。
快速开始
1. 构建
要求 JDK 21+(使用虚拟线程特性)。
mvn clean package -DskipTests
构建产物位于 target/mcp-java-news-crawler-jar-with-dependencies.jar。
2. 运行
java -jar target/mcp-java-news-crawler-jar-with-dependencies.jar
默认以 STDIO 传输启动,适合本地 MCP 客户端。
3. 验证
启动后服务等待 stdin 输入,依次发送以下 JSON 测试:
{ "jsonrpc": "2.0", "id": 1, "method": "initialize", "params": { "protocolVersion": "2024-11-05", "capabilities": {} } }
{ "jsonrpc": "2.0", "id": 2, "method": "tools/list", "params": {} }
{ "jsonrpc": "2.0", "id": 3, "method": "tools/call", "params": { "name": "get_hot_news", "arguments": { "limit": 5 } } }
传输模式
通过环境变量切换:
MCP_TRANSPORT=stdio|http|both
MCP_HTTP_HOST=127.0.0.1
MCP_HTTP_PORT=8080
| 模式 | 说明 |
|---|---|
stdio (默认) |
通过 stdin/stdout 提供 MCP 服务 |
http |
Streamable HTTP,监听 http://127.0.0.1:8080/mcp |
both |
同时启动 STDIO 和 HTTP |
HTTP 模式测试
# 启动
MCP_TRANSPORT=http java -jar target/mcp-java-news-crawler-jar-with-dependencies.jar
# 调用
curl -X POST http://127.0.0.1:8080/mcp \
-H 'Content-Type: application/json' \
-d '{ "jsonrpc": "2.0", "id": 1, "method": "tools/list", "params": {} }'
仅支持
POST /mcp,JSON-RPC notification 返回202 Accepted,GET/DELETE返回405。
客户端配置
所有客户端使用相同的配置模式,只需替换 jar 的实际路径:
{
"mcpServers": {
"news-crawler": {
"command": "java",
"args": ["-Dfile.encoding=UTF-8", "-jar", "/path/to/mcp-java-news-crawler-jar-with-dependencies.jar"]
}
}
}
Docker 部署
# 构建镜像
docker build -t mcp-java-news-crawler .
# 交互测试
docker run -it --rm mcp-java-news-crawler
客户端配置(使用 Docker 方式):
{
"mcpServers": {
"news-crawler": {
"command": "docker",
"args": ["run", "-i", "--rm", "mcp-java-news-crawler"]
}
}
}
镜像基于
eclipse-temurin:21-jre-alpine多阶段构建,体积小巧。MCP 客户端使用-i(不需要-t)。
配置参考
代理(访问国际平台)
访问国际新闻平台需配置 HTTP 代理:
# 复制模板
cp .env.example .env
# 编辑 .env,支持 http:// 和 socks5://
HTTP_PROXY=http://127.0.0.1:7890
- 程序自动读取
.env或系统环境变量HTTP_PROXY - 国内平台无需代理
- 未配置代理时,国际平台可能超时或失败
平台优先级
编辑 src/main/resources/platforms.yml:
platforms:
zhihu:
enabled: true
priority: 90 # 1-100,越大越靠前
修改后需 mvn clean package 并重启。
项目结构
src/main/java/com/paiad/mcp/
├── config/ # 平台配置
├── crawler/ # 各平台爬虫实现
├── model/
│ ├── pojo/ # 领域实体(NewsItem, CrawlResult)
│ └── vo/ # 视图对象(NewsItemVO)
├── service/ # 业务服务层
├── tool/ # MCP 工具定义
└── util/ # 工具类
注意事项
- 服务使用 STDIO 通信,日志输出到
System.err——请勿修改日志配置导致日志打印到 stdout - 部分平台可能因反爬策略调整导致爬取失败,欢迎提交 Issue 或 PR
- 请合理使用,遵守各平台使用条款
贡献
- 提交 Bug 报告
- 提出新功能建议
- 提交 Pull Request
Star History
许可证
Install
docker run -i --rm mcp-java-news-crawlerConfiguration
{
"mcpServers": {
"news-crawler": {
"command": "java",
"args": ["-Dfile.encoding=UTF-8", "-jar", "/path/to/mcp-java-news-crawler-jar-with-dependencies.jar"]
}
}
}