Server data from the Official MCP Registry
MCP server for Japan geodata: cadastral lot numbers (chiban) and reverse geocoding, for AI agents.
About
MCP server for Japan geodata: cadastral lot numbers (chiban) and reverse geocoding, for AI agents.
Remote endpoints: streamable-http: https://mcp.reversegeojp.com
Security Report
Well-structured MCP server with proper authentication, clean code, and appropriate permissions. The server correctly handles API key management via environment variables and HTTP headers, implements error handling through custom client libraries, and has no malicious patterns or dangerous operations. Minor code quality observations around broad exception handling do not materially impact security posture. Supply chain analysis found 3 known vulnerabilities in dependencies (0 critical, 3 high severity). Package verification found 1 issue.
7 files analyzed · 7 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
Permissions Required
This plugin requests these system permissions. Most are normal for its category.
What You'll Need
Set these up before or after installing:
Environment variable: GEOJP_API_KEY
How to Install & Connect
Available as Local & Remote
This plugin can run on your machine or connect to a hosted endpoint. during install.
Documentation
View on GitHubFrom the project's GitHub README.
geojp-mcp
An MCP (Model Context Protocol) server that exposes two Japan-specific geodata APIs as tools for AI agents (Claude Code, Claude Desktop, and other MCP clients):
- ChibanJP — coordinates → chiban (地番, the official cadastral lot number recorded at Japan's Legal Affairs Bureau). Chiban rarely maps predictably to a residential address (住居表示) and is not exposed by most general-purpose geocoders.
- ReverseGeoJP — coordinates ⇄ Japanese address (reverse geocoding / forward geocoding).
Why chiban?
Japan uses two independent addressing systems: the residential address (住居表示) that appears on maps and mail, and the chiban — the cadastral lot number used in property registries, land transactions, and legal documents. The two do not follow a predictable pattern, so converting between them requires a dedicated lookup against registry map data, not a lookup table.
Chiban matters for real estate due diligence, land transaction platforms, and any workflow that touches Japan's registry system — a growing need as foreign investment in Japanese real estate rises. Most global geocoding APIs do not source chiban directly from registry map data, which is why this exists as a standalone tool.
Tools
| Tool | Backing API | Input | Returns |
|---|---|---|---|
get_parcel | ChibanJP /parcel | lat, lon | Chiban (cadastral lot number), ōaza/aza, municipality, and survey precision class for the containing parcel |
reverse_geocode | ReverseGeoJP /reverse | lat, lon | Nearest residential address (prefecture, municipality, district, postal code) |
geocode | ReverseGeoJP /geocode | address | Up to 10 candidate locations for a partial address match |
lookup_location | Both, in parallel | lat, lon | Address and chiban together in one call (an orchestration example — succeeds with address-only if the point falls outside ChibanJP's current coverage) |
All tools share a single API key. Get one at reversegeojp.com.
Two ways to run it
The tool definitions live in src/tools.ts and are shared by both entry points:
- Local (stdio) —
src/index.ts. Your MCP client launches it as a child process on your machine. One user, one API key. - Remote (HTTP, Cloudflare Workers) —
src/worker.ts. Already deployed athttps://mcp.reversegeojp.com; anyone can connect with their own API key, no build step required.
Setup (local/stdio)
npm install -g geojp-mcp
or, from source:
npm install
npm run build
The server reads the API key from the GEOJP_API_KEY environment variable. You normally don't run it directly — your MCP client starts it as a subprocess (see below).
Register with Claude Code
claude mcp add --scope user geojp -e GEOJP_API_KEY=your-api-key-here -- npx geojp-mcp
--scope user makes it available across all projects on your machine (omit it to register for the current project only). Verify with claude mcp list.
Argument order matters: -e/--env accepts multiple values, so it will swallow subsequent arguments if placed before the server name. Keep the order: add, then the server name, then -e.
Or configure manually in .mcp.json / ~/.claude.json:
{
"mcpServers": {
"geojp": {
"type": "stdio",
"command": "npx",
"args": ["geojp-mcp"],
"env": {
"GEOJP_API_KEY": "your-api-key-here"
}
}
}
}
Register with Claude Desktop
Add the same block to the mcpServers section of claude_desktop_config.json, then restart Claude Desktop. Four tools (reverse_geocode, geocode, get_parcel, lookup_location) become available.
Setup (remote/HTTP)
Connect directly to the hosted server with your own API key — no install or build required:
claude mcp add --scope user --transport http geojp-remote https://mcp.reversegeojp.com --header "Authorization: Bearer your-api-key-here"
Health check: GET https://mcp.reversegeojp.com/health.
Remote server design notes
- No bindings, stateless: the Worker holds no session state and uses no Durable Objects. Every call reads the API key from the
Authorizationheader and proxies straight through to the ReverseGeoJP/ChibanJP production APIs. This avoids the paid Workers plan that Durable Objects require, so it runs on the same free plan asreverse-geo-jp/chibanjpwith no added infrastructure cost (the more commonMcpAgentpattern fromagents-sdkassumes Durable Objects and a paid plan). - Web Standards transport: uses
@modelcontextprotocol/sdk'sWebStandardStreamableHTTPServerTransport, since the Node-onlyStreamableHTTPServerTransportdepends onhttp.IncomingMessage/ServerResponse, which don't exist in the Workers runtime. - Gotcha:
reversegeojp-client/chibanjp-clientdefault to holding a bare, unboundfetch(this.fetchImpl = options.fetch ?? fetch), which throws "Illegal invocation" on Cloudflare Workers. Fixed by passing an explicitly-boundfetchinto the client constructor options increateGeojpMcpServer()(seeboundFetchinsrc/tools.ts). Also fixed upstream ingeojp-api-clientsv0.1.1 (fetch.bind(globalThis));geojp-mcpdepends on that version, and keeps the localboundFetchas a harmless fallback.
Deploy / local dev
npm run worker:dev # local wrangler dev server (http://127.0.0.1:8787 etc.)
npm run worker:check # typecheck against the Workers tsconfig only
npm run worker:deploy # deploy to production
Smoke test (no API key required — wiring check only)
npm run smoke-test
Starts the server with a dummy key and confirms the tool list loads and a real API call correctly returns an invalid_api_key error.
Why this exists
ReverseGeoJP/ChibanJP were already running as APIs meant to be called directly by developers reading the docs. This project exposes them as MCP tools so AI agents can discover and call them automatically — reusing the existing production infrastructure while building hands-on MCP/agent-integration experience.
License
MIT
Reviews
No reviews yet
Be the first to review this server!
More Developer Tools MCP Servers
Fetch
Freeby Modelcontextprotocol · Developer Tools
Web content fetching and conversion for efficient LLM usage
Toleno
Freeby Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
mcp-creator-python
Freeby mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.
MarkItDown
Freeby Microsoft · Content & Media
Convert files (PDF, Word, Excel, images, audio) to Markdown for LLM consumption
MCP Marketplace
Freeby mcp-marketplace · Developer Tools
Search and install MCP servers from inside your AI client.
FinAgent
Freeby mcp-marketplace · Finance
Free stock data and market news for any MCP-compatible AI assistant.
