Back to Browse

Mapcast MCP Server

by 21prnv
Developer ToolsLow Risk10.0MCP RegistryLocal
Free

Server data from the Official MCP Registry

Animated map videos from a prompt: globe dives, country highlights, flags, flights and data maps.

About

Animated map videos from a prompt: globe dives, country highlights, flags, flights and data maps.

Security Report

10.0
Low Risk10.0Low Risk

Valid MCP server (2 strong, 4 medium validity signals). No known CVEs in dependencies. Package registry verified. Imported from the Official MCP Registry.

8 files analyzed · 1 issue found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

file_system

Check that this permission is expected for this type of plugin.

HTTP Network Access

Connects to external APIs or services over the internet.

env_vars

Check that this permission is expected for this type of plugin.

Shell Command Execution

Runs commands on your machine. Be cautious — only use if you trust this plugin.

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-21prnv-mapcast": {
      "args": [
        "-y",
        "mapcast"
      ],
      "command": "npx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

mapcast

Animated map videos for explainers, documentaries and Shorts, from one line of JSON. Highlight any country, state or province on real satellite imagery or an old paper map: tracing borders, flags, glow, labels, capitals, data colours, a 3D globe dive and camera flights between countries. Free, open source, and built for AI agents to drive.

npm licence: MIT

mapcast showcase: globe dive into India, France flag, paper map of Italy, unemployment data map, flight to Turkey

Full-quality version: docs/showcase.mp4

npx mapcast quick India -o india.mp4

That is the whole setup. The first run downloads Chromium and map data once (both cached); videos also need ffmpeg.

Ask your AI for it

mapcast is made to be driven by AI tools: you describe the map, the agent writes the scene, mapcast renders it.

"Make a YouTube Short that spins the globe and lands on Brazil with its flag." "Old parchment map of Turkey, zooming in, with Istanbul marked." "Colour these countries by unemployment: Spain 11.4, Greece 9.8, Germany 3.4."

Claude Code (skill and MCP server in one install):

/plugin marketplace add 21prnv/mapcast
/plugin install mapcast@mapcast

Claude Desktop, Cursor, Windsurf, Codex or any MCP client: add this to the client's MCP config.

{
  "mcpServers": {
    "mapcast": { "command": "npx", "args": ["-y", "mapcast", "mcp"] }
  }
}

The server offers render_map (saves the video or image and returns a preview of the final frame, so the agent can check its work) and preview_map (one frame, to check a scene before rendering). Every option is described in the tool schema.

Agents that read SKILL.md skills: npx skills add 21prnv/mapcast. The skill is in skills/mapcast, with 27 worked request-to-scene examples.

What it can do

Gallery: globe, India, France flag, paper Italy, data map, Turkey

  • Styles: colour tint that keeps the terrain visible, spotlight (rest of the world turns grey), outline, or the country's flag laid over its land.
  • Basemaps: NASA Blue Marble and Sentinel-2 satellite imagery, or an old parchment map with engraved coasts.
  • Cameras: slow push-in, zoom in from a wide view, dive from a spinning 3D globe, fly from country to country.
  • Places: every country by name or ISO code, plus 4,500 states and provinces ("California", "IN-MH"), with capitals or any city marked.
  • Data maps: colour countries by a number with a legend, with names and values on the map.
  • Formats: MP4, GIF, PNG, JPG in 16:9, 9:16, 1:1 or 4:5.
  • Disputed borders: drawn the way the highlighted country officially draws them, or a neutral view on request.

Command line

npx mapcast quick "United States" --style highlight --color yellow -o usa.png
npx mapcast quick France --style flag -o france.mp4
npx mapcast quick Brazil --camera globe -o brazil.mp4          # dive in from a spinning Earth
npx mapcast quick India France Japan --camera fly -o tour.mp4   # fly from country to country
npx mapcast quick Italy --basemap paper -o italy.mp4

npx mapcast render scene.json -o out.mp4        # any scene; .mp4, .gif, .png or .jpg
npx mapcast render scene.json -o out.png --at 1.2
cat scene.json | npx mapcast render - -o out.gif
npx mapcast schema                              # the scene format as JSON Schema
npx mapcast mcp                                 # MCP server on stdio

Every file in examples/ renders as-is.

Scene format

{
  "aspect": "16:9",
  "duration": 5,
  "camera": "push-in",
  "highlights": [
    { "country": "India", "style": "solid", "color": "#c8102e", "label": "INDIA" }
  ]
}
FieldValuesDefault
aspect16:9, 9:16, 1:1, 4:5 (or set width/height)16:9
durationseconds5 (7 for globe, 1 + 3 per country for fly)
fpsframes per second30
camerapush-in, zoom-in, globe (3D Earth dive), fly (country to country), static, or { "move", "fill", "from" }push-in
basemapsatellite, bluemarble, sentinel, paper (old parchment map)satellite
povauto (the country's own official borders), default, or a code like ind, chn, pakauto
effects.gradenatural, muted, mononatural
effects.vignette0 to 10.45
effects.blur0 to 1: soft-focus edges, like a camera lens0
effects.gridtrue or { "step", "color", "opacity" }: lat/long grid over the sea onlyoff
effects.borderstrue: thin borders of neighbouring countrieson for paper and states
labelAnimdefault label animation for every highlightrise

Each highlight:

FieldValuesDefault
countryname ("India") or ISO code ("IN", "IND")country or region required
regiona state or province: "California", "Bavaria", "US-CA", "IN-MH"
stylesolid (tinted fill), highlight (rest of the world goes grey), outline, flag (the country's flag over the terrain)solid
colorany CSS colour or red, yellow, blue, ...a distinct colour per country
labeltext, or false for nonethe country name
border{ "color", "width", "glow" } or falsewhite, glowing
labelAnimrise, type (typewriter), spread (letters close in), slide, poprise
labelSizemultiplier on the automatic label size, e.g. 0.7 or 1.31
labelFontsans, serif, or any font namesans (serif on paper)
capitaltrue for the capital (a state's own capital for region), or a city name like "Mumbai"off
startseconds when this country starts animatingstaggered automatically

Data maps

Colour countries by a number, with a legend:

{
  "data": {
    "title": "GDP 2024 (trillion US$)",
    "prefix": "$",
    "unit": "T",
    "scheme": "heat",
    "values": { "India": 3.9, "China": 18.7, "Japan": 4.1 }
  }
}

scheme is one of reds, blues, greens, heat, purples, diverging, or a list of colours. Set "labels" to "name", "value" (the number with prefix/unit) or "both" to label each country, and min/max to fix the colour range. A highlight's label can have a second line: "INDIA\n1.4 BILLION".

How it works

A scene is resolved against Natural Earth borders, the imagery tiles the camera path needs are fetched and cached, and a headless Chromium draws each frame on a canvas (WebGL for the globe). Frames are piped to ffmpeg. A 5 second 1080p clip takes about 15 seconds on a laptop.

Credits and licence

MIT. Map data, imagery and font licences are in NOTICE.md. Satellite imagery needs a credit line wherever you publish; mapcast prints the exact line after every render.

Contributions are welcome: see CONTRIBUTING.md.

M8ven Score

Reviews

No reviews yet

Be the first to review this server!