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">104 条</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-12 08:54</span>
</div>
</div>
</div>
<div class="content">
<div class="word-group">
<div class="word-header">
<div class="word-info">
<div class="word-name">gemini deepmind openai</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 ">7</span><span class="time-info">08时54分</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2227243" target="_blank" class="news-link">GPT-5.2来了!OpenAI称其为“最强专业知识工作大模型”</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 ">14</span><span class="time-info">08时54分</span>
</div>
<div class="news-title"><a href="https://www.baidu.com/s?wd=OpenAI%E5%8F%91%E5%B8%83GPT%E6%9C%80%E6%96%B0%E5%8D%87%E7%BA%A7%E7%89%88%E6%9C%AC" target="_blank" class="news-link">OpenAI发布GPT最新升级版本</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 ">16</span><span class="time-info">08时54分</span>
</div>
<div class="news-title"><a href="https://m.thepaper.cn/newsDetail_forward_32153532" target="_blank" class="news-link">每天只睡6个小时的马斯克,经常在关于AI的噩梦中惊醒</a>
</div>
</div>
</div>
</div>
<div class="word-group">
<div class="word-header">
<div class="word-info">
<div class="word-name">ai 人工智能</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">08时54分</span>
</div>
<div class="news-title"><a href="https://wallstreetcn.com/articles/3761175" target="_blank" class="news-link">AI担忧打压纳指,甲骨文大跌11%,道指新高,白银大涨、与伦铜均创新高,人民币升破7.05</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">08时54分</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2227214" target="_blank" class="news-link">全球第二大私募股权巨头宣布推动部署1万台人形机器人</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">
3条提及 · <span class="up">↑3%</span> · <span class="level-mid">中热度</span>
</div>
</div>
<ul class="viral-sample-titles"><li>国台办:统一是台湾前途的唯一方向</li><li>国台办:统一是台湾前途的唯一方向</li><li>国台办:统一是台湾前途的唯一方向</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">2 条提及 <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>