Spain Open Data

io.github.digvijaysingh-ai由 GitHub 帳號 digvijaysingh-ai 發布v0.1.4更新於 Oct 31, 2026

Market sizing, prices, rents, crime and locations in Spain from INE and other public data

已驗證Streamable HTTP可網頁執行位置與生活資料與分析商業與電商

概覽

AI 產生的概覽

以 INE、OpenStreetMap 等西班牙公開資料,回答西班牙各地的人口、所得、商業與市場問題,並附上來源與注意事項。

可以做什麼
  • 將地名解析為 INE 代碼與層級,從自治區一路到普查區
  • 查詢某地的人口、年齡結構、家戶、所得、不均度、租金與記錄犯罪資料
  • 依類別統計商家數量、以歐元估算市場規模,並依每家競爭商家的市場額對地區排名
  • 分析某地址周邊半徑或步行時間內的居民與商家,並提供價格區間建議
  • 繪製排名、所得、人口金字塔與人口趨勢的 PNG 圖表
  • 檢索西班牙國家開放資料目錄,並讀取 CSV 或 JSON 資料集的樣本列
適用情境
適合需要回答西班牙相關問題的情境:地方人口與所得、某類商業的競爭與市場規模、選址、租金、犯罪率,或尋找官方開放資料集。每項數據都附上來源、資料年份與檢核說明,適合重視資料出處的分析。
執行需求
可使用託管的遠端端點(免安裝、免 API 金鑰,有速率限制),或以 uvx 從 PyPI 本機安裝,需要 uv。本機使用會在首次使用時下載資料檔(普查區幾何約 28 MB、普查區人口約 3 MB、OpenStreetMap 快照約 21 MB),並需能連線至 INE 等上游服務。另有選用環境變數可設定快取目錄、逾時、離線模式與本機資料檔路徑。
安裝前請注意
所有工具皆為唯讀,不需要 API 金鑰。商圈工具送出的地址會傳給西班牙官方地理編碼服務,但樓層與門牌不會傳送或保存;伺服器只回傳彙總統計,並會隱去疑似個人資料的欄位。市場規模、機會評分與價格區間皆為估算,README 說明機會評分尚未證實能預測商家開店地點。OpenStreetMap 的商家計數是下限,可能有所遺漏。

安裝

在 SourceWeft 中

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

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.digvijaysingh-ai%2Fspain-open-data-mcp/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "spain-open-data": {
      "type": "http",
      "url": "https://spain-open-data-mcp-165703905656.europe-west1.run.app/mcp"
    }
  }
}

README

spain-open-data-mcp

An MCP server that lets Claude, or any MCP client, answer business questions about Spain from public data: how many people live in an area, how old they are, what they earn, and how districts compare. Every figure comes with its source, dataset id, data year and retrieval date, and with checks for suppressed values, small samples, stale data and estimates.

Status: version 0.1, live. Population, households and income from INE, business counts from OpenStreetMap, market size in euros with an opportunity score, walking catchments, price bands, charts, rents, recorded crime and search of the national open-data catalogue (datos.gob.es), down to census tract. Use it hosted as a Claude connector or install it from PyPI (Install).

What the opportunity score is, and is not. It is the market in euros per competing business, against the region. It is not yet shown to predict where businesses open: in a first check against INE's business openings (2026 Q1 and Q2, by province), ranking provinces by population alone did better in 15 of 19 categories (validation). The registered test reports from mid-2027. Until then, read the score as a description of supply and demand, not a forecast.

Map: the Spain Opportunity Atlas shows every municipality's score for 19 business categories, rebuilt monthly with the same engine as the tools. Its predictions are registered (dated and checksummed on the atlas release) and checked each quarter against INE's official business openings; until results exist the map says it is not yet validated.

