Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Morocco communes

REMOTE · COMMUNES.PAGES.DEV · SCANNED SEP 26

Morocco's régions, provinces and communes: HCP codes, names, census population and boundaries

65 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security57
Transport & Reachability100
Schema Quality & AI Usability65
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 2608 tokens (~289/item across 9 items; 9 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management17
  • Stability observed for 5 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 9 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 10 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the Morocco communes MCP server?

Morocco communes is a hosted endpoint at https://communes.pages.dev/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · communes.pages.dev

# add to Claude Code
claude mcp add --transport http zkousama-morocco-communes 'https://communes.pages.dev/mcp'
// .cursor/mcp.json
{
  "mcpServers": {
    "zkousama-morocco-communes": {
      "url": "https://communes.pages.dev/mcp"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "zkousama-morocco-communes": {
      "type": "http",
      "url": "https://communes.pages.dev/mcp"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.zkousama-morocco-communes]
url = "https://communes.pages.dev/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "zkousama-morocco-communes": {
      "type": "remote",
      "url": "https://communes.pages.dev/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add zkousama-morocco-communes --url 'https://communes.pages.dev/mcp' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  zkousama-morocco-communes:
    url: "https://communes.pages.dev/mcp"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "zkousama-morocco-communes": {
      "Transport": "http",
      "Url": "https://communes.pages.dev/mcp"
    }
  }
}
# add to Vellum
assistant mcp add zkousama-morocco-communes -t streamable-http -u 'https://communes.pages.dev/mcp'
// mcp.json
{
  "mcpServers": {
    "zkousama-morocco-communes": {
      "type": "http",
      "url": "https://communes.pages.dev/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 26 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

  • 25 Sept 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 24 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

  • 22 Sept 26 0
    • Stability: unverified → 0.03 ▲ functional
    • “search” reworded the description of “query” cosmetic
  • 21 Sept 26 63

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 26 Sept 2026 · Probed https://communes.pages.dev/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=communes.pages.dev CN=YE1,O=Let's Encrypt,C=US 21 Sept 2026 20 Dec 2026 ECDSA 256 ECDSA-SHA384 5e522d6ba856d5d8b2de374dab1552aba1e
SANs: *.communes.pages.dev, communes.pages.dev
CN=YE1,O=Let's Encrypt,C=US (CA) CN=Root YE,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 ECDSA 384 ECDSA-SHA384 5ddd70dd31f801c85c186a7a04b80afe
CN=Root YE,O=ISRG,C=US (CA) CN=ISRG Root X2,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 ECDSA-SHA384 872165fc34b6e5fba8add5b3705fb53a
CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 SHA256-RSA 6c8f1dc727c7117f7baf853ac980f9cd

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of communes.pages.dev. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
dev. present 60074 8 Verified
pages.dev. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://communes.pages.dev/mcp Verified 200
http (plaintext) http://communes.pages.dev/mcp HTTPS enforced 301 https://communes.pages.dev/mcp
MCP tools · 9 exposed · ~2,337 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
commune_at ~112

The commune whose boundary contains a point, with its names, type, parents and population, and in Casablanca, Rabat, Fès, Marrakech, Salé and Tanger the arrondissement too. Use it to turn coordinates, from a map or a device, into a commune. Sidi Mohamed Benmansour has no boundary, and neither do about 88 km² between Ifrane and Boulemane.

NameTypeReqDescription
latnumberyesLatitude, in degrees.
lngnumberyesLongitude, in degrees.
NameTypeReqDescription
arrondissement–yes–
communeobjectyes–

No examples provided.

communes_near ~115

Communes within a radius of a point, nearest first. Distance is measured to each commune's centroid, so the nearest commune isn't always the one that contains the point: commune_at gives that one.

NameTypeReqDescription
latnumberyesLatitude, in degrees.
limitinteger–How many results. 10 when left out, at most 50.
lngnumberyesLongitude, in degrees.
radius_kmnumber–Radius in km. 10 when left out, at most 100.
NameTypeReqDescription
resultsarrayyes–

No examples provided.

get_commune ~119

One commune's names, type, région, province and cercle, 2024 and 2014 population, the change between them, a point inside it, the communes it borders and how much boundary it shares with each, and in the 6 cities divided into them, its arrondissements with their population. Identify it by HCP code (01.511.01.0), the code as digits, or a slug (tanger).

NameTypeReqDescription
idstringyesAn HCP code, the code as digits, or a slug.
NameTypeReqDescription
arrondissementsarrayyesCasablanca, Rabat, Fès, Marrakech, Salé and Tanger's arrondissements, most populous first; empty elsewhere.
communeobjectyes–
neighboursarrayyesThe communes this one borders, longest shared boundary first. Measured on the OpenStreetMap boundaries, so it is under ODbL.

No examples provided.

get_economy ~441

HCP's 2024 count of economic establishments for Morocco or any région, province or préfecture, cercle, commune or arrondissement: how many establishments were mapped, how many are public services, how many are associations in premises of their own, how many are businesses, and how many permanent jobs those businesses hold. The businesses are split three ways, each covering all of them: by sector (industry, construction, commerce, services), by how many people work there (1, 2-3, 4-9, 10-49, 50 and over), and by when they were founded (before 1956 through 2020 and later). The weekly souks in use are counted beside them and are not part of the total. Reading them: every figure is a count, taken during the census by field teams who mapped each establishment. Farming is out, the workbook counts every sector but agriculture, and the jobs are the permanent ones. Ranking and comparing: to order communes by one of these, call list_communes with sort set to its path, such as economy.establishments.jobs, or by one of the 3 it works out from them: economy.per1000.establishments, economy.per1000.jobs, economy.perBusiness.jobs. To compare the régions, the provinces or the arrondissements, give level without a unit and get them all in one call. Casablanca and the 5 other cities divided into arrondissements are counted by arrondissement, so their figures are the sum of those, marked basis: arrondissement_sum. Say so when you report one.

NameTypeReqDescription
levelstring–With a unit, the level it's at, where a name is shared: Tiznit is a commune and a province, and a name alone means the commune. Without a unit, region, province or arrondissement gives every one of t…
topicsarray–Only these topics. Every topic when left out.
unitstring–A région, province or préfecture, cercle, commune or arrondissement, by code or slug. Morocco as a whole when left out.
NameTypeReqDescription
resultsarrayyes–

No examples provided.

get_housing ~237

HCP's 2024 count of urban dwellings for Morocco or any unit that has an urban area: how many there are, how many are occupied, vacant or second homes, what kind they are (villa, apartment, traditional or modern Moroccan house, slum, rural-type), how old they are, what their walls and roofs are made of, how many are on the public electricity, water and sewerage networks, and HCP's housing shortfall. Every figure but the count is a percentage of that unit's urban dwellings. This counts dwellings, not households: a vacant flat is here and in nobody's census record, and get_indicators describes the dwelling each household lives in, for the whole country rather than the towns. A unit with no urban area has nothing here.

NameTypeReqDescription
levelstring–With a unit, the level it's at. Without one, region, province or arrondissement gives every one of that level.
topicsarray–Only these topics. Every topic when left out.
unitstring–A unit by code or slug. Morocco as a whole when left out.
NameTypeReqDescription
resultsarrayyes–

No examples provided.

get_indicators ~616

HCP's census figures for Morocco or any région, province or préfecture, cercle, commune or arrondissement: age, marital status, fertility, disability, schooling, illiteracy, the languages people read and write and the local languages they use, education, work, employment status and how people get to work, and for households their size, dwelling, occupancy, amenities, wastewater, waste and cooking fuel. Reading them: shares and rates are percentages from 0 to 100. Null means HCP publishes no figure there. Most come from the long questionnaire, which went to a random 20% of households in communes of 2,000 households or more, so there they're estimates. Ranking and comparing: to order communes by one figure, call list_communes with sort set to its path. To compare the régions, the provinces or the arrondissements, give level without a unit and get them all in one call. The 2014 census is here too, under census. Age, education, local languages, illiteracy, fertility, disability, work, the ways of getting to work, dwellings, amenities, wastewater and waste ask what 2024 asks and can be read against it. Where people work and how children get to school are 2014 only. Five topics changed and can't be subtracted: marital status covered everyone rather than people aged 15 and over, schooling ages 7 to 12 rather than 6 to 11, reading and writing was asked as combinations of languages rather than one at a time, a household counted under every cooking fuel it used, and the employment shares took in unemployed people who had worked before. A unit the 2014 census didn't count has null there, Casablanca and the 5 other cities with arrondissements among them, since 2014 published those by arrondissement.

NameTypeReqDescription
areastring–The whole unit (total), its urban or rural part, or each of the three. total when left out.
censusstring–Which census. 2024 when left out. both gives the two together, to see what changed.
levelstring–With a unit, the level it's at, where a name is shared: Tiznit is a commune and a province, and a name alone means the commune. Without a unit, region, province or arrondissement gives every one of t…
sexstring–Everyone (all), men, women, or each of the three. all when left out. Household figures have no sex.
topicsarray–Only these topics. Every topic when left out. Two are easy to confuse: labour holds the labour force, the activity rate and the unemployment rate, while employmentStatus is how the people in work are…
unitstring–A région, province or préfecture, cercle, commune or arrondissement, by code or slug. Morocco as a whole when left out.
NameTypeReqDescription
resultsarrayyes–

No examples provided.

get_unit ~171

One région, province, préfecture or cercle: its name in French and Arabic, its 2024 population and households, the units above it, how many units it holds, and the ones directly under it, named: a région's provinces, a province's cercles. This is the tool for a question about a unit above the commune, such as how many cercles a province has. For a commune or an arrondissement, call get_commune; to list a unit's communes, call list_communes with that unit.

NameTypeReqDescription
levelstring–The level, where a name is shared: Tiznit is a commune and a province, and a name alone means the commune.
unitstringyesA région, province, préfecture or cercle, by code or slug.
NameTypeReqDescription
childrenarrayyesThe units directly under it. Empty for a cercle, whose communes come from list_communes.
countsobjectyesHow many units of each level this one holds.
unitobjectyes–

No examples provided.

list_communes ~385

Communes filtered by région, province or préfecture, cercle, type or population, 50 to a page, in code order or sorted by name, population, change since 2014, density, area, any census indicator or any establishment count. Filters combine; each unit can be given by code or slug. With no filter it lists every commune, so sort: "-population" alone gives the largest in the country.

NameTypeReqDescription
cerclestring–A cercle, by code or slug.
max_populationinteger–Only communes with at most this many people in 2024.
min_populationinteger–Only communes with at least this many people in 2024.
pageinteger–Page number, from 1.
provincestring–A province or préfecture, by code or slug.
regionstring–A région, by code or slug.
sortstring–A field to order by: code, name, population, change, density, area, or a census indicator by its path, such as labour.unemploymentRate or amenities.runningWater, as get_indicators names them. Put 201…
typestring–Urban or rural communes only.
NameTypeReqDescription
communesarrayyes–
pagenumberyes–
totalnumberyes–
total_pagesnumberyes–

No examples provided.

search ~141

Find régions, provinces and préfectures, cercles, communes and arrondissements of Morocco by name. Takes French or Arabic, a slug, or another name a place is known by: Fez finds Fès, Mogador finds Essaouira. Returns codes; pass a commune's code to get_commune for its population and parents.

NameTypeReqDescription
levelsarray–Only these levels. Every level when left out.
limitinteger–How many results. 10 when left out, at most 50.
querystringyesThe name to look for, in French, Arabic or as a slug, or a unit's code.
NameTypeReqDescription
resultsarrayyes–

No examples provided.

Common questions

What is the Morocco communes MCP server?

Morocco communes is an MCP server listed in the public MCP registry as io.github.zkousama/morocco-communes. Morocco's régions, provinces and communes: HCP codes, names, census population and boundaries. This page covers its hosted endpoint (https://communes.pages.dev/mcp).

Is the Morocco communes MCP server safe to use?

Morocco communes scores 65 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Morocco communes MCP server expose?

Morocco communes exposes 9 tools: search, get_commune, communes_near, commune_at, list_communes, and 4 more. Their descriptions and schemas cost roughly 2,337 tokens of context every time the server is loaded.

Does the Morocco communes MCP server require authentication?

No. We connected to Morocco communes without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the Morocco communes MCP server still maintained?

Morocco communes is still listed as active in the MCP registry. We last reached this channel on 26 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.