A
Adeniyikayodee/ng-postcode
Validate Nigerian postcodes in Rust, Python, JavaScript, Java, PostgreSQL, DuckDB, and Polars, with MCP servers for AI agents. Covers Nigeria's NIPOST digital postcode (NDAPS): offline validation, lookup, and reverse geocoding.
no SECURITY.md
View on GitHub ↗Link checked 2026-11-12 · HTTP 200 · opens the vendor's own site
Install & config
- Copy the command above
- Paste it as one entry under
mcpServersinclaude_desktop_config.json— local servers take command + args (example: clients) - Restart your client
Client config (built from the install command this repo gives)
{
"mcpServers": {
"adeniyikayodee-ng-postcode-tree-main-mcp": {
"command": "uvx",
"args": ["ng-postcode-mcp"]
}
}
}Parsed from the README we fetched on 2026-10-26; we have not executed it.
command/args come from the install command the repository states. When it is ambiguous, the project README wins.
VS Code (.vscode/mcp.json - the key is servers)
{
"servers": {
"adeniyikayodee-ng-postcode-tree-main-mcp": {
"command": "uvx",
"args": ["ng-postcode-mcp"]
}
}
}Same server, but VS Code keeps it under <code>servers</code>.
Claude Code (command line)
claude mcp add --transport stdio adeniyikayodee-ng-postcode-tree-main-mcp -- uvx ng-postcode-mcp
Claude Code does not read a config file; add the server with this command.
Key names differ by client: Clients & CLI
- Star count
- 7 ★ · Adeniyikayodee/ng-postcode · read from the GitHub search API · (checked 2026-11-13 20:00:50)
- Source
- collected from the punkpeye/awesome-mcp-servers list · type: MCP server
- Harvest history
- first seen 2026-10-23 · last seen 2026-11-14 · seen 26× · listed by 23 sources
- Score
- score 2,300 · 7 ★ · 23 sources · mcp
- Install
uvx ng-postcode-mcp
FAQ (answers come from our records)
How do I install it?
The repository provides this install command:
uvx ng-postcode-mcp. It comes from the repository itself; we cannot guarantee it runs as-is in your client.Who is it for?
We filed it under these tags: MCP 服务. The tags come from the entry itself, not a taxonomy we imposed.
Who maintains it?
repository
Adeniyikayodee/ng-postcode;first catalogued 2026-10-23;last seen 2026-11-14。There is no official certification or quality rating here — we record sources and dates only.# ng-postcode
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
Developer tools for Nigeria's National Digital Alphanumeric Postcode System (NDAPS), the building-level postcode NIPOST launched in October 2026: libraries for Rust and Python (ng-postcode), JavaScript (ng-postcode-js on npm), and Java (ng-postcode-api), MCP servers for AI assistants on PyPI and npm, and a resolver that turns described addresses into postcodes.
A postcode has 11 characters in five segments, written EK-01-A03-FK-01: state, LGA, district, area and building unit. NIPOST's own example, FC 02 A09 DB 09, is the same shape with spaces.
## Packages
| Package | What it does | Install | Source |
| ng-postcode (Rust) | Parse, validate and format codes offline; client for the postcode.gov.ng API | cargo add ng-postcode | src/, docs |
| ng-postcode (Python) | The same behaviour, with sync and async clients | pip install ng-postcode | python/ |
| ng-postcode-js | The same behaviour for JavaScript and TypeScript, with a fetch client | npm install ng-postcode-js | js/packages/ng-postcode-js |
| ng-postcode and ng-postcode-api (Java) | The same behaviour for Java 17 and later; the core has no dependencies | io.github.adeniyikayodee:ng-postcode-api | java/ |
| ng-postcode-mcp | MCP server: validate, look up, autocomplete, find by location, resolve addresses | uvx ng-postcode-mcp | mcp/ |
| ng-postcode-mcp (npm) | The same server for Node, without address resolution | npx ng-postcode-mcp | js/packages/ng-postcode-mcp |
| ng-postcode-polars | Polars expressions that parse, format and group codes by place, compiled from the Rust core | pip install ng-postcode-polars | native/polars |
| ngpostcode (PostgreSQL) | The postcode as native 8-byte types with index support, compiled from the Rust core | Package from Releases, then CREATE EXTENSION ngpostcode | native/pg |
| ngpostcode (DuckDB) | The same functions as a DuckDB extension, compiled from the Rust core | INSTALL ngpostcode FROM community (DuckDB 1.5.6) | ng-postcode-duckdb |
| ng-address-resolver | Resolve free-text addresses to postcodes, only as precisely as the evidence allows (pre-alpha) | pip install ng-address-resolver | agent/ |
Each package has its own README with full usage.
For databases, sql/ holds the postcode as a PostgreSQL domain and as DuckDB macros, in plain SQL that runs the same shared cases.
Two names are easy to get wrong. On npm the library is ng-postcode-js, because ng-postcode there is another project. ng-address-resolver is imported as ngaddress.
For online stores, ng-postcode-woocommerce is a WooCommerce plugin built on the same rules and the same shared test cases: it checks and tidies the postcode at checkout, finds it from the customer's location, and makes shipping zones match on postcode prefixes.
For React and Next.js, templates/nigerian-address-form is a checkout address form built with shadcn/ui and ng-postcode-js. Add it with npx shadcn@latest add https://adeniyikayodee.github.io/ng-postcode/r/nigerian-address-form.json, or deploy the folder as an app.
## Quick start
Parsing and validation are offline and need no key.
Python
python
from ngpostcode import Postcode, parse
match parse("ek 01 a03 fk 01"):
case Postcode() as code:
A postcode has 11 characters in five segments, written EK-01-A03-FK-01: state, LGA, district, area and building unit. NIPOST's own example, FC 02 A09 DB 09, is the same shape with spaces.
## Packages
| Package | What it does | Install | Source |
| ng-postcode (Rust) | Parse, validate and format codes offline; client for the postcode.gov.ng API | cargo add ng-postcode | src/, docs |
| ng-postcode (Python) | The same behaviour, with sync and async clients | pip install ng-postcode | python/ |
| ng-postcode-js | The same behaviour for JavaScript and TypeScript, with a fetch client | npm install ng-postcode-js | js/packages/ng-postcode-js |
| ng-postcode and ng-postcode-api (Java) | The same behaviour for Java 17 and later; the core has no dependencies | io.github.adeniyikayodee:ng-postcode-api | java/ |
| ng-postcode-mcp | MCP server: validate, look up, autocomplete, find by location, resolve addresses | uvx ng-postcode-mcp | mcp/ |
| ng-postcode-mcp (npm) | The same server for Node, without address resolution | npx ng-postcode-mcp | js/packages/ng-postcode-mcp |
| ng-postcode-polars | Polars expressions that parse, format and group codes by place, compiled from the Rust core | pip install ng-postcode-polars | native/polars |
| ngpostcode (PostgreSQL) | The postcode as native 8-byte types with index support, compiled from the Rust core | Package from Releases, then CREATE EXTENSION ngpostcode | native/pg |
| ngpostcode (DuckDB) | The same functions as a DuckDB extension, compiled from the Rust core | INSTALL ngpostcode FROM community (DuckDB 1.5.6) | ng-postcode-duckdb |
| ng-address-resolver | Resolve free-text addresses to postcodes, only as precisely as the evidence allows (pre-alpha) | pip install ng-address-resolver | agent/ |
Each package has its own README with full usage.
For databases, sql/ holds the postcode as a PostgreSQL domain and as DuckDB macros, in plain SQL that runs the same shared cases.
Two names are easy to get wrong. On npm the library is ng-postcode-js, because ng-postcode there is another project. ng-address-resolver is imported as ngaddress.
For online stores, ng-postcode-woocommerce is a WooCommerce plugin built on the same rules and the same shared test cases: it checks and tidies the postcode at checkout, finds it from the customer's location, and makes shipping zones match on postcode prefixes.
For React and Next.js, templates/nigerian-address-form is a checkout address form built with shadcn/ui and ng-postcode-js. Add it with npx shadcn@latest add https://adeniyikayodee.github.io/ng-postcode/r/nigerian-address-form.json, or deploy the folder as an app.
## Quick start
Parsing and validation are offline and need no key.
Python
python
from ngpostcode import Postcode, parse
match parse("ek 01 a03 fk 01"):
case Postcode() as code:
Listed badge (optional)
Copy this line into the README if you want the listing mark. Optional, and it does not affect being listed.
[](https://anclum.com/en/s/adeniyikayodee-ng-postcode-tree-main-mcp/)
- Source
- awesome · https://github.com/Adeniyikayodee/ng-postcode/tree/main/mcp
- Browse by field
- MCP servers
- Traction
- 7 ★ (parent repository total, not this entry's)
- Listed by
- 23 independent sources
- added
- today
- Security policy
- no
SECURITY.mdat the repository root (which does not mean it is unsafe)
More like this
Filed under
Every tag opens the full list for that filter. Counts are the live catalogue figures.