# InternetData [Health: Active]

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/internetdata/mcp  
**GitHub Stars:** 1  
**npm Downloads (last month):** 2803  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/internetdata

## Description
List InternetData's IP and ASN databases, your license for each, what one holds, and its digests.

## Tools
Capabilities this server exposes over MCP:

- **list_databases** — The IP database catalog as this API key's organization may see it, one entry per database FAMILY, with `standing` saying where their license stands: `licensed` if the family is theirs today, `expired` if the term has ended, `unlicensed` if it is published but has never been bought. Each entry has a `base` id, which is what a license names, and a `versions` array whose `id` is what the other tools take - pass `versions[].id` (`bogon_ip_v1`), never the `base` (`bogon_ip`). Ask again rather than holding on to this: it is answered per key and is not the same for everyone.
- **database_metadata** — What is inside one database before you fetch it: the columns in each published format with their types, a few sample rows, the row count, the build date and the file sizes. Use this to answer questions about what a database contains without downloading it - the files reach several GB - and to budget a transfer before starting one.
- **database_checksum** — The published digests for one database file, for verifying a copy you already hold or deciding whether a build has changed since you last fetched it. It is licensed like the download itself, so a database this key cannot download is refused here too. Looking up a checksum is not a download and does not appear in `list_downloads`.
- **list_downloads** — This organization's own recent download attempts, newest first, REFUSALS INCLUDED - a denial carries the `outcome` and `http_status` that answer "it stopped working", which nothing else here can. Use it to explain a failing fetch, to confirm a transfer ran, or to check whether a request was theirs. This is a bounded WINDOW of at most 200 rows, so a database missing from the answer means it is not in this window - never that it was never downloaded.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "internetdata": {
    "command": "npx",
    "args": ["-y","internetdata-mcp"],
    "env": {
      "INTERNETDATA_API_KEY": "",
      "INTERNETDATA_BASE_URL": ""
    }
  }
}
```

**Requires environment variables:** `INTERNETDATA_API_KEY`, `INTERNETDATA_BASE_URL` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation

## What InternetData MCP server does

InternetData MCP server gives an MCP-compatible agent read-only access to information about InternetData's IP and ASN database catalog. The catalog covers geolocation, anonymity, ownership, and network data, published in gzipped CSV and MMDB formats.

The server reports how each database is licensed for an organization, including whether access is licensed, expired, or unlicensed. It can also describe a database version, return the checksums published for a file, and show recent download attempts. These capabilities help an agent answer questions about access, contents, transfer size, and verification without moving database files into the conversation.

## How it works

The hosted service is available at `https://mcp.internetdata.io/mcp`. MCP clients that support authorization can connect and sign in with an InternetData account. A client without MCP authorization can send an InternetData API key as a bearer token instead.

The package can also run locally through npm. Local execution communicates with the InternetData API and uses an API key with the `db.download` scope. The service and local process expose the same four read-only tools.

Database identifiers have two roles. `list_databases` returns a base identifier used for licensing and a version identifier used by `database_metadata` and `database_checksum`. Download history refers to version identifiers. Recent history is limited to 200 attempts, ordered from newest to oldest, and includes refused attempts as well as successful ones.

## Setup and configuration

For a hosted connection, configure an MCP client with `https://mcp.internetdata.io/mcp` and authenticate with an InternetData account. Claude can use the hosted endpoint as a custom connector, while ChatGPT supports it as a custom MCP server with OAuth. Claude Code and Codex also provide InternetData plugins that add the server and related skills.

To run the server locally, use Node.js 22 or newer and configure the client to launch:

```json
{
  "mcpServers": {
    "internetdata": {
      "command": "npx",
      "args": ["-y", "internetdata-mcp"],
      "env": {
        "INTERNETDATA_API_KEY": "your-key"
      }
    }
  }
}
```

`INTERNETDATA_API_KEY` supplies the local API credential. `INTERNETDATA_BASE_URL` can replace the default API endpoint when a different endpoint is needed.

## Tools and capabilities

- `list_databases` lists published databases, their organization-specific license standing, and license type and term.
- `database_metadata` returns columns, sample rows, row count, build date, and file sizes for a database version.
- `database_checksum` returns the published digests for a database file.
- `list_downloads` shows recent organizational download attempts, including refusals and their HTTP status.

There is intentionally no download tool. Database builds can be several gigabytes, so actual file transfers use the InternetData API or official client libraries rather than an agent conversation. InternetData provides client libraries for languages including PHP, Python, Go, Java, and Ruby. Open databases, including `tor_ip_v1`, are available to every organization under CC BY-SA 4.0; other databases depend on contractual licensing.

_Full upstream README: https://allmcps.com/mcp/internetdata/readme_

