{"_id":"@braynexservices/nigeria-mcp-admin-divisions","_rev":"2-f481e2b106bb28fb4cf260bdb724c3af","name":"@braynexservices/nigeria-mcp-admin-divisions","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@braynexservices/nigeria-mcp-admin-divisions","version":"0.1.0","keywords":["mcp","model-context-protocol","nigeria","states","lga","administrative-divisions","geography","offline"],"author":{"url":"Braynex Services Ltd — https://www.braynexservices.com","name":"Samuel Orie","email":"braynexservices@gmail.com"},"license":"MIT","_id":"@braynexservices/nigeria-mcp-admin-divisions@0.1.0","maintainers":[{"name":"braynexservices","email":"braynexservices@gmail.com"}],"homepage":"https://www.braynexservices.com","bugs":{"url":"https://github.com/braynexservices/nigeria-mcp/issues"},"bin":{"nigeria-mcp-admin-divisions":"dist/stdio.js"},"dist":{"shasum":"5686041053e35fa06bdc8823583ce826858bc73a","tarball":"https://registry.npmjs.org/@braynexservices/nigeria-mcp-admin-divisions/-/nigeria-mcp-admin-divisions-0.1.0.tgz","fileCount":26,"integrity":"sha512-v50kRJuNi/8eiPzdwBTLvM5vxTwKxyUKFsYmPllP0PQJRRR29fuYu1xcBxAiCv1KD0XdR9wHW921WJphJ8DPZg==","signatures":[{"sig":"MEYCIQDh4elCbvYEH7YtcvnujZ9LvhjCHAhx5Vm52rB5l0Ea2AIhAO6WmXVXMTEu0wMeymHE27cfc4OnW+K5ory31WoR055C","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45600},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"4ad54144b4f3200028104555dab2c8a7f225b500","mcpName":"io.github.Braynexservices/nigeria-admin-divisions","private":false,"scripts":{"build":"tsc","smoke":"tsx scripts/smoke.ts","prepack":"tsc","smoke:live":"tsx scripts/live.ts","start:stdio":"tsx src/stdio.ts"},"_npmUser":{"name":"braynexservices","email":"braynexservices@gmail.com"},"repository":{"url":"git+https://github.com/braynexservices/nigeria-mcp.git","type":"git","directory":"lanes/admin-divisions"},"_npmVersion":"11.6.1","description":"Nigeria's 36 states + FCT and 774 LGAs as MCP tools — list states with LGA counts, and get an LGA breakdown for any state. Fully offline bundled dataset; no network, no key.","directories":{},"displayName":"Nigeria Admin Divisions MCP","_nodeVersion":"24.11.0","dependencies":{"zod":"^3.25.76","@braynexservices/nigeria-mcp-core":"^0.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@modelcontextprotocol/sdk":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/nigeria-mcp-admin-divisions_0.1.0_1784437908785_0.9543788284880435","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@braynexservices/nigeria-mcp-admin-divisions","displayName":"Nigeria Admin Divisions MCP","version":"0.1.1","description":"Nigeria's 36 states + FCT and 774 LGAs as MCP tools — list states with LGA counts, and get an LGA breakdown for any state. Fully offline bundled dataset; no network, no key.","homepage":"https://www.braynexservices.com","repository":{"type":"git","url":"git+https://github.com/braynexservices/nigeria-mcp.git","directory":"lanes/admin-divisions"},"bugs":{"url":"https://github.com/braynexservices/nigeria-mcp/issues"},"keywords":["mcp","model-context-protocol","nigeria","states","lga","administrative-divisions","geography","offline"],"private":false,"publishConfig":{"access":"public"},"type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"build":"tsc","prepack":"tsc","start:stdio":"tsx src/stdio.ts","smoke":"tsx scripts/smoke.ts","smoke:live":"tsx scripts/live.ts"},"dependencies":{"@braynexservices/nigeria-mcp-core":"^0.3.0","zod":"^3.25.76"},"devDependencies":{"@modelcontextprotocol/sdk":"^1.29.0"},"license":"MIT","author":{"name":"Samuel Orie","email":"braynexservices@gmail.com","url":"Braynex Services Ltd — https://www.braynexservices.com"},"engines":{"node":">=20"},"bin":{"nigeria-mcp-admin-divisions":"dist/stdio.js"},"mcpName":"io.github.Braynexservices/nigeria-admin-divisions","gitHead":"12f98a817128c5777f41df48ac2efe3b3381f4fa","_id":"@braynexservices/nigeria-mcp-admin-divisions@0.1.1","_nodeVersion":"24.11.0","_npmVersion":"11.6.1","dist":{"integrity":"sha512-KlCWjLd+V1oJcXcW7KHcGjt6/bdajuxsaPCL1kbSDpBHlaXNCxW59mFeZK/ufg2S0h5hVKuf/lE1qOYX5hGQew==","shasum":"5fb607271f8959d958a67b95ad72745a2f7f0cd3","tarball":"https://registry.npmjs.org/@braynexservices/nigeria-mcp-admin-divisions/-/nigeria-mcp-admin-divisions-0.1.1.tgz","fileCount":26,"unpackedSize":45641,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCNAQ0Bu0zexsPor02hf82IGFdHw72EiwlzereDA84ATgIhAJ3W23ZhJ5xo6LdpYfQ0ih1Vk0ahugbYh9diZkdL0h1b"}]},"_npmUser":{"name":"braynexservices","email":"braynexservices@gmail.com"},"directories":{},"maintainers":[{"name":"braynexservices","email":"braynexservices@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/nigeria-mcp-admin-divisions_0.1.1_1784464120353_0.25790267288000557"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-19T05:11:48.601Z","modified":"2026-07-19T12:28:40.640Z","0.1.0":"2026-07-19T05:11:48.929Z","0.1.1":"2026-07-19T12:28:40.513Z"},"bugs":{"url":"https://github.com/braynexservices/nigeria-mcp/issues"},"author":{"name":"Samuel Orie","email":"braynexservices@gmail.com","url":"Braynex Services Ltd — https://www.braynexservices.com"},"license":"MIT","homepage":"https://www.braynexservices.com","keywords":["mcp","model-context-protocol","nigeria","states","lga","administrative-divisions","geography","offline"],"repository":{"type":"git","url":"git+https://github.com/braynexservices/nigeria-mcp.git","directory":"lanes/admin-divisions"},"description":"Nigeria's 36 states + FCT and 774 LGAs as MCP tools — list states with LGA counts, and get an LGA breakdown for any state. Fully offline bundled dataset; no network, no key.","maintainers":[{"name":"braynexservices","email":"braynexservices@gmail.com"}],"readme":"# Nigeria Admin Divisions MCP\n\n> Nigeria's 36 states + the FCT and all 774 Local Government Areas, exposed to AI agents as MCP tools — fully offline.\n\n**Status:** 📦 **Offline — bundled dataset, no API key, no network**\n**Package:** `@braynexservices/nigeria-mcp-admin-divisions` v0.1.0 · depends on `@braynexservices/nigeria-mcp-core`\n**Author:** Samuel Orie (Founder) · **Owner:** [Braynex Services Ltd](https://www.braynexservices.com) · **License:** [MIT](./LICENSE)\n**© 2026 Braynex Services Ltd** — MIT licensed (copyright retained; see [`NOTICE`](./NOTICE)).\n\n---\n\n## What it does\nReturns Nigeria's administrative divisions — the **36 states + the FCT (37 in total)** with a per-state Local Government Area count, and the **full LGA list for any state**. The whole dataset (37 divisions, **774 LGAs**) is **compiled into the package**: every lookup is served locally. **No network call, no API key, ever.** Public reference data — no PII. Each response carries `source: \"static\"` and a fresh `retrievedAt`.\n\n## Tools\n\n### `list_states`\nLists every state (36 + FCT) with its LGA count. Takes no arguments.\n\n| Param | Required | Notes |\n|---|---|---|\n| — | — | no arguments |\n\n**Example:**\n```jsonc\n// → list_states({})\n\"Abia (17 LGAs)\\nAdamawa (21 LGAs)\\nAkwa Ibom (31 LGAs)\\n…\\nFCT (6 LGAs)\"\n// structuredContent: {\n//   count: 37,                                    // 36 states + FCT\n//   states: [{ state:\"Abia\", lgaCount:17 }, …],   // 37 rows\n//   source: \"static\", retrievedAt\n// }\n```\n\n### `get_lgas`\nLists the Local Government Areas of one state. Matching is **case-insensitive**; use `FCT` (or `Abuja`) for the Federal Capital Territory.\n\n| Param | Required | Notes |\n|---|---|---|\n| `state` | ✅ | state name, e.g. `Lagos` or `FCT` (case-insensitive; min 2 chars) |\n\n**Example:**\n```jsonc\n// → get_lgas({ \"state\": \"Lagos\" })\n\"Lagos — 20 LGAs: Agege, Ajeromi/Ifelodun, Alimosho, …, Eti-Osa, …, Surulere\"\n// structuredContent: {\n//   state: \"Lagos\",\n//   lgas: [\"Agege\", \"Ajeromi/Ifelodun\", …, \"Eti-Osa\", …, \"Surulere\"],  // 20 items\n//   source: \"static\", retrievedAt\n// }\n\n// → get_lgas({ \"state\": \"Atlantis\" })\n// isError: true — \"State \\\"Atlantis\\\" not found. Use list_states for the 37 valid names (36 states + FCT).\"\n```\n\n> An unknown state returns an **actionable error** — it suggests close spelling matches where it can, and always points back to `list_states` for the 37 valid names.\n\n## Configuration — `ADMIN_DIVISIONS_PROVIDER`\n\n| Value | Behaviour |\n|---|---|\n| `static` *(default — and the only provider)* | Offline. Serves the states/LGAs dataset **bundled into the package**. No network, no key. |\n\nThere is nothing to configure. **No API key is required — ever** — and no network is used. The env var exists only so a future API-backed source could be slotted in without changing callers.\n\n## Run it\n\n```bash\nnpm install && npm run build      # from repo root\n\nnpm run smoke -w @braynexservices/nigeria-mcp-admin-divisions        # end-to-end (in-memory MCP client↔server)\n\nnpm run start:stdio -w @braynexservices/nigeria-mcp-admin-divisions  # serve over stdio\n```\n\n> There is no separate \"live\" mode: the bundled dataset **is** the source. `npm run smoke:live` exists for parity across lanes but simply re-runs the same offline provider and prints its counts — no network is ever hit.\n\n**MCP Inspector** (interactive GUI):\n```bash\nnpx @modelcontextprotocol/inspector node lanes/admin-divisions/dist/stdio.js\n```\n\n**Claude Desktop / Code** — add to your MCP config (needs Node.js ≥ 20):\n```json\n{\n  \"mcpServers\": {\n    \"nigeria-admin-divisions\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@braynexservices/nigeria-mcp-admin-divisions\"]\n    }\n  }\n}\n```\nNo `env` block is needed — the lane is offline. Running from a clone instead: `\"command\": \"node\", \"args\": [\"/path/to/nigeria-mcp/lanes/admin-divisions/dist/stdio.js\"]`. Then ask, e.g., *\"How many LGAs are in Kano?\"* or *\"List the local governments in Lagos.\"*\n\n## Limits & notes\n- **Fully offline.** The dataset (37 divisions, 774 LGAs) is compiled into the package — no network call and no API key at any point. Every row is stamped `source: \"static\"` with a fresh `retrievedAt`.\n- **Reference data, not a live registry.** Counts reflect a compiled dataset snapshot (extracted 2026-07-15), not a real-time government feed.\n- **State → LGA-name mapping only.** Wards and coordinates from the upstream GeoJSON are intentionally dropped; this lane carries state names, their LGA names, and counts.\n- **Matching:** case-insensitive; `FCT` and `Abuja` both resolve to the Federal Capital Territory.\n- **Data:** compiled from [`temikeezy/nigeria-geojson-data`](https://github.com/temikeezy/nigeria-geojson-data) (MIT, © 2025 Temi). The full upstream MIT permission notice ships with the package in [`NOTICE`](./NOTICE). Three spellings were normalized on extraction: *\"Federal Capital Territory\"* → *\"FCT\"*, *\"Nassarawa\"* → the official *\"Nasarawa\"*, and *\"Badagary\"* → the official *\"Badagry\"*.\n\n## Verification\n`npm run verify` (repo root) → build + all lane smokes + eval. This lane: an in-memory MCP client↔server smoke exercises **both tools plus the not-found path** and asserts the dataset invariants on every run — 37 divisions (36 + FCT), 774 LGAs total, and Lagos includes \"Eti-Osa\".\n","readmeFilename":"README.md"}