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">92 条</span>
</div>
<div class="info-item">
<span class="info-label">热点新闻</span>
<span class="info-value">2 条</span>
</div>
<div class="info-item">
<span class="info-label">生成时间</span>
<span class="info-value">12-29 14:21</span>
</div>
</div>
</div>
<div class="content">
<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">1/2</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时21分</span>
</div>
<div class="news-title"><a href="https://wallstreetcn.com/articles/3762142" target="_blank" class="news-link">巴菲特谢幕、OpenAI搅动万亿市值、谷歌强势崛起......2025全球十大商业事件盘点</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 ">1 条</div>
</div>
<div class="word-index">2/2</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 ">10</span><span class="time-info">14时21分</span>
</div>
<div class="news-title"><a href="https://www.zhihu.com/question/1986751461766484039" target="_blank" class="news-link">2025 年上证指数重回 4000 点,A 股成交额突破 400 万亿元,A 股这一年都有哪些看点?</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">2025</div>
<div class="viral-topic-stats">
9条提及 · <span class="up">↑3%</span> · <span class="level-mid">中热度</span>
</div>
</div>
<ul class="viral-sample-titles"><li>东部战区开展“正义使命-2025”演习</li><li>东部战区开展“正义使命-2025”演习</li><li>东部战区位台湾海峡开展「正义使命 -2025」演习,重点演练夺取综合制权,这次行动有何特点?</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">4 条提及 <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>