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": "以色列称自卫反击,半岛台称屠杀平民,焦点:伤亡定性"
}
]
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。