Krackedmaps
FreeMaintainedThemeable SVG maps with zero runtime dependencies: Malaysia's 16 regions and 159 districts, a rotating globe, country maps. Library, CLI, MCP server, plain SVG/
About
Themeable SVG maps with zero runtime dependencies: Malaysia's 16 regions and 159 districts, a rotating globe, country maps. Library, CLI, MCP server, plain SVG/GeoJSON.
README

KrackedMaps
Themeable SVG maps with zero runtime dependencies. Malaysia's 16 regions and 159 districts from one shared projection, plus a rotating globe and country maps. Use it as a component, a CLI, an MCP server, or plain SVG and GeoJSON.
Customize & export · Demo · Docs · Playground
Install
npm i krackedmaps
import { createMalaysiaMap } from "krackedmaps";
import "krackedmaps/css";
const map = createMalaysiaMap("#map", { theme: "blueprint" });
map.on("select", (slug) => console.log("selected", slug));
map.setData({ penang: 1.8, sabah: 3.4 }); // choropleth by slug
map.addPin({ lng: 101.7117, lat: 3.1578, label: "KLCC" });
Click a state to drill into its districts, hover a district for its name, Esc steps
back out. Make as many instances as you like; destroy() tears each one down.
Server-side, with no DOM:
import { renderSVG, project } from "krackedmaps";
const svg = renderSVG({ theme: "batik", withDistricts: true }); // a string
project(101.7117, 3.1578); // → { x, y }
Data only: import { STATES, DISTRICTS, PROJECTION } from "krackedmaps/data".
From the terminal
npx krackedmaps svg --theme blueprint --districts > malaysia.svg
npx krackedmaps geojson --districts > daerah.geojson
npx krackedmaps react --theme batik > MalaysiaMap.jsx
npx krackedmaps project 101.7117 3.1578 # KLCC → {"x":…,"y":…}
npx krackedmaps globe react --theme blueprint > Globe.jsx
npx krackedmaps --help
Inside Claude
claude mcp add krackedmaps -- npx -y krackedmaps mcp
Then ask: "give me the Malaysia map as a blueprint SVG with districts", or "add a rotating globe hero to this app". The MCP server exposes the SVG, GeoJSON, projection, React and embed builders as tools.
Globe and countries
import { createGlobe, WORLD_COUNTRIES } from "krackedmaps/globe";
import "krackedmaps/globe.css";
const globe = createGlobe("#globe", { countries: WORLD_COUNTRIES, theme: "blueprint" });
Country maps beyond Malaysia are served by the hosted site
(npx krackedmaps country japan embed); see "What is open" below.
Options
| option | default | description |
|---|---|---|
theme |
"blueprint" |
mono · flat-dark · light · blueprint · batik, or { cssVar: value } |
panel / tooltip |
true |
built-in info panel / hover tooltip |
showDistricts |
true |
district drill-down layer |
interactive / keyboard |
true |
pointer, click and Esc handlers (scoped, never global) |
zoom |
true |
zoom to a state on select |
labels |
false |
start with state labels shown |
initialState |
null |
slug to select after build |
meta / colors / renderPanel |
per-state info, choropleth ramp, custom panel |
Methods: select · focus · drillInto · addPin · setData · setTheme ·
toggleLabels · on / off (select, hover, drill) · destroy.
Data
Malaysia boundaries are geoBoundaries gbOpen (CC BY): ADM1 for the 16 regions, ADM2
for the 159 districts. World outlines are Natural Earth (public domain). Keep one
attribution line when you redistribute exports; the exporter writes it into the SVG's
<metadata>. Details and citation: DATA-LICENSES.md.
What is open, what is hosted
This package is the engine and the Malaysia data, MIT. maps.krackeddevs.com adds the Poster Studio and the per-country atlas tiers, some of whose sources carry stricter licences; those live in a separate repo and are served, not redistributed.
Contributing
Data corrections with a source, new themes, and API improvements: see CONTRIBUTING.md.
License
MIT © KrackedDevs
Install Krackedmaps in Claude Desktop, Claude Code & Cursor
unyly install krackedmapsInstalls into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.
First time? Get the CLI: curl -fsSL https://unyly.org/install | sh
Or configure manually
Run in your terminal:
claude mcp add krackedmaps -- npx -y krackedmapsStep-by-step: how to install Krackedmaps
FAQ
Is Krackedmaps MCP free?
Yes, Krackedmaps MCP is free — one-click install via Unyly at no cost.
Does Krackedmaps need an API key?
No, Krackedmaps runs without API keys or environment variables.
Is Krackedmaps hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Krackedmaps in Claude Desktop, Claude Code or Cursor?
Open Krackedmaps on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectAmap Maps Mcp Server
MCP server for using the AMap Maps API
by duxiaohuiSupabase
Database, auth and storage
by SupabaseEverything
Reference / test server with prompts, resources, and tools.
Git
Tools to read, search, and manipulate Git repositories.
Sequential Thinking
Dynamic and reflective problem-solving through thought sequences.
Time
Time and timezone conversion capabilities.
Compare Krackedmaps with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