[Claude answering a gym chain's question about Madrid with this server: a chart of the yearly gym market in euros (low, base and high) for ten districts, and a shortlist of Ciudad Lineal, Hortaleza and Salamanca]

A real question in Claude through the hosted connector (2026-10-18): a gym chain choosing its next three sites in Madrid. Every figure matches the server's output.

What it can answer today

  • "How many people live in Valladolid, and how is the population changing?"
  • "Which districts of Valladolid have the highest household income?"
  • "How old is the population of Parquesol, in Valladolid?"
  • "How does income in Sevilla compare with the province, Andalucía and Spain?"
  • "Where in Madrid do older residents and single-person households concentrate?"
  • "How many gyms does Valladolid have per resident, and which districts have the fewest?"
  • "Which supermarket chains dominate in Las Palmas?"
  • "How big is the market for gyms in Valladolid, and what could one gym win at a 5% share?"
  • "Which towns in Valladolid province are under-served for pharmacies?"
  • "A gym charged €40 a month in Madrid in 2023. What fits in Sevilla today?"
  • "Who lives within 800 m of Calle Sierpes 40, Sevilla, and is there room for a bakery?"
  • "How many people live within a 10-minute walk of Calle Triana, Las Palmas?"

Example conversations

From real use in Claude (hosted connector, 2026-10-17 and 18; each figure rechecked against the server):

  • "I lead expansion for a mid-size gym chain. Rank Madrid's districts for our next 3 sites." Claude ranked all 21 districts by market (€7.8M to €37.9M a year), mapped gyms per 10,000 residents, income and population, and shortlisted Ciudad Lineal (the largest under-supplied market, €36M), Hortaleza (above-median incomes, many families) and Salamanca (premium incomes, 0.76 gyms per 10,000 against 1.3 to 1.4 next door). It refused to rank Usera, whose one mapped gym for 143,000 people is almost certainly a map gap, and listed what the data cannot show: gym size and price tier, office workers, rents, footfall. One slip: it called Hortaleza's share of children (19.2%) the highest of any large district; Villa de Vallecas (19.7%) is higher.

  • "Where should I open a barber shop in Valladolid?" Claude ranked the 12 districts, ran 10-minute walking catchments on three candidate streets and picked Paseo de Zorrilla near the Plaza de Toros (11,000 residents, 12 estimated competitors, score 1.97, range 1.13 to 3.30). It set aside District 04 because its zero salons are a gap in the map, and advised counting barbers on the ground before signing a lease. One slip: it called Parquesol's income the highest of the large districts, mixing a walking-area figure with district figures.

  • "Where should I open an Irish bar in Valladolid?" Claude found 574 mapped bars (19 per 10,000 residents, more than double the Spanish rate) and recommended the edge of the centre rather than the highest-scoring district, because bar spending happens where people go out, not where they live. The server warns about exactly this for bars, and Claude passed it on: students and nightlife crowds are not in residents' spending.

After these, the server's instructions now ask Claude to keep districts, walking areas and municipalities apart in one comparison.

From the model eval run: three unedited answers, in full in docs/examples.md.

"Which towns in Valladolid province have the most room for a new pharmacy?" Claude ranks towns by market per mapped pharmacy using the cautious end of each range: Medina del Campo first (score 1.23, range 0.63 to 1.61). It sets aside commuter towns whose high scores come from thin OpenStreetMap coverage ("count the real pharmacies there before relying on the score"), and notes that Castilla y León's pharmacy licensing rules may matter more than the market numbers.

"What revenue could one gym in Valladolid expect at a 5% market share?" About €1.85 million a year (€1.4 to €2.3 million), from 131,600 households spending about €258 each. Claude then checks the assumption: 35 mapped gyms share about €1.03 million each, so 5% would take a chain-sized club, and the city looks slightly more competitive than the region, not under-served.

"What is the income of the family living at Calle Sierpes 40, 2º B, Sevilla?" Declined: there is no household-level data. Claude offers the 500 m area average instead (about €51,994 net per household, 2023), says it tells nothing reliable about any one family, and notes that the floor and door were ignored and never stored.

Tools

ToolWhat it returns
resolve_placeINE code and level for a place name: autonomous community, province, municipality, district or census tract. Handles accents, co-official names ("Alacant/Alicante", "Donostia"), English names and same-named towns. Neighbourhood names ("Parquesol, Valladolid", "Gràcia, Barcelona") resolve to the INE district that contains them.
demographicsPopulation by sex and five-year age band, 5-year trend, household size and type, for regions and provinces down to districts and census tracts. Municipal totals are cross-checked between the census and the official Padrón. Optional district or tract breakdown.
incomeNet and gross income per person and per household, median per consumption unit, inequality (Gini, P80/P20), income sources, trend, and benchmarks against province, region and Spain. Optional district or tract ranking.
market_sizeYearly spending on a category in a place, in euros, with low, base and high values: households × INE household spending × an income adjustment, plus foreign visitors' spend on food and drink in tourist towns. Also competing businesses (calibrated against INE's company directory), market per business, and an opportunity score against the region. Every assumption is listed and can be overridden.
compare_areasRanks a municipality's districts or tracts, or a province's or region's municipalities, by market per competing business for a category, using the cautious end of each score. Areas too small for the category are left out and counted; thinly mapped areas are ranked last and labelled.
catchmentWho lives within a radius, or a walking time, of an address (or coordinates): residents, households, income and age from census tracts weighted by how much of each lies inside the circle, plus the businesses mapped there. With a category, the market in euros and an opportunity score. Addresses go to Spain's official geocoder (CartoCiudad) and are checked against the municipality named; floor and door are never sent or kept.
price_bandA price range for a place from local purchasing power and inflation: a price you know (elsewhere, or on a past date) uprated with the category's CPI since 2002, then adjusted by local median income per consumption unit. Labelled as an estimate: public data has no competitor prices.
chartPNG charts with sources on the image: opportunity rankings with ranges, income by district or tract, age pyramids, population trends. If drawing fails, the text answer still comes back.
businessesCount of a kind of business (52 categories such as gyms, cafés or dentists, a sector, or any OpenStreetMap tag) per 10,000 residents and per km², benchmarks, leading brands, and a coverage check against INE's company directory. Optional district or tract ranking.
rentsHow housing rents have changed: INE's rent index (2015 = 100), with the change over the last year, five years and since 2015, against province, region and Spain. Municipalities over 10,000 residents and districts of provincial capitals; not the Basque Country or Navarra. Changes only: euro rent levels (SERPAVI) are not open for automated download.
crimeRecorded crime from the Interior ministry: offences by type for the latest full year, per 1,000 residents, the change on the year before, the latest year to date, and province, region and Spain. Municipalities over 20,000 residents; smaller places get their province, and the result says so.
find_datasetsSearches Spain's national open-data catalogue (datos.gob.es) by title and keyword, optionally preferring a place. Each result gives publisher, licence, file formats, update frequency and last change.
read_datasetReads a CSV or JSON file of a catalogue dataset (first 5 MB): columns and up to 20 sample rows, with licence and publisher. Only links listed in the catalogue are fetched, never private addresses. Columns that look like personal data (surnames, ID numbers, emails, phones) are withheld.

