Mmj Palette

io.github.meta-taro由 GitHub 帳號 meta-taro 發布v0.1.0更新於 Oct 24, 2026

Build a MapLibre style from four anchor colours. Self-hosted maps, no API key.

已驗證STDIO僅桌面開發者工具媒體與設計

概覽

AI 產生的概覽

本機 MCP 伺服器,用四個錨點顏色產生 24 個角色的 MapLibre 配色,或可直接派送的自架地圖樣式 JSON。

可以做什麼
列出 24 個地圖配色角色及各自影響的地圖元素,並列出可當作起點的底圖樣式。依陸地、水域、文字與主題色等錨點顏色推導 24 角色配色,可選公園色並逐角色覆寫。在指定底圖樣式上產生完整樣式 JSON,可設定名稱與輸出路徑。顏色在 Oklab 空間混合,給定的錨點值原樣輸出。
適用情境
適合自架 MapLibre 地圖、想用少量品牌色產生自訂配色(配色檔或完整樣式 JSON)且不想使用 API 金鑰的情境。
執行需求
以本機程序透過 stdio 執行,需在儲存庫中用 pnpm 啟動(pnpm palette:mcp)。未宣告 API 金鑰、環境變數或請求標頭。README 說明未使用官方 MCP SDK。
安裝前請注意
產生的結果會寫入檔案或標準輸出,供你自行修改。請保留輸出中的 OpenStreetMap 署名與 mmj:generated 標記,不要把產生的檔案放進專案的 styles 目錄。TILES_URL 佔位符是刻意保留的。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Mmj Palette,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

@mmj-map/palette

導入者が自分の配色を完全に作るための道具。指し値(4〜5 色)から、 24 役割の配色、またはそのまま配れるスタイル JSON を作ります。

ここが吐いたものを styles/ へ置かないこと。 MMJ が配る 6 枚は手書きの作品のままです(D-002)。 この道具は導入者のためのものとして切り出してあります(D-021)。 出力には mmj:generated: true が入り、手書きと見分けが付きます。

使う

bash
# 24 役割の配色(<mmj-map palette-url> にそのまま渡せる)pnpm palette -- --land=#f7f9fb --water=#bfd7e8 --ink=#16202b --accent=#0a5fff
# そのまま配れるスタイルpnpm palette -- --land=#f7f9fb --water=#bfd7e8 --ink=#16202b --accent=#0a5fff \  --style --base=modern-light --name="Acme Maps" --out=acme.json
# 出したあとに確かめるpnpm style:check -- acme.json
引数意味
--land陸・背景の色(必須)
--water水域の色(必須)。陸の系列から独立させる
--ink文字の色(必須)。ラベルの一番濃い側
--accentテーマカラー(必須)。高速道路と駅の縁に乗る
--green公園・森。省くと陸から導く
--set=役割=色役割を手で上書きする。最後に勝つ。何度でも書ける
--style配色ではなくスタイルごと作る
--base土台のスタイル名。既定 modern-light(--style のとき)
--name作るスタイルの名前。既定 Custom
--out書き出し先。無ければ標準出力

何が導かれるか

指し値はそのまま出ます(作り変えません)。

役割どうなるか
background earth station-fill halo--land そのもの
water--water そのもの
label-city--ink そのもの
highway station--accent そのもの
landcover built paved buildings path road-* rail boundary label-station label-neighbourhood地色から文字色へ向かって濃くなる。細いものほど地色に近い
waterway label-water水から文字色へ向かって濃くなる
highway-casingaccent を文字色側へ寄せた色
green--green、無ければ陸から導く

混ぜるのは Oklab(sRGB のまま混ぜると階調が詰まり、色がくすむ)。依存は足していません(式だけ)。

好みで変わるところは式にしていない

明るい土台で道路を白抜きにしたい(地色より明るくする)ことがありますが、 ここでは地色から文字色へ向かって濃くしています。白抜きにしたいときは上書きしてください。

bash
pnpm palette -- ... --set=road-minor=#ffffff --set=road-medium=#ffffff --set=road-major=#ffffff

MCP の口

エージェントから直接作れます。

bash
pnpm palette:mcp

Claude Code への登録(.mcp.json / claude mcp add):

json
{  "mcpServers": {    "mmj-palette": {      "command": "pnpm",      "args": ["palette:mcp"],      "cwd": "<このリポジトリのパス>"    }  }}
道具何をするか
mmj_list_roles24 役割と、それぞれが地図の何を変えるかを返す
mmj_list_bases土台にできるスタイル名を返す
mmj_derive_palette指し値から 24 役割の配色を作る
mmj_build_style指し値からスタイル JSON を作る

SDK は入れていません。MCP の stdio は JSON-RPC 2.0 を改行区切りで流すだけで、 ここで要るのは initialize / tools/list / tools/call の 3 つです。 公式 SDK(@modelcontextprotocol/sdk 1.30.0・MIT)は express / hono / cors / jose / express-rate-limit まで引いてきて 99 パッケージ増えます(実測・2026-09-21)。 HTTP と SSE の輸送のためのもので、stdio 1 本には釣り合いません(baseline §1 / §12)。

代わりに、本物のプロセスを起動して本物の JSON-RPC を流すテストがあります (test/mcp.test.ts)。仕様が動いたらそこが落ちます。

使う側

html
<!-- 配色だけ渡す --><mmj-map tiles="..." style-url="/styles/modern-light.json" palette-url="./acme-palette.json"></mmj-map>
<!-- スタイルごと持つ --><mmj-map tiles="..." style-url="./acme.json"></mmj-map>

スタイルごと作った場合、metadata["mmj:anchors"].accent を部品が読むので、 accent 属性を書かなくても目印・まとまり・自前 POI の色が揃います。

出したものの扱い

  • あなたのものです。手で直して構いません(そのための形にしてあります)
  • __TILES_URL__ は残ります。焼き込むと配信先を変えられなくなるため
  • © OpenStreetMap contributors の帰属表示は残ります。消して配らないでください(ODbL)
  • mmj:generated: true が入ります。外さないでください(手書きの作品と混ざります)

來源:tools/palette/README.md,提交 e637bd1

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.1.0最新Oct 13, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分