Allows an AI agent to inspect IP and ASN databases, check license status, view metadata, and verify file checksums.
Also known as internetdata/mcp, mcp, internetdata-mcp
- Stars
- 1
- Tools
- 4
- Downloads, 30 days
- —
- Latest version
- 3.3.0
- Last commit
- Nov 12, 2026
- License
- MIT
What is InternetData MCP?
InternetData allows an AI agent to inspect IP and ASN databases, check license status, view metadata, and verify file checksums. It exposes 4 tools, such as list_databases, database_metadata, database_checksum.
Summary generated from the project's README
About InternetData MCP server
InternetData provides an MCP server that allows AI agents to interact with IP and ASN databases containing geolocation, anonymity, ownership, and network data. Developers can use this server via a remote connection at a hosted endpoint or by running it locally using npx with Node.js 22 or newer. The server requires an InternetData account for authentication or an API key with the db.download scope for local installations.
This read-only interface provides four specific tools to manage data workflows without downloading large files directly into a chat. The list_databases tool shows available datasets and your organization's license standing, while database_metadata provides details like row counts and file sizes. Users can also use database_checksum to verify file integrity and list_downloads to review the last 200 download attempts, including any refusals. This setup ensures agents can inspect metadata and verify licenses before a developer initiates a heavy data transfer through separate client libraries.
What you can do with it
- 1Verify database license statusCheck if your organization has an active license for a specific IP or ASN dataset.
- 2Inspect dataset structureRetrieve column names, sample rows, and file sizes for a specific database version.
- 3Validate file integrityObtain published digests to ensure a downloaded database file matches the official version.
- 4Debug download failuresReview recent download attempts and HTTP status codes to identify why a transfer failed.
Written from the project's README. Every use case is checked against a quote from it.
How to install InternetData MCP
Formats verified 10 Nov 2026Install InternetData MCP in Claude Code
$ claude mcp add --env INTERNETDATA_API_KEY=<YOUR_INTERNETDATA_API_KEY> mcp -- npx -y internetdata-mcpInstall InternetData MCP in Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"internetdata-mcp"
],
"env": {
"INTERNETDATA_API_KEY": "<YOUR_INTERNETDATA_API_KEY>"
}
}
}
}Install InternetData MCP in VS Code
.vscode/mcp.json
{
"servers": {
"mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"internetdata-mcp"
],
"env": {
"INTERNETDATA_API_KEY": "<YOUR_INTERNETDATA_API_KEY>"
}
}
}
}Install InternetData MCP in Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"internetdata-mcp"
],
"env": {
"INTERNETDATA_API_KEY": "<YOUR_INTERNETDATA_API_KEY>"
}
}
}
}Install InternetData MCP in Codex
~/.codex/config.toml
[mcp_servers.mcp] command = "npx" args = ["-y", "internetdata-mcp"] [mcp_servers.mcp.env] INTERNETDATA_API_KEY = "<YOUR_INTERNETDATA_API_KEY>"
Install InternetData MCP in Gemini CLI
~/.gemini/settings.json
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"internetdata-mcp"
],
"env": {
"INTERNETDATA_API_KEY": "<YOUR_INTERNETDATA_API_KEY>"
}
}
}
}InternetData MCP tools 4
Detected from the READMElist_databasesdatabase_metadatadatabase_checksumlist_downloads
| list_databases | — | |
| database_metadata | — | |
| database_checksum | — | |
| list_downloads | — |
Configuration
INTERNETDATA_API_KEYSecretYour InternetData API key; lookups answer without one, with fewer fields
INTERNETDATA_BASE_URLOverrides the API endpoint
| Name | Description | |
|---|---|---|
| INTERNETDATA_API_KEY | Your InternetData API key; lookups answer without one, with fewer fields | Secret |
| INTERNETDATA_BASE_URL | Overrides the API endpoint |
Automated checks
Ran Nov 12, 2026Full report →Passed our automated checks. That is not a security audit: read the code and give the server the narrowest access it needs. How checks work
- Source repository linked and reachablePass
- Open source license (OSI)Pass
- Commit or release in the last yearPass
- Package name not close to a popular packagePass
- Remote endpoint uses HTTPSPass
- Destructive tools are labelledPass
- No hidden instructions to the modelPass
- No critical advisory in the package or its dependenciesPass
README
View on GitHubInternetData MCP Server
The official Model Context Protocol server for the InternetData API.
InternetData publishes IP and ASN databases: geolocation, anonymity, ownership and network data, as gzipped CSV and as MMDB. This server gives an AI agent four read-only tools over them - every database we publish and where your organization's license for each one stands, what is inside one, the digests to verify a copy you already hold, and your recent download history.
Getting Started
We host it at https://mcp.internetdata.io/mcp, and you sign in to it with your InternetData account. It also runs on your own machine from npm. Either way it sees where your organization's license for each database stands. Databases are licensed by contract. The Open ones, tor_ip_v1 among them, are licensed to every organization from the start and are free under CC BY-SA 4.0. For the rest, see the API documentation, or request an evaluation if your organization doesn't have a license yet.
In Claude
In claude.ai, the desktop app or Cowork, add https://mcp.internetdata.io/mcp as a custom connector and choose Use Claude's published identity when asked. In Claude Code, install our plugin, which adds the server with skills:
/plugin marketplace add internetdata/claude-plugin
/plugin install internetdata@internetdata
Either way you sign in with your InternetData account, and Claude never sees your API key. The steps, the skills and how to disconnect: docs.internetdata.io/integrations/claude.
In ChatGPT and Codex
InternetData is in the plugin directory ChatGPT and Codex share: add it from its listing. Codex also installs our plugin from the command line, which adds the server with skills:
codex plugin marketplace add internetdata/openai-plugin
codex plugin add internetdata@internetdata
codex mcp login internetdata
Either way you sign in with your InternetData account, and neither sees your API key. The steps: docs.internetdata.io/integrations/chatgpt and docs.internetdata.io/integrations/codex. On the OpenAI API, the Responses API's mcp tool takes the server as its server_url and your key as its authorization.
In Gemini CLI
Install our extension, which runs the npm package below on your machine:
gemini extensions install https://github.com/internetdata/mcp
It asks for your API key, which needs the db.download scope, and keeps it in your system keychain.
In any other MCP client
Point it at https://mcp.internetdata.io/mcp. A client that supports MCP authorization signs in the same way. One that doesn't can send a key instead, as Authorization: Bearer your-key.
On your own machine
You need an API key carrying the db.download scope. Add this to your MCP client's config:
{
"mcpServers": {
"internetdata": {
"command": "npx",
"args": ["-y", "internetdata-mcp"],
"env": { "INTERNETDATA_API_KEY": "your-key" }
}
}
}
Requires Node.js 22 or newer. INTERNETDATA_BASE_URL overrides the endpoint if you need to point somewhere else.
Tools
| Tool | What it answers |
|---|---|
list_databases |
Every database we publish, with its standing for your organization (licensed, expired or unlicensed) and the type and term of any license. |
database_metadata |
A database's columns, sample rows, row count, build date and file sizes. |
database_checksum |
The published digests for one database file. |
list_downloads |
Your organization's recent download attempts, refusals included. |
Every tool is read-only.
Two spellings of a database ID
list_databases answers a base ID and a versions array:
{
"base": "vpn_ip",
"standing": "licensed",
"open": false,
"versions": [{ "id": "vpn_ip_v1", "version": 1, "formats": ["csvgz", "mmdb"] }]
}
The base is what a license names. versions[].id is what a download names, and it is the one database_metadata and database_checksum accept. The tools say so in their own descriptions, so an agent generally gets this right on its own; it is worth knowing when you read a transcript where one was refused.
There is no download tool, deliberately
The published builds run to several GB, which is not something an agent should pull into a conversation. database_metadata is how you find out what a transfer would cost, and the client libraries or the API are how you actually move the bytes.
Reading the download history
list_downloads is a bounded window - at most 200 attempts, newest first - and it lists refusals alongside successes, because a denial and its http_status are what answer "it stopped working". A database missing from the answer means it is not in that window, never that it was never fetched.
Other Libraries
There are official InternetData client libraries available for many languages including PHP, Python, Go, Java, and Ruby. See our GitHub at https://github.com/internetdata for more.
About InternetData
Geolocation, anonymity, ownership and network databases for IP addresses and AS numbers, licensed as files you download and query yourself.
License
This project is licensed under the MIT License.
InternetData MCP questions
How do I add InternetData MCP to Claude Code?
Run claude mcp add --env INTERNETDATA_API_KEY=<YOUR_INTERNETDATA_API_KEY> mcp -- npx -y internetdata-mcp in your terminal. Add --scope user to make it available in every project.
How do I add InternetData MCP to Cursor?
Open ~/.cursor/mcp.json and add the server under mcpServers, using the Cursor config shown in the install section above.
What tools does InternetData MCP provide?
It exposes 4 tools, including list_databases, database_metadata, database_checksum, list_downloads.
How can I check if my organization has a license for a specific database?
You can use the list_databases tool to see every published database along with your organization's license standing, such as licensed, expired, or unlicensed.
What information is provided by the database_metadata tool?
It provides a database's columns, sample rows, row count, build date, and file sizes.
How do I verify the integrity of a database file I already have?
You can use the database_checksum tool to retrieve the published digests for a specific database file.