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">144 条</span>
</div>
<div class="info-item">
<span class="info-label">热点新闻</span>
<span class="info-value">6 条</span>
</div>
<div class="info-item">
<span class="info-label">生成时间</span>
<span class="info-value">02-14 14:38</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 top">1</span><span class="time-info">14时38分</span>
</div>
<div class="news-title"><a href="https://tieba.baidu.com/hottopic/browse/hottopic?topic_id=28350684&amp;topic_name=AI%E6%97%A0%E8%A7%86%E7%89%88%E6%9D%83%2C%E8%80%81%E5%A4%96%E9%9B%86%E7%81%AB%E5%9B%B4%E6%AE%B4" 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">知乎</span><span class="rank-num ">6</span><span class="time-info">14时38分</span>
</div>
<div class="news-title"><a href="https://www.zhihu.com/question/2005725246167147371" target="_blank" class="news-link">杭州一创业者开 1 人公司,团队完全由 AI 智能体组成,月入 200 万,真能挣这么多钱吗?</a>
</div>
</div>
</div>
</div>
<div class="word-group">
<div class="word-header">
<div class="word-info">
<div class="word-name">股票 A股 上证 深证</div>
<div class="word-count ">2 条</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 top">2</span><span class="time-info">14时38分</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2289993" target="_blank" class="news-link">本周披露并购重组进展的A股名单一览 1200亿算力概念股在列</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">财联社热门</span><span class="rank-num ">7</span><span class="time-info">14时38分</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2290257" target="_blank" class="news-link">A股蛇年十大牛股盘点:上纬新材以超25倍涨幅夺魁 商业航天龙头赫然在列</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 ">12</span><span class="time-info">14时38分</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2290089" target="_blank" class="news-link">SpaceX据悉拟采用双重股权结构进行IPO 马斯克或掌“超级投票权”</a>
</div>
</div>
</div>
</div>
<div class="word-group">
<div class="word-header">
<div class="word-info">
<div class="word-name">谷歌 google</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 ">9</span><span class="time-info">14时38分</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2290186" target="_blank" class="news-link">1月市场份额再度攀升!Grok和谷歌Gemini瓜分ChatGPT丢失的市场</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">21岁孙子97岁奶奶都觉得对方很好带</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>21岁孙子97岁奶奶都觉得对方很好带</li><li>21岁孙子97岁奶奶都觉得对方很好带</li><li>21岁孙子97岁奶奶都觉得对方很好带</li></ul></div>
<div class="viral-topic-item">
<div class="viral-topic-header">
<div class="viral-topic-keyword">Seedance2</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>Seedance2.0展示中国AI潜力</li><li>Seedance2.0火到海外出注册教程</li><li>如何看待美国电影协会警告 Seedance2.0 滥用受版权保护作品创作,要求停止侵权?</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">3 条提及 <span style="color: #059669;">(↓100.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>