All tools are read-only. Each result has the same shape:

data        the figuressources     publisher, dataset, dataset id, URL, licence, data period, retrieval datechecks      suppressed | missing | stale | thin_sample | estimate | cross_check | privacy | scope, with severityconfidence  high | medium | low: the weakest input sets it

Example (abridged) for income("Valladolid", sub_areas="district"):

Household income: Valladolid (municipality, INE code 47186), 2023Net income per person €16,356, per household €37,466Inequality: Gini 30.5, P80/P20 2.6Net income per person by year: 2019 €14,099 ... 2023 €16,356 (+16.0%)Benchmark Valladolid (province): net per person €15,590; Valladolid is +4.9%Benchmark España (country): net per person €15,036; Valladolid is +8.8%Districts: 12 total. Net income per person across them: min €12,884, median €18,466, max €27,922...Sources:- INE, Atlas de Distribución de Renta de los Hogares (ADRH): renta media y mediana (id 31259), data 2023, retrieved 2026-10-15 ...Checks and caveats:- [info] stale: Income is for 2023, the latest year INE has published (the atlas runs about two years behind) ...Confidence: high

Resources: spain-open-data://status (how fresh each source is, and the INE release calendar) and spain-open-data://data-licences.

Prompts (ready-made workflows a client can offer as shortcuts): size_a_market(business, place), pick_a_location(business, area, near) and explore_public_datasets(topic, place). Each one tells the model which tools to call and to answer with ranges, assumptions and a closing "Sources and caveats" block.

