geo-globe
MCP server for generating interactive 3D Earth visualizations with annotated news from multiple global sources.
README
GeoGlobe Intelligence — MCP + Skill 双核架构
MCP 插件(手脚) 抓新闻、存数据、生成 3D 地球 HTML Skill(大脑) 分析新闻、归纳因果、判断叙事冲突 输出 浏览器自动打开左右分屏 HTML — 左 3D 地球带光柱脉冲,右时间轴信息流瀑布
架构
用户指令
│
├──► MCP 插件 (server.py) ← 手脚:干活
│ ├─ generate_globe() 抓取+渲染+打开浏览器
│ ├─ fetch_raw_news() 纯数据获取(供Skill分析)
│ └─ render_with_annotations() 用分析结论重新渲染带标签的地球
│
└──► GeoGlobe Analyst Skill ← 大脑:思考
├─ 矛盾链追踪 比对同事件不同信源的措辞差异
├─ 叙事冲突标定 找出各方对"事件起因"解释的矛盾点
└─ 输出 "事件:A方称X,B方称Y,争议焦点为Z"
文件结构
mcp-geo-globe/
├── server.py # MCP 主程序(FastMCP + Three.js HTML 生成)
├── requirements.txt # fastmcp, requests, feedparser, geopy
├── README.md # 本文件
└── skills/
└── geoglobe-analyst/
└── SKILL.md # Skill 大脑(矛盾链追踪 + 叙事冲突标定)
数据源
| 视角 | 媒体 | 国内可达 |
|---|---|---|
| 中国 | CGTN / Xinhua / China Daily / 人民日报 | ✅ |
| 俄罗斯 | TASS 塔斯社 | ✅ |
| 日本 | NHK World | ✅ |
| 韩国 | Yonhap 韩联社 | ✅ |
| 伊朗 | IRNA 官方通讯社 | ✅ |
| 以色列 | Jerusalem Post | 🔸 |
| 拉美 | TeleSUR 南方电视台 | 🔸需代理 |
| 西方 | BBC / Al Jazeera / Reuters | 🔸需代理 |
13 个源并行抓取(ThreadPoolExecutor),国内 5 源直连可达。
地理编码策略
- 预置城市字典优先(覆盖 80+ 地缘热点,含中/英/日文关键词)
- 两遍匹配:先跳过发布地 → 匹配事件地,无事件地再回退发布地
- geopy Nominatim 兜底(带 1 req/s 限速 + 缓存)
- 匹配不到 → 坐标置空(信息流仍显示,地球仪不标点)
3D 地球技术栈
- Three.js 0.160(CDN importmap,免 token,比 Cesium 更轻量)
- 地球纹理:three-globe 蓝色弹珠(CDN),加载失败退化程序绘制
- 标记:彩色光柱按发布源着色(TASS红/IRNA绿/Yonhap蓝/CGTN橙/NHK紫)
- 光柱环形避让:同地多源自动环形散开,解决集中爆发地重叠
- 浮动分析标签:正面中央区显示,侧面渐淡,背面隐藏
- 大气光晕 + 星空背景 + 经纬网格
- OrbitControls:拖拽旋转 + 滚轮缩放
交互
- 点击右侧卡片 → 地球飞行到对应坐标
- 点击地球光柱 → 卡片高亮 + 滚动到视图
- 地球自转 + 光柱脉冲
安装与运行
1. 安装依赖
pip install fastmcp>=2.3.0 requests feedparser geopy
2. MCP 注册
将以下配置写入 ~/.workbuddy/mcp.json:
{
"mcpServers": {
"geo-globe": {
"command": "<python路径>",
"args": ["<项目路径>/server.py"]
}
}
}
在 WorkBuddy 连接器管理页点击「Trust」启用。
3. 安装 Skill
将 skills/geoglobe-analyst/ 目录复制到 {workspace}/.workbuddy/skills/。
3. 在 WorkBuddy 中使用
生成地球仪:
用 geo-globe 的 generate_globe 工具生成过去 24 小时的地球仪
获取数据并分析:
用 geo-globe 的 fetch_raw_news 获取原始数据,套用 GeoGlobe Analyst Skill 进行分析, 然后用 render_with_annotations 把分析结论以浮动标签形式标注在地球仪上
工具 API
| 工具 | 参数 | 返回 |
|---|---|---|
generate_globe |
hours_back=24, annotations="" |
{status, message, file, count} |
fetch_raw_news |
hours_back=24, keywords="" |
[{source,title,summary,link,time,lat,lon,place}] |
render_with_annotations |
news_data(str), annotations(str) |
{status, file, labels} |
annotations 格式
[
{
"title": "加沙冲突",
"lat": 31.5017,
"lon": 34.4668,
"place": "加沙",
"conflict": "以色列称自卫反击,半岛台称屠杀平民,焦点:伤亡定性"
}
]
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases