Rocky Geo Mcp

by racccoinorg

275 downloads Not rated yet
GitHub

About

MCP (Model Context Protocol) server that wraps the RockyGeo IP geolocation API hosted on RapidAPI. Lets MCP-compatible clients (Claude Desktop, Claude Code, etc.) perform IPv4/IPv6 geolocation lookups via tool calls

Explore

- Single‑IP geolocation via lookup_ip tool
- Batch geolocation (1–100 IPs) via lookup_ips_batch
- Health check endpoint (health_check) returning status and data version
- Supports both IPv4 and IPv6 addresses
- Configurable base URL for self‑hosted RockyGeo instances
- Private/reserved IPs return { found: false }

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Rocky Geo Mcp
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

``bash
npm install
npm run build


Add to your client config (Claude Code
~/.claude.json, Claude Desktop claude_desktop_config.json, etc.):

json
{
"mcpServers": {
"rockygeo": {
"command": "node",
"args": ["/Users/cyborg97/rockygeomcp/dist/index.js"],
"env": { "RAPIDAPI_KEY": "<your-key>" }
}
}
}
``

- lookup_ip — { ip: string } → geolocation for one IP. Private/reserved IPs return { found: false }.
- lookup_ips_batch — { ips: string[] } (1–100) → { results: { [ip]: ... } }.
- health_check — {} → { status, dataVersion, lastSyncAt, uptime }.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "rocky geo mcp": {
            "rockygeo": {
                "command": "node",
                "args": [
                    "/Users/cyborg97/rockygeomcp/dist/index.js"
                ],
                "env": {
                    "RAPIDAPI_KEY": "<your-key>"
                }
            }
        }
    }
}

McpServers

{
    "rockygeo": {
        "command": "node",
        "args": [
            "/Users/cyborg97/rockygeomcp/dist/index.js"
        ],
        "env": {
            "RAPIDAPI_KEY": "<your-key>"
        }
    }
}
MCP (Model Context Protocol) server that wraps the RockyGeo IP geolocation API hosted on RapidAPI. Lets MCP-compatible clients (Claude Desktop, Claude Code, etc.) perform IPv4/IPv6 geolocation lookups via tool calls.

Install

``bash npm install npm run build `

Configure

| Variable | Default | Notes | | ------------------------ | --------------------------------------- | ------------------------------------------------------- | |
RAPIDAPI_KEY | (required) | Sent as x-rapidapi-key. Override with --api-key <k>. | | ROCKYGEO_BASE_URL | https://rocky-geo.p.rapidapi.com/v1 | Point at a self-hosted RockyGeo if you have one. | | ROCKYGEO_RAPIDAPI_HOST | parsed from base URL | Sent as x-rapidapi-host for *.rapidapi.com hosts. |

MCP client setup

Add to your client config (Claude Code
~/.claude.json, Claude Desktop claude_desktop_config.json, etc.): `json { "mcpServers": { "rockygeo": { "command": "node", "args": ["/Users/cyborg97/rockygeomcp/dist/index.js"], "env": { "RAPIDAPI_KEY": "<your-key>" } } } } `

Tools

-
lookup_ip — { ip: string } → geolocation for one IP. Private/reserved IPs return { found: false }. - lookup_ips_batch — { ips: string[] } (1–100) → { results: { [ip]: ... } }. - health_check — {} → { status, dataVersion, lastSyncAt, uptime }.

Smoke test with the inspector

`bash RAPIDAPI_KEY=<key> npx @modelcontextprotocol/inspector node dist/index.js ` Then in the inspector UI: list tools, run lookup_ip with { "ip": "8.8.8.8" }.

Integration tests

End-to-end tests in
tests/integration.test.js spawn the built server as a child process and exercise every tool over the real MCP stdio transport, hitting the live RockyGeo API. `bash npm test ` If RAPIDAPI_KEY is not in the environment, the runner prompts for it (input is hidden). The runner also auto-builds dist/` if it is missing. > Note: tests hit the real upstream API, so they consume RapidAPI quota and may > be rate-limited on the Free plan (1 RPS).

License

MIT.
No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.