MCP server
nusaindex-mcp is a Model Context Protocol server that runs locally over stdio. Its tools are read-only: no file system, no shell, no network.
You need Node.js 22.18 or later. The server runs on your own machine and starts in under 300 ms. Pick the app you use.
Run this in a terminal:
claude mcp add nusaindex -- npx -y nusaindex-mcpCheck with claude mcp list. It should say ✔ Connected.
Open Settings → Developer → Edit Config and add:
{ "mcpServers": { "nusaindex": { "command": "npx", "args": ["-y", "nusaindex-mcp"] } }}Quit Claude Desktop completely from the tray, then open it again.
Save this as ~/.cursor/mcp.json to use it in every project, or as .cursor/mcp.json for one project:
{ "mcpServers": { "nusaindex": { "command": "npx", "args": ["-y", "nusaindex-mcp"] } }}Open the MCP settings in Cursor. nusaindex should show up with 10 tools.
Copilot in VS Code uses a servers key, not mcpServers. Save this as .vscode/mcp.json:
{ "servers": { "nusaindex": { "type": "stdio", "command": "npx", "args": ["-y", "nusaindex-mcp"] } }}Open Copilot Chat in Agent mode and turn on nusaindex from the tools button.
Run this in a terminal:
codex mcp add nusaindex -- npx -y nusaindex-mcpOr add it yourself to ~/.codex/config.toml:
[mcp_servers.nusaindex]command = "npx"args = ["-y", "nusaindex-mcp"]Windsurf (~/.codeium/windsurf/mcp_config.json) and Gemini CLI (~/.gemini/settings.json) use the same mcpServers format as Claude Desktop. Other apps that support local (stdio) MCP servers usually accept it too.
| Tool | Input | Returns |
|---|---|---|
validate |
kind, values (1 to 100) |
Valid or an error code for each value |
parse |
kind, value |
Parsed fields, for a NIK also region names |
region_search |
query, optional level, within, limit |
Matching regions, best first |
region_get |
code, optional children |
One region, plus resolved when an old code was followed |
holidays |
year, or from and to |
Holidays with their legal basis |
workdays |
operation (is, add, count), date, days or to |
Working-day results |
rupiah |
operation (format, parse, terbilang), amount or text |
Formatted text, number or words |
bank |
optional code or bic, neither lists all |
Matching banks |
mask |
kind and values (1 to 100), or text |
Masked values or text |
fake |
kind, optional seed, count (up to 20), region, birthDate, sex |
Test data (for tests only) |
For validate and parse, kind is one of nik, npwp, phone, plate, nip or nisn. mask takes account instead of plate. Every tool returns structured content plus the same data as JSON text.
Privacy
Section titled “Privacy”The server never logs or stores input, and tool descriptions repeat this warning so agents can pass it on. A valid result means well-formed, not real.
Example prompts
Section titled “Example prompts”- “Generate 5 fake NIKs for women born in 1990 in Kota Bandung and check that they are valid.”
- “How many working days are there in August 2026, and which holidays fall in that month?”
- “Spell Rp1.250.000 in Indonesian words.”
- “Which regencies use plate code DR?”
© 2026 Haikal Mumtaz