We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/lizouzt/TrendRadar'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>热点新闻分析</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/1.4.1/html2canvas.min.js" integrity="sha512-BNaRQnYJYiPSqHHDb58B0yaPfCu+Wgds8Gp/gU33kqBtgNS4tSPHuGibyoeqMV/TJlSKda6FXzoEyYGjTe+vXA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<style>
* { box-sizing: border-box; }
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
margin: 0;
padding: 16px;
background: #fafafa;
color: #333;
line-height: 1.5;
}
.container {
max-width: 600px;
margin: 0 auto;
background: white;
border-radius: 12px;
overflow: hidden;
box-shadow: 0 2px 16px rgba(0,0,0,0.06);
}
.header {
background: linear-gradient(135deg, #7a72ff 0%, #3aafed 100%);
color: #fff;
padding: 32px 24px;
text-align: center;
position: relative;
}
.save-buttons {
position: absolute;
top: 16px;
right: 16px;
display: flex;
gap: 8px;
}
.save-btn {
background: rgba(255, 255, 255, 0.2);
border: 1px solid rgba(255, 255, 255, 0.3);
color: white;
padding: 8px 16px;
border-radius: 6px;
cursor: pointer;
font-size: 13px;
font-weight: 500;
transition: all 0.2s ease;
backdrop-filter: blur(10px);
white-space: nowrap;
}
.save-btn:hover {
background: rgba(255, 255, 255, 0.3);
border-color: rgba(255, 255, 255, 0.5);
transform: translateY(-1px);
}
.save-btn:active {
transform: translateY(0);
}
.save-btn:disabled {
opacity: 0.6;
cursor: not-allowed;
}
.header-title {
font-size: 22px;
font-weight: 700;
margin: 0 0 20px 0;
}
.header-info {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 16px;
font-size: 14px;
opacity: 0.95;
}
.info-item {
text-align: center;
}
.info-label {
display: block;
font-size: 12px;
opacity: 0.8;
margin-bottom: 4px;
}
.info-value {
font-weight: 600;
font-size: 16px;
}
.content {
padding: 24px;
}
.word-group {
margin-bottom: 40px;
}
.word-group:first-child {
margin-top: 0;
}
.word-header {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 20px;
padding-bottom: 8px;
border-bottom: 1px solid #f0f0f0;
}
.word-info {
display: flex;
align-items: center;
gap: 12px;
}
.word-name {
font-size: 17px;
font-weight: 600;
color: #1a1a1a;
}
.word-count {
color: #666;
font-size: 13px;
font-weight: 500;
}
.word-count.hot { color: #dc2626; font-weight: 600; }
.word-count.warm { color: #ea580c; font-weight: 600; }
.word-index {
color: #999;
font-size: 12px;
}
.news-item {
margin-bottom: 20px;
padding: 16px 0;
border-bottom: 1px solid #f5f5f5;
position: relative;
display: flex;
gap: 12px;
align-items: center;
}
.news-item:last-child {
border-bottom: none;
}
.news-item.new::after {
content: "NEW";
position: absolute;
top: 12px;
right: 0;
background: #fbbf24;
color: #92400e;
font-size: 9px;
font-weight: 700;
padding: 3px 6px;
border-radius: 4px;
letter-spacing: 0.5px;
}
.news-number {
color: #999;
font-size: 13px;
font-weight: 600;
min-width: 20px;
text-align: center;
flex-shrink: 0;
background: #f8f9fa;
border-radius: 50%;
width: 24px;
height: 24px;
display: flex;
align-items: center;
justify-content: center;
align-self: flex-start;
margin-top: 8px;
}
.news-content {
flex: 1;
min-width: 0;
padding-right: 40px;
}
.news-item.new .news-content {
padding-right: 50px;
}
.news-header {
display: flex;
align-items: center;
gap: 8px;
margin-bottom: 8px;
flex-wrap: wrap;
}
.source-name {
color: #666;
font-size: 12px;
font-weight: 500;
}
.rank-num {
color: #fff;
background: #6b7280;
font-size: 10px;
font-weight: 700;
padding: 2px 6px;
border-radius: 10px;
min-width: 18px;
text-align: center;
}
.rank-num.top { background: #dc2626; }
.rank-num.high { background: #ea580c; }
.time-info {
color: #999;
font-size: 11px;
}
.count-info {
color: #059669;
font-size: 11px;
font-weight: 500;
}
.news-title {
font-size: 15px;
line-height: 1.4;
color: #1a1a1a;
margin: 0;
}
.news-link {
color: #2563eb;
text-decoration: none;
}
.news-link:hover {
text-decoration: underline;
}
.news-link:visited {
color: #7c3aed;
}
.topic-trend-section {
margin-top: 40px;
padding-top: 24px;
border-top: 2px solid #f0f0f0;
}
.topic-trend-title {
color: #1a1a1a;
font-size: 16px;
font-weight: 600;
margin: 0 0 20px 0;
}
.viral-topic-item {
padding: 16px 0;
border-bottom: 1px solid #f5f5f5;
}
.viral-topic-item:last-child {
border-bottom: none;
}
.viral-topic-header {
display: flex;
align-items: center;
gap: 12px;
margin-bottom: 12px;
}
.viral-topic-keyword {
font-size: 16px;
font-weight: 600;
}
.topic-item {
display: flex;
align-items: center;
gap: 12px;
padding: 8px 0;
border-bottom: 1px solid #f9f9f9;
}
.topic-item:last-child {
border-bottom: none;
}
.viral-topic-stats {
font-size: 12px;
color: #666;
}
.viral-topic-stats .new { color: #dc2626; font-weight: bold; }
.viral-topic-stats .up { color: #f59e0b; font-weight: bold; }
.viral-topic-stats .level-high { color: #dc2626; font-weight: bold; }
.viral-topic-stats .level-mid { color: #f59e0b; font-weight: bold; }
.viral-sample-titles {
list-style: none;
padding-left: 16px;
margin: 0;
font-size: 13px;
}
.viral-sample-titles li {
color: #666;
padding: 4px 0;
position: relative;
}
.viral-sample-titles li::before { content: '▪'; position: absolute; left: -14px; color: #ccc; }
.new-section {
margin-top: 40px;
padding-top: 24px;
border-top: 2px solid #f0f0f0;
}
.new-section-title {
color: #1a1a1a;
font-size: 16px;
font-weight: 600;
margin: 0 0 20px 0;
}
.new-source-group {
margin-bottom: 24px;
}
.new-source-title {
color: #666;
font-size: 13px;
font-weight: 500;
margin: 0 0 12px 0;
padding-bottom: 6px;
border-bottom: 1px solid #f5f5f5;
}
.new-item {
display: flex;
align-items: center;
gap: 12px;
padding: 8px 0;
border-bottom: 1px solid #f9f9f9;
}
.new-item:last-child {
border-bottom: none;
}
.new-item-number {
color: #999;
font-size: 12px;
font-weight: 600;
min-width: 18px;
text-align: center;
flex-shrink: 0;
background: #f8f9fa;
border-radius: 50%;
width: 20px;
height: 20px;
display: flex;
align-items: center;
justify-content: center;
}
.new-item-rank {
color: #fff;
background: #6b7280;
font-size: 10px;
font-weight: 700;
padding: 3px 6px;
border-radius: 8px;
min-width: 20px;
text-align: center;
flex-shrink: 0;
}
.new-item-rank.top { background: #dc2626; }
.new-item-rank.high { background: #ea580c; }
.new-item-content {
flex: 1;
min-width: 0;
}
.new-item-title {
font-size: 14px;
line-height: 1.4;
color: #1a1a1a;
margin: 0;
}
.error-section {
background: #fef2f2;
border: 1px solid #fecaca;
border-radius: 8px;
padding: 16px;
margin-bottom: 24px;
}
.error-title {
color: #dc2626;
font-size: 14px;
font-weight: 600;
margin: 0 0 8px 0;
}
.error-list {
list-style: none;
padding: 0;
margin: 0;
}
.error-item {
color: #991b1b;
font-size: 13px;
padding: 2px 0;
font-family: 'SF Mono', Consolas, monospace;
}
.footer {
margin-top: 32px;
padding: 20px 24px;
background: #f8f9fa;
border-top: 1px solid #e5e7eb;
text-align: center;
}
.footer-content {
font-size: 13px;
color: #6b7280;
line-height: 1.6;
}
.footer-link {
color: #4f46e5;
text-decoration: none;
font-weight: 500;
transition: color 0.2s ease;
}
.footer-link:hover {
color: #7c3aed;
text-decoration: underline;
}
.project-name {
font-weight: 600;
color: #374151;
}
@media (max-width: 480px) {
body { padding: 12px; }
.header { padding: 24px 20px; }
.content { padding: 20px; }
.footer { padding: 16px 20px; }
.header-info { grid-template-columns: 1fr; gap: 12px; }
.news-header { gap: 6px; }
.news-content { padding-right: 45px; }
.news-item { gap: 8px; }
.new-item { gap: 8px; }
.news-number { width: 20px; height: 20px; font-size: 12px; }
.save-buttons {
position: static;
margin-bottom: 16px;
display: flex;
gap: 8px;
justify-content: center;
flex-direction: column;
width: 100%;
}
.save-btn {
width: 100%;
}
}
</style>
</head>
<body>
<div class="container">
<div class="header">
<div class="save-buttons">
<button class="save-btn" onclick="saveAsImage()">保存为图片</button>
<button class="save-btn" onclick="saveAsMultipleImages()">分段保存</button>
</div>
<div class="header-title">热点新闻分析</div>
<div class="header-info">
<div class="info-item">
<span class="info-label">报告类型</span>
<span class="info-value">实时分析</span>
</div>
<div class="info-item">
<span class="info-label">新闻总数</span>
<span class="info-value">102 条</span>
</div>
<div class="info-item">
<span class="info-label">热点新闻</span>
<span class="info-value">5 条</span>
</div>
<div class="info-item">
<span class="info-label">生成时间</span>
<span class="info-value">12-31 14:19</span>
</div>
</div>
</div>
<div class="content">
<div class="word-group">
<div class="word-header">
<div class="word-info">
<div class="word-name">ai 人工智能</div>
<div class="word-count ">2 条</div>
</div>
<div class="word-index">1/4</div>
</div>
<div class="news-item new">
<div class="news-number">1</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">今日头条</span><span class="rank-num ">15</span><span class="time-info">14时19分</span>
</div>
<div class="news-title"><a href="https://www.toutiao.com/trending/7589793585539186694/" target="_blank" class="news-link">向低质AI内容说不</a>
</div>
</div>
</div>
<div class="news-item new">
<div class="news-number">2</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">bilibili 热搜</span><span class="rank-num ">19</span><span class="time-info">14时19分</span>
</div>
<div class="news-title"><a href="https://search.bilibili.com/all?keyword=UP%E4%B8%BB%E4%B8%89%E4%B8%AA%E6%9C%88%E6%89%93%E9%80%A0AI%E7%94%B7%E5%9B%A2" target="_blank" class="news-link">UP主三个月打造AI男团</a>
</div>
</div>
</div>
</div>
<div class="word-group">
<div class="word-header">
<div class="word-info">
<div class="word-name">谐波器 机器人</div>
<div class="word-count ">1 条</div>
</div>
<div class="word-index">2/4</div>
</div>
<div class="news-item new">
<div class="news-number">1</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">财联社热门</span><span class="rank-num ">12</span><span class="time-info">14时19分</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2244856" target="_blank" class="news-link">商业航天高位回调,机器人概念强势崛起,能否接棒领涨?</a>
</div>
</div>
</div>
</div>
<div class="word-group">
<div class="word-header">
<div class="word-info">
<div class="word-name">深海 低空经济</div>
<div class="word-count ">1 条</div>
</div>
<div class="word-index">3/4</div>
</div>
<div class="news-item new">
<div class="news-number">1</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">财联社热门</span><span class="rank-num top">2</span><span class="time-info">14时19分</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2244904" target="_blank" class="news-link">国家发改委答财联社:将按照先载货后载人等原则 有序拓展低空经济应用场景</a>
</div>
</div>
</div>
</div>
<div class="word-group">
<div class="word-header">
<div class="word-info">
<div class="word-name">航天 飞船 航空</div>
<div class="word-count ">1 条</div>
</div>
<div class="word-index">4/4</div>
</div>
<div class="news-item new">
<div class="news-number">1</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">财联社热门</span><span class="rank-num ">11</span><span class="time-info">14时19分</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2244792" target="_blank" class="news-link">海南:抢抓商业航天发展战略机遇期狠抓重大牵引性项目建设</a>
</div>
</div>
</div>
</div>
<div class="topic-trend-section">
<div class="topic-trend-title">🔥 异常热度话题</div>
<div class="viral-topic-item">
<div class="viral-topic-header">
<div class="viral-topic-keyword">国补</div>
<div class="viral-topic-stats">
6条提及 · <span class="up">↑3%</span> · <span class="level-mid">中热度</span>
</div>
</div>
<ul class="viral-sample-titles"><li>2026年“国补”政策来了</li><li>明年汽车“国补”调整为按比例补贴:购新能源车最高补12%</li><li>【早报】2026年“国补”政策来了;汽车以旧换新补贴实施细则出炉</li></ul></div>
<div class="viral-topic-item">
<div class="viral-topic-header">
<div class="viral-topic-keyword">两部门</div>
<div class="viral-topic-stats">
3条提及 · <span class="up">↑3%</span> · <span class="level-mid">中热度</span>
</div>
</div>
<ul class="viral-sample-titles"><li>两部门:严肃处理“先涨后补”等行为</li><li>两部门:严肃处理先涨后补等行为</li><li>两部门:个人将购买2年以上(含2年)的住房对外销售的 免征增值税</li></ul></div></div>
<div class="topic-trend-section">
<div class="topic-trend-title">✨ 关注话题趋势</div>
<div class="word-group">
<div class="word-header">
<div class="word-info">
<div class="word-name">新质生产力</div>
<div class="word-count">1 条提及 <span style="color: #dc2626;">(↑0.00%)</span></div>
</div>
</div>
<div class="news-item">
<div class="news-content" style="padding-right: 0;">
<img src="data:image/png;base64,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" alt="新质生产力 趋势图" style="width: 100%; height: auto;" />
</div>
</div>
</div></div>
</div>
<div class="footer">
<div class="footer-content">
</div>
</div>
</div>
<script>
async function saveAsImage() {
const button = event.target;
const originalText = button.textContent;
try {
button.textContent = '生成中...';
button.disabled = true;
window.scrollTo(0, 0);
// 等待页面稳定
await new Promise(resolve => setTimeout(resolve, 200));
// 截图前隐藏按钮
const buttons = document.querySelector('.save-buttons');
buttons.style.visibility = 'hidden';
// 再次等待确保按钮完全隐藏
await new Promise(resolve => setTimeout(resolve, 100));
const container = document.querySelector('.container');
const canvas = await html2canvas(container, {
backgroundColor: '#ffffff',
scale: 1.5,
useCORS: true,
allowTaint: false,
imageTimeout: 10000,
removeContainer: false,
foreignObjectRendering: false,
logging: false,
width: container.offsetWidth,
height: container.offsetHeight,
x: 0,
y: 0,
scrollX: 0,
scrollY: 0,
windowWidth: window.innerWidth,
windowHeight: window.innerHeight
});
buttons.style.visibility = 'visible';
const link = document.createElement('a');
const now = new Date();
const filename = `TrendRadar_热点新闻分析_${now.getFullYear()}${String(now.getMonth() + 1).padStart(2, '0')}${String(now.getDate()).padStart(2, '0')}_${String(now.getHours()).padStart(2, '0')}${String(now.getMinutes()).padStart(2, '0')}.png`;
link.download = filename;
link.href = canvas.toDataURL('image/png', 1.0);
// 触发下载
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
button.textContent = '保存成功!';
setTimeout(() => {
button.textContent = originalText;
button.disabled = false;
}, 2000);
} catch (error) {
const buttons = document.querySelector('.save-buttons');
buttons.style.visibility = 'visible';
button.textContent = '保存失败';
setTimeout(() => {
button.textContent = originalText;
button.disabled = false;
}, 2000);
}
}
async function saveAsMultipleImages() {
const button = event.target;
const originalText = button.textContent;
const container = document.querySelector('.container');
const scale = 1.5;
const maxHeight = 5000 / scale;
try {
button.textContent = '分析中...';
button.disabled = true;
// 获取所有可能的分割元素
const newsItems = Array.from(container.querySelectorAll('.news-item'));
const wordGroups = Array.from(container.querySelectorAll('.word-group'));
const newSection = container.querySelector('.new-section');
const errorSection = container.querySelector('.error-section');
const header = container.querySelector('.header');
const footer = container.querySelector('.footer');
// 计算元素位置和高度
const containerRect = container.getBoundingClientRect();
const elements = [];
// 添加header作为必须包含的元素
elements.push({
type: 'header',
element: header,
top: 0,
bottom: header.offsetHeight,
height: header.offsetHeight
});
// 添加错误信息(如果存在)
if (errorSection) {
const rect = errorSection.getBoundingClientRect();
elements.push({
type: 'error',
element: errorSection,
top: rect.top - containerRect.top,
bottom: rect.bottom - containerRect.top,
height: rect.height
});
}
// 按word-group分组处理news-item
wordGroups.forEach(group => {
const groupRect = group.getBoundingClientRect();
const groupNewsItems = group.querySelectorAll('.news-item');
// 添加word-group的header部分
const wordHeader = group.querySelector('.word-header');
if (wordHeader) {
const headerRect = wordHeader.getBoundingClientRect();
elements.push({
type: 'word-header',
element: wordHeader,
parent: group,
top: groupRect.top - containerRect.top,
bottom: headerRect.bottom - containerRect.top,
height: headerRect.height
});
}
// 添加每个news-item
groupNewsItems.forEach(item => {
const rect = item.getBoundingClientRect();
elements.push({
type: 'news-item',
element: item,
parent: group,
top: rect.top - containerRect.top,
bottom: rect.bottom - containerRect.top,
height: rect.height
});
});
});
// 添加新增新闻部分
if (newSection) {
const rect = newSection.getBoundingClientRect();
elements.push({
type: 'new-section',
element: newSection,
top: rect.top - containerRect.top,
bottom: rect.bottom - containerRect.top,
height: rect.height
});
}
// 添加footer
const footerRect = footer.getBoundingClientRect();
elements.push({
type: 'footer',
element: footer,
top: footerRect.top - containerRect.top,
bottom: footerRect.bottom - containerRect.top,
height: footer.offsetHeight
});
// 计算分割点
const segments = [];
let currentSegment = { start: 0, end: 0, height: 0, includeHeader: true };
let headerHeight = header.offsetHeight;
currentSegment.height = headerHeight;
for (let i = 1; i < elements.length; i++) {
const element = elements[i];
const potentialHeight = element.bottom - currentSegment.start;
// 检查是否需要创建新分段
if (potentialHeight > maxHeight && currentSegment.height > headerHeight) {
// 在前一个元素结束处分割
currentSegment.end = elements[i - 1].bottom;
segments.push(currentSegment);
// 开始新分段
currentSegment = {
start: currentSegment.end,
end: 0,
height: element.bottom - currentSegment.end,
includeHeader: false
};
} else {
currentSegment.height = potentialHeight;
currentSegment.end = element.bottom;
}
}
// 添加最后一个分段
if (currentSegment.height > 0) {
currentSegment.end = container.offsetHeight;
segments.push(currentSegment);
}
button.textContent = `生成中 (0/${segments.length})...`;
// 隐藏保存按钮
const buttons = document.querySelector('.save-buttons');
buttons.style.visibility = 'hidden';
// 为每个分段生成图片
const images = [];
for (let i = 0; i < segments.length; i++) {
const segment = segments[i];
button.textContent = `生成中 (${i + 1}/${segments.length})...`;
// 创建临时容器用于截图
const tempContainer = document.createElement('div');
tempContainer.style.cssText = `
position: absolute;
left: -9999px;
top: 0;
width: ${container.offsetWidth}px;
background: white;
`;
tempContainer.className = 'container';
// 克隆容器内容
const clonedContainer = container.cloneNode(true);
// 移除克隆内容中的保存按钮
const clonedButtons = clonedContainer.querySelector('.save-buttons');
if (clonedButtons) {
clonedButtons.style.display = 'none';
}
tempContainer.appendChild(clonedContainer);
document.body.appendChild(tempContainer);
// 等待DOM更新
await new Promise(resolve => setTimeout(resolve, 100));
// 使用html2canvas截取特定区域
const canvas = await html2canvas(clonedContainer, {
backgroundColor: '#ffffff',
scale: scale,
useCORS: true,
allowTaint: false,
imageTimeout: 10000,
logging: false,
width: container.offsetWidth,
height: segment.end - segment.start,
x: 0,
y: segment.start,
windowWidth: window.innerWidth,
windowHeight: window.innerHeight
});
images.push(canvas.toDataURL('image/png', 1.0));
// 清理临时容器
document.body.removeChild(tempContainer);
}
// 恢复按钮显示
buttons.style.visibility = 'visible';
// 下载所有图片
const now = new Date();
const baseFilename = `TrendRadar_热点新闻分析_${now.getFullYear()}${String(now.getMonth() + 1).padStart(2, '0')}${String(now.getDate()).padStart(2, '0')}_${String(now.getHours()).padStart(2, '0')}${String(now.getMinutes()).padStart(2, '0')}`;
for (let i = 0; i < images.length; i++) {
const link = document.createElement('a');
link.download = `${baseFilename}_part${i + 1}.png`;
link.href = images[i];
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
// 延迟一下避免浏览器阻止多个下载
await new Promise(resolve => setTimeout(resolve, 100));
}
button.textContent = `已保存 ${segments.length} 张图片!`;
setTimeout(() => {
button.textContent = originalText;
button.disabled = false;
}, 2000);
} catch (error) {
console.error('分段保存失败:', error);
const buttons = document.querySelector('.save-buttons');
buttons.style.visibility = 'visible';
button.textContent = '保存失败';
setTimeout(() => {
button.textContent = originalText;
button.disabled = false;
}, 2000);
}
}
document.addEventListener('DOMContentLoaded', function() {
window.scrollTo(0, 0);
});
</script>
</body>
</html>