City Atlas 城市圖譜

Greater Hsinchu, Taiwan open data on a 125 m grid: crashes, buses, schools, flood. Read-only.

Should I use this

Quality & Safety

A
Description quality
72%
Schema completeness
99%
Naming quality
86%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (6)

  • LOWTool 'describe_metric' description lacks action verbin describe_metric
  • LOWTool 'rank' description lacks action verbin rank
  • LOWTool 'need_ranking' description lacks action verbin need_ranking
  • LOWTool 'overlay_metrics' description lacks action verbin overlay_metrics
  • LOWTool 'compare_groups' description lacks action verbin compare_groups
  • LOWTool 'compare_change' description lacks action verbin compare_change

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~4,335Tokens (tool definitions)
~1.6 KBTypical response size
Significant attention impact (3.39% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "cityatlas": {
      "url": "https://mcp.cityatlas.tw/mcp"
    }
  }
}

Remote endpoints

https://mcp.cityatlas.tw/mcpstreamable-http

What it can do

Tool inventory

Tools (10)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢search_catalog(query, limit)

用關鍵字找城市圖譜的資料:11 大類 80 項資料,細到 159 條指標(139 條格網:事故、公車、人行道、淹水、樹…;20 條里 / 鄉鎮 / 縣市:里人口、長者與兒童、里所得…),加上 47 屆選舉與公投(投票率、得票率);公開版少 Google 街景判讀的 2 項 4 條,實際查得到 78 項、155 條:回代號、名稱、單位、年份、出處機關、是不是推估、涵蓋幾區。Search the indicator catalog by keyword (80 datasets in 11 categories, 159 indicators: 139 grid + 20 neighbourhood/district/county, plus 47 elections; this public server omits 4 Street-View-derived indicators, so 155 are searchable).

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "關鍵字,例:「事故 行人」「公車」「淹水」;空白分開的字要全部對上"
    },
    "limit": {
      "description": "最多幾條,預設 12",
      "type": "integer",
      "minimum": 1,
      "maximum": 40
    }
  },
  "required": [
    "query"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢describe_metric(metric)

一條資料的完整出處(機關、資料集、網址、取得日、檔案、對帳)、涵蓋哪些鄉鎮、統計、以及「可能在講別的事」的但書。Full provenance and caveats of one indicator.

Input Schema

{
  "type": "object",
  "properties": {
    "metric": {
      "type": "string",
      "description": "資料代號或名稱,例:crash_ped4 或「行人事故」"
    }
  },
  "required": [
    "metric"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rank(metric, unit, per, town, filters, ...)

某條資料在里或鄉鎮排前幾名(跟網站 07 同一套算法:先加總再除、人少的地方往平均拉)。可換算每千居民 / 每公里道路 / 路 + 人 + 店(只有事故)/ 任何能當分母的代號;可只看某個鄉鎮、可加篩條件。只回前 N 名。里層資料(長者占比、里所得、選舉投票率…)一個里一個數,不能換算、單位只能是里(人數可加到鄉鎮)。沒編里的範圍不進排名。Rank neighbourhoods or districts by an indicator, optionally normalised.

Input Schema

{
  "type": "object",
  "properties": {
    "metric": {
      "type": "string",
      "description": "資料代號或名稱,例:crash_ped4 或「行人事故」"
    },
    "unit": {
      "description": "單位:里(預設,neighbourhood)或 鄉鎮(district)",
      "type": "string",
      "enum": [
        "里",
        "鄉鎮"
      ]
    },
    "per": {
      "description": "換算:不除(預設)/ 每千居民 / 每公里道路 / 路 + 人 + 店 / 分母的資料代號",
      "type": "string"
    },
    "town": {
      "description": "只看一個鄉鎮,例:竹北、東區",
      "type": "string"
    },
    "filters": {
      "description": "篩條件:里 / 鄉鎮的值要符合,例:[{metric:'residents',op:'>',value:100}]",
      "maxItems": 4,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "metric": {
            "type": "string"
          },
          "op": {
            "type": "string",
            "enum": [
              ">",
              "<",
              ">=",
              "<="
            ]
          },
          "value": {
            "type": "number"
          }
        },
        "required": [
          "metric",
          "op",
          "value"
        ]
      }
    },
    "descending": {
      "description": "由高到低,預設 true",
      "type": "boolean"
    },
    "top": {
      "description": "前幾名,預設 10",
      "type": "integer",
      "minimum": 1,
      "maximum": 30
    },
    "shrink": {
      "description": "有換算時,人少的地方往平均拉;預設 true(同網站),false = 看原始的率",
      "type": "boolean"
    }
  },
  "required": [
    "metric"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢lookup_place(place, metrics)

給地址(例:竹北市光明六路 10 號)、里名(例:竹北市東平里)或鄉鎮名 → 那裡各項數字,以及在大新竹排第幾;查里名時另附里人口、所得、65 歲以上與 14 歲以下。地址只定位到 125 公尺的格(用我們自己的門牌檔比對,不送外部服務、不記錄)。Numbers for an address, neighbourhood or district.

Input Schema

{
  "type": "object",
  "properties": {
    "place": {
      "type": "string",
      "description": "地址、里名或鄉鎮名"
    },
    "metrics": {
      "description": "要看哪幾條(代號或名稱);不給就看常用的 10 條",
      "maxItems": 12,
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "place"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢need_ranking(unit, weights, town, top)

哪裡最多人被公車耽誤(被耽誤的人·分鐘、工作地、學校、公設的百分位加權);權重可帶,不帶用預設 60/20/10/10。Where the most people lose time on public transport compared with driving.

Input Schema

{
  "type": "object",
  "properties": {
    "unit": {
      "description": "單位:里(預設,neighbourhood)或 鄉鎮(district)",
      "type": "string",
      "enum": [
        "里",
        "鄉鎮"
      ]
    },
    "weights": {
      "description": "權重;不帶 = 60 / 20 / 10 / 10",
      "type": "object",
      "properties": {
        "pm": {
          "description": "被耽誤的人·分鐘",
          "type": "number",
          "minimum": 0
        },
        "jobs": {
          "description": "工作地",
          "type": "number",
          "minimum": 0
        },
        "school": {
          "description": "學校",
          "type": "number",
          "minimum": 0
        },
        "civic": {
          "description": "公共設施",
          "type": "number",
          "minimum": 0
        }
      }
    },
    "town": {
      "description": "只看一個鄉鎮,例:竹北、東區",
      "type": "string"
    },
    "top": {
      "description": "前幾名,預設 10",
      "type": "integer",
      "minimum": 1,
      "maximum": 30
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢overlay_metrics(metric_a, metric_b, per, unit, town, ...)

兩條資料疊起來看:A(可換算)與 B 各切三等分成九宮格,回各格有幾個里 / 鄉鎮,並列出「兩樣都高」的。例:事故(每千居民)高、人行道少的里。Which places are high on two indicators at once.

Input Schema

{
  "type": "object",
  "properties": {
    "metric_a": {
      "type": "string",
      "description": "資料 A(代號或名稱)"
    },
    "metric_b": {
      "type": "string",
      "description": "資料 B(代號或名稱)"
    },
    "per": {
      "description": "A 的換算:不除(預設)/ 每千居民 / 每公里道路 / 路 + 人 + 店",
      "type": "string"
    },
    "unit": {
      "description": "單位:里(預設,neighbourhood)或 鄉鎮(district)",
      "type": "string",
      "enum": [
        "里",
        "鄉鎮"
      ]
    },
    "town": {
      "description": "只看一個鄉鎮,例:竹北、東區",
      "type": "string"
    },
    "top": {
      "description": "前幾名,預設 10",
      "type": "integer",
      "minimum": 1,
      "maximum": 30
    },
    "shrink": {
      "description": "有換算時,人少的地方往平均拉;預設 true(同網站),false = 看原始的率",
      "type": "boolean"
    }
  },
  "required": [
    "metric_a",
    "metric_b"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢compare_groups(metric_a, has_b, per)

有 B 的格 vs 沒有 B 的格,A 差多少 —— 在居民 × 道路長度切成的 25 層裡各比一次(避免被市中心拉著走)。只描述,不做因果。Compare cells with vs without B, within strata of residents and road length.

Input Schema

{
  "type": "object",
  "properties": {
    "metric_a": {
      "type": "string",
      "description": "要比的東西 A(件數 / 長度這類能加總的),例:行人事故"
    },
    "has_b": {
      "type": "string",
      "description": "分組的依據 B:格裡有沒有,例:人行道、公車站"
    },
    "per": {
      "description": "A 的換算:不除(預設)/ 每千居民 / 每公里道路",
      "type": "string"
    }
  },
  "required": [
    "metric_a",
    "has_b"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢filter_cells(conditions, unit, town, top)

找出同時符合最多四個條件的 125 公尺格,回符合幾格、住了多少人,並照里 / 鄉鎮加總。例:離公車站超過 500 公尺、又住超過 100 人。Find grid cells that meet up to four conditions.

Input Schema

{
  "type": "object",
  "properties": {
    "conditions": {
      "minItems": 1,
      "maxItems": 4,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "metric": {
            "type": "string",
            "description": "資料代號或名稱,例:crash_ped4 或「行人事故」"
          },
          "op": {
            "type": "string",
            "enum": [
              ">",
              "<",
              ">=",
              "<=",
              "有",
              "沒有"
            ],
            "description": "比較方式;「有」= > 0、「沒有」= 0"
          },
          "value": {
            "description": "> < >= <= 才要給",
            "type": "number"
          }
        },
        "required": [
          "metric",
          "op"
        ]
      },
      "description": "每一格都要同時符合,例:[{metric:'stop_dist_m',op:'>',value:500}]"
    },
    "unit": {
      "description": "單位:里(預設,neighbourhood)或 鄉鎮(district)",
      "type": "string",
      "enum": [
        "里",
        "鄉鎮"
      ]
    },
    "town": {
      "description": "只看一個鄉鎮,例:竹北、東區",
      "type": "string"
    },
    "top": {
      "description": "前幾名,預設 10",
      "type": "integer",
      "minimum": 1,
      "maximum": 30
    }
  },
  "required": [
    "conditions"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢compare_change(topic, from, to, threshold, unit, ...)

兩個年份比,哪些里增加最多、減少最多(跟網站 07「看變化」同一套):里人口(107–114 年底,戶籍)、事故場數(111–114)、里所得中位數(111→112)、投票率(總統 / 立委不分區政黨票 / 立委區域 / 縣市長,年份照選舉目錄)。門檻自己填(增加幾人 / 件 / 萬元 / 個百分點以上才算增加很多);里界調整過、兩屆不是同一塊地的里不比、列出原因。只描述差多少,不做因果。Which neighbourhoods grew or shrank most between two years (population, crashes, income, turnout).

Input Schema

{
  "type": "object",
  "properties": {
    "topic": {
      "type": "string",
      "enum": [
        "population",
        "crash",
        "income",
        "turnout_president",
        "turnout_party_list",
        "turnout_legislator",
        "turnout_mayor"
      ],
      "description": "題目:population 里人口 / crash 事故 / income 里所得中位數 / turnout_president 總統投票率 / turnout_party_list 不分區政黨票投票率 / turnout_legislator 立委(區域)投票率 / turnout_mayor 縣市長投票率"
    },
    "from": {
      "description": "起始年份,例:107(人口)、111(事故)、2020(投票率,選舉年);不給 = 預設(投票率是最近兩屆)",
      "type": "string"
    },
    "to": {
      "description": "結束年份;不給 = 預設最後一年",
      "type": "string"
    },
    "threshold": {
      "description": "門檻:增加(或減少)幾人 / 件 / 萬元 / 個百分點以上才算「很多」;不給或給 0 = 預設(人口 500、事故里 5 鄉鎮 20、所得 5、投票率 3)",
      "type": "number",
      "minimum": 0
    },
    "unit": {
      "description": "單位:里(預設)或 鄉鎮;只有事故兩種都可以,其他只比里",
      "type": "string",
      "enum": [
        "里",
        "鄉鎮"
      ]
    },
    "top": {
      "description": "前幾名,預設 10",
      "type": "integer",
      "minimum": 1,
      "maximum": 30
    }
  },
  "required": [
    "topic"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢show_map(metric, per, town, unit, shrink)

把一條資料(或「需要度」)畫成里 / 鄉鎮的五級地圖,在對話裡直接顯示,可拖曳縮放、滑過看數字;換算同「排名」。畫不出來的 AI 會拿到一個能點開的網址(請轉給使用者)。Draw an indicator as an interactive choropleth map of neighbourhoods; chats that cannot render it get a link that opens the map in a browser (pass it on to the user).

Input Schema

{
  "type": "object",
  "properties": {
    "metric": {
      "type": "string",
      "description": "資料代號、名稱,或「需要度」"
    },
    "per": {
      "description": "換算:不除(預設)/ 每千居民 / 每公里道路 / 路 + 人 + 店 / 分母的資料代號",
      "type": "string"
    },
    "town": {
      "description": "地圖先對準這個鄉鎮(其他鄉鎮照樣畫)",
      "type": "string"
    },
    "unit": {
      "description": "單位:里(預設,neighbourhood)或 鄉鎮(district)",
      "type": "string",
      "enum": [
        "里",
        "鄉鎮"
      ]
    },
    "shrink": {
      "description": "有換算時,人少的地方往平均拉;預設 true(同網站),false = 看原始的率",
      "type": "boolean"
    }
  },
  "required": [
    "metric"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded10 tools