Number-lookup services usually mean sending the number to someone else; here the range database ships with the server and is loaded into memory, so a batch of a hundred numbers never leaves the machine. The trade is freshness — the data is a file in the repository, and refreshing it means re-running the parser over a new source file.
An MCP server that resolves Chinese mobile numbers to their carrier and registered location. It answers from a local number-range database rather than an online lookup, so there is no API to call and no key to hold.
- Carrier and location for one 11-digit number, with province, city and matched prefix returned — `detect_carrier`
- The same lookup across a list, up to 100 numbers in one call — `batch_detect_carriers`
- The three main carriers plus 中国广电 and 中国铁通, with the number ranges documented per carrier
- Virtual operator numbers recognised alongside the main carriers
- A local database of 492,088 records loaded into memory, so lookups do not leave the machine
Python 3.8+ with a clone of the repository — the implementation uses the standard library, so there are no dependencies to install unless you want to run the tests. The documented client entry runs `python mcp_server.py` with an empty env block: no key, no account, no network call. `parse_phone_data.py` regenerates the database from the raw data file if you need to refresh it.
Build from source — clone the repository and build it, then point your client at the binary
