Moradas — Portuguese addresses & postal codes
by moradas.dev · remote · no sign-in to list tools · v0.2.0 · published by dev.moradas
Portuguese address autocomplete, postal codes, list checks; typo-tolerant, municipality-first; free.
4 tools: 3 change things and 1 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things3Claude Code: ask: see these tools
- Only reads1Claude Code: allow: see these tools
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http moradas https://moradas.dev/mcpTools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
4 tools
Changes things 3Claude Code: ask
postal_code_infoLook up a Portuguese postal code (CP7, e.g.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Look up a Portuguese postal code (CP7, e.g. '1000-098'): localidade, concelho, distrito and the streets it covers.
suggest_addressAutocomplete a Portuguese address or postal code.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Autocomplete a Portuguese address or postal code. Pass free text (street, optionally locality and door number, e.g. 'av liberdade lisboa 196') or a postal code (e.g. '1000-098'). Returns suggestions with street, localidade (postal locality), concelho, distrito and cp7. When cp7 is null the street spans several postal codes: call resolve_postal_code with art_id and the door number. The beginning of a municipality or large locality name ('lisb', 'carcav') returns that place itself first (art_id 0). A suggestion found after correcting a typo in q carries corrected: true.
verify_addressesCheck a list of Portuguese addresses in one call: a column from a CRM or spreadsheet, an order import, a customer base before shipping or mailing.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Check a list of Portuguese addresses in one call: a column from a CRM or spreadsheet, an order import, a customer base before shipping or mailing. Each item is checked like suggest_address (a door number in the text picks the exact postal code; a postal code is looked up as such). Results come back in input order, one per item: id exactly as sent (null when not sent), q, status, cp7 and suggestion. status 'ok' — the postal code was determined and is in cp7; 'ambiguous' — no single answer (several candidates with nothing to tell them apart, a street with several postal codes and no door number, or just a locality): cp7 is null and suggestion is the best candidate for a person to confirm; 'not_found' — nothing matched: suggestion is null. suggestion has the same shape as a suggest_address suggestion. Up to 100 items per call; a call with N items counts as N requests against the rate limit (about 50 per 10 seconds per IP), so send up to 50 at a time. For a single address use suggest_address.
Only reads 1Claude Code: allow
resolve_postal_codeResolve the exact 7-digit postal code (CP7) for a street and door number.No findings
Why it is in this group
- The name "resolve_postal_code" says "resolve": a word for reading.
Description, as the server wrote it Resolve the exact 7-digit postal code (CP7) for a street and door number. art_id comes from suggest_address (art_id 0 is a whole locality or municipality and cannot be resolved). Returns resolved address (or null) and the list of postal-code segments of that street.
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 0.2.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http moradas https://moradas.dev/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__moradas__resolve_postal_code"
],
"ask": [
"mcp__moradas__suggest_address",
"mcp__moradas__postal_code_info",
"mcp__moradas__verify_addresses"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as moradas. Review it before you use it.