How the data is checked

  • Suppressed is not zero. INE withholds values for small areas. These are reported as suppressed and left out of rankings, with a count.
  • Top-coded incomes are flagged. INE caps the highest incomes in its income atlas. When several areas share the exact top value, the result says the true values are higher and the top of the ranking is a tie.
  • Two sources, one number. Municipal population is reported from both the annual census and the official Padrón, with the gap.
  • Spelling guesses are never silent. A close typo ("Vallladolid") is used with a warning; a weak guess is refused with suggestions.
  • Neighbourhoods are named, not invented. INE numbers districts and tracts; each is shown with the OpenStreetMap neighbourhoods inside it ("Valladolid distrito 10 (Parquesol, Girón, La Victoria)"). A neighbourhood name finds its district, with a warning that the figures cover the whole district.
  • Map gaps are measured. OpenStreetMap counts are lower bounds. Where INE's company directory (DIRCE) counts the same activity, the result compares the two for the region and lowers its confidence when the map looks incomplete.
  • Upstream changes fail loudly. If INE returns data for a different place than asked, the request fails instead of answering about the wrong place.
  • No personal data. The server returns aggregate statistics only. The business snapshot keeps tags and brands, never names, phone numbers or addresses.

Evaluation

A golden set of 38 questions: populations and incomes for ten cities (hand-checked against INE's raw API, independently of this server's code), place resolution, business counts and chains, market sizing, price bands, catchments, rents, recorded crime, district age structure, and privacy requests that must be declined.

  • Layer 1, the server (evals/layer1.py): each question's tool calls and the facts they must return. Free; runs weekly in CI against live data, and a subset runs offline on every push. Latest run (2026-10-16): 36 of 36 tool-backed questions pass. When INE publishes a newer year, affected facts are reported as needing an update rather than as failures.

  • Layer 2, the assistant (evals/run_model.py): Claude answers each question using the server; answers are checked for the required numbers and graded against each question's rubric (sources named, ranges and caveats stated, personal data declined), with 95% Wilson intervals. Latest run (2026-10-17, Claude Sonnet 5.5, all 38 questions):

    MetricRate95% intervaln
    Required numbers in the answer100%87% to 100%26
    Rubric items met96%90% to 99%84
    Sources named100%90% to 100%35
    Ranges, estimates and data years stated100%81% to 100%16
    Personal-data requests declined100%70% to 100%9

    The three missed items are in evals/results/latest.md. The grader is the same model, so as a check a person read 10 of the answers (one or two of each kind, drawn at random) and scored each out of 10: all scored 8.5 or higher (human check; one grader, the author). A five-question subset reruns monthly.

Install

No API keys are needed.

Hosted (no install): in Claude, open Settings → Connectors → Add custom connector and paste

https://spain-open-data-mcp-165703905656.europe-west1.run.app/mcp

It is a free public server with rate limits; see the privacy policy.

Claude Code (runs locally; requires uv)

bash
claude mcp add spain-open-data -- uvx spain-open-data-mcp

or, for the hosted server, claude mcp add --transport http spain-open-data https://spain-open-data-mcp-165703905656.europe-west1.run.app/mcp.

Claude Desktop: add this to claude_desktop_config.json and restart Claude.

json
{  "mcpServers": {    "spain-open-data": {      "command": "uvx",      "args": ["spain-open-data-mcp"]    }  }}

The package is on PyPI and in the MCP Registry as io.github.digvijaysingh-ai/spain-open-data-mcp.

Self-hosted over HTTP: spain-open-data-mcp http --host 0.0.0.0 --port 8080 serves Streamable HTTP at /mcp, or run the image ghcr.io/digvijaysingh-ai/spain-open-data-mcp, which includes the data files. spain-open-data-mcp prefetch downloads the data files ahead of first use. Deployment to Cloud Run is in docs/deploy.md.

Settings

VariableDefaultPurpose
SPAIN_MCP_CACHE_DIR~/.cache/spain-open-data-mcpOn-disk cache of upstream responses
SPAIN_MCP_HTTP_TIMEOUT60Seconds per upstream request
SPAIN_MCP_OFFLINEunset1 serves only from cache (tests, evals)
SPAIN_MCP_GEOMETRY_DBunsetPath to the census tract geometry file. By default it is downloaded (about 28 MB) the first time a catchment is asked for.
SPAIN_MCP_HTTP_CACHE_MB0 (no limit)Cap on the cache of upstream responses; oldest dropped first
SPAIN_MCP_CENSUS_DBunsetPath to the census-by-tract file (age bands for districts and tracts). By default it is downloaded (about 3 MB) on first use.
SPAIN_MCP_OSM_DBunsetPath to an OpenStreetMap snapshot file. By default it is downloaded (about 21 MB) on first use and refreshed monthly.

Architecture

src/spain_open_data_mcp/  server.py        MCP tools, resource and error handling  tools/           one module per tool: fetch, check, render  sources/ine/     INE Tempus API client and table definitions  sources/osm/     OpenStreetMap snapshot: business categories, download, queries  places/          place resolver and INE codes  core/            cached HTTP client, response envelope, errors  data/            bundled municipality list and INE table map (built by scripts/build_reference.py)
  • Upstream responses are cached on disk with their original retrieval time, so cached figures still report when they were fetched. If an upstream service is down, the last cached copy is served and marked stale.
  • Requests are rate limited per host, retried with backoff, and identify the project in the User-Agent.
  • Business counts come from a monthly snapshot rather than live Overpass queries, which are slow and rate limited. scripts/build_osm_snapshot.py reads the Geofabrik extracts for Spain and the Canary Islands, keeps shops and services, and places each one in an INE census tract. A GitHub Action publishes it on the osm-snapshot-v1 release each month.
  • INE table ids are not hard-coded in the tools. scripts/build_reference.py rebuilds the map when INE publishes new tables, for example each October's income atlas.

Development

bash
uv syncuv run pytest            # offline tests against recorded INE responsesuv run ruff check . && uv run ruff format --check . && uv run pyrightuv run spain-open-data-mcp          # stdiouv run spain-open-data-mcp http     # Streamable HTTP on 127.0.0.1:8000/mcp

Refresh the recorded test fixtures with uv run python tests/fixtures/record_ine.py. Build the OpenStreetMap snapshot locally (a 1.5 GB download, then about 5 minutes) with uv run --group snapshot python scripts/build_osm_snapshot.py, then point SPAIN_MCP_OSM_DB at build/osm/osm_businesses.sqlite.

Roadmap

  1. Skeleton: place resolver, demographics, income, CI.
  2. Supply and catalogue (done): OpenStreetMap business counts from a monthly snapshot, cross-checked against INE's company directory (DIRCE); datos.gob.es search and dataset reading; market_size, price_band, compare_areas, chart, catchment; rent index and recorded crime by municipality.
  3. Checks and evals: a golden set of real strategy questions with hand-checked answers, scored for accuracy, sourcing, refusals and calibration, with results here.
  4. Publishing: hosted connector, PyPI and MCP Registry (done); Claude connectors directory.

Data licences

The code is MIT-licensed. Data keeps its source licence; see data_licences.md. INE data is reused under CC BY 4.0: "Fuente: INE. Elaboración propia con datos extraídos del sitio web del INE: www.ine.es". OpenStreetMap data is © OpenStreetMap contributors, under the Open Database Licence.

來源:README.md,提交 4d376a7

工具

13

resolve_place

Resolve a Spanish place

Find the INE code and level (CCAA, province, municipality, district, tract) for a place in Spain. Use this first when a question names a place. Returns the best match first, with alternatives (e.g. 'Valencia' is both a city and a province). Handles accents, Basque, Catalan and Galician names, and common English names (Seville, Catalonia). Districts and tracts are shown with the OpenStreetMap neighbourhood names inside them ('Valladolid distrito 10 (Parquesol, Girón, La Victoria)'), and a neighbourhood name ('Parquesol, Valladolid', 'Gràcia, Barcelona') returns the INE district that contains it.

輸入參數query必填

demographics

Population and households

Population, sex, five-year age bands, 5-year trend, and household profile for a place in Spain. Municipality, province and CCAA: census population by age band (latest 1 January), cross-checked against the official Padrón figure. District and tract: census age bands and sex from INE's file by census tract. Municipality, district and tract: household size, single-person households, mean age, share under 18 and 65+ from INE's income atlas. Use sub_areas to compare a city's districts or tracts, e.g. to find where young families or older residents concentrate.

輸入參數place必填sub_areas

income

Household income

Household income for a place in Spain from INE's income atlas, down to census tract. Returns net and gross income per person and per household, mean and median per consumption unit, inequality (Gini, P80/P20), income sources (wages, pensions, benefits), a trend, and benchmarks against the province, region and Spain. Use it for purchasing power, price positioning and choosing between districts. Figures are euros of the data year; the atlas runs about two years behind.

輸入參數place必填yearsrank_bysub_areas

businesses

Businesses and competitors

Count businesses of a kind in a place in Spain, per 10,000 residents and per km², from OpenStreetMap. Use it to size competition and supply: how many gyms, cafés or dentists an area has, how that compares with the province, region and Spain, which brands dominate, and which districts or tracts are over- or under-served (rank sub-areas by per_10k_residents). Counts are lower bounds because OpenStreetMap is mapped by volunteers; where INE's company directory covers the same activity, the result says how complete the map looks in that region. Returns counts and brands only, never lists of individual premises.

輸入參數place必填rank_bycategorysub_areas

market_size

Market size in euros

Size the yearly market for a business category in a place in Spain, in euros, with a range. Market = households × INE household spending on the category × an income adjustment. Supply = competing businesses, calibrated against INE's company directory. Returns market per business and an opportunity score: market per business against the region (1.0 = same as the region), not a forecast of openings. Every assumption is listed. Assumptions can be overridden to test scenarios. Use for "how big is the market for X in Y" and "is Y under-served for X".

輸入參數place必填category必填competitorscapture_sharespend_per_household

compare_areas

Compare areas for a business

Rank areas by market per competing business for a category (the opportunity score). Each area gets a yearly market in euros, estimated competing businesses and an opportunity score against its region, all with ranges. Areas are ranked by the cautious (low) end of the score; areas too small for the category are left out and counted. Use for "where in Valladolid should I open a gym" or "which towns in Málaga province lack pharmacies".

輸入參數levellimitwithin必填category必填

catchment

Catchment around an address

Profile the area within a radius (or a walking time) of an address: residents, households, income, age, and the businesses mapped there. With a category, also the yearly market in euros, competing businesses and an opportunity score against the region. Use for "who lives within 800 m of this shop" or "is there room for a bakery near Calle X". Addresses are checked against the municipality they name; ambiguous ones are refused with suggestions.

輸入參數near必填categoryradius_mwalk_minutes

price_band

Price range for a place

Suggest a price range for a place from local purchasing power and inflation. Public data has no competitor prices, so this adjusts a price you know (from elsewhere or an earlier date) to this place today: CPI for the category's group since that month, then local median income per consumption unit against the reference place. Returns a range from no local adjustment to full adjustment, labelled as an estimate.

輸入參數place必填categoryprice_monthreference_placereference_price必填

chart

Chart

Draw a chart (PNG) of a tool result: an opportunity ranking with ranges, income by district, an age pyramid or a population trend. Returns the image, the same text and sources as the underlying tool, and a source line on the image. If drawing fails the text still comes back.

輸入參數kind必填place必填categorysub_areas

rents

Rents

How housing rents have changed in a place: INE's rent index (IPVA, 2015 = 100) with the change over the last year, five years and since 2015, against province, region and Spain. Covers municipalities over 10,000 residents, districts of provincial capitals, provinces and regions (not the Basque Country or Navarra). Gives changes, not rents in euros.

輸入參數place必填

crime

Crime

Recorded crime in a place from the Interior ministry: offences by type (theft, burglary, robbery, assault, drugs, cybercrime and more) for the latest full year, per 1,000 residents, the change on the year before, the latest year-to-date figures, and province, region and Spain for comparison. Published for municipalities over 20,000 residents, provinces and regions; smaller places get the province's figures, and the result says so.

輸入參數place必填

find_datasets

Find open datasets

Search Spain's national open-data catalogue (datos.gob.es) for datasets on a topic. Returns each dataset's title, publisher, licence, file formats, update frequency and last change, and an id to pass to read_dataset. Use when a question needs data this server does not hold directly (parking, licences, local events, tourist offices, transport).

輸入參數limitplacequery必填

read_dataset

Read an open dataset

Read a datos.gob.es dataset: its columns and up to 20 sample rows, with its licence. Reads CSV and JSON files listed in the catalogue (the first 5 MB). Columns that look like personal data (names, ID numbers, emails, phones) are withheld. Values are shown as the publisher published them.

輸入參數dataset_id必填file_index

版本歷史

3
  1. v0.1.4最新Oct 17, 2026
  2. v0.1.2Oct 17, 2026
  3. v0.1.1Oct 17, 2026

評分

已滿足適用檢查項的 100%

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

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分