geo-globe

geo-globe

MCP server for generating interactive 3D Earth visualizations with annotated news from multiple global sources.

Category
Visit Server

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 源直连可达。

地理编码策略

  1. 预置城市字典优先(覆盖 80+ 地缘热点,含中/英/日文关键词)
  2. 两遍匹配:先跳过发布地 → 匹配事件地,无事件地再回退发布地
  3. geopy Nominatim 兜底(带 1 req/s 限速 + 缓存)
  4. 匹配不到 → 坐标置空(信息流仍显示,地球仪不标点)

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

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
Kagi MCP Server

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.

Official
Featured
Python
graphlit-mcp-server

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.

Official
Featured
TypeScript
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured