npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

geo-tool-check

v1.0.1

Published

Is this page readable for AI search? Checks crawler access, structure and citability for ChatGPT, Perplexity, Claude and Google AI. CLI and MCP server, runs entirely on your machine.

Readme

geo-tool-check

Is this page readable for AI search? Checks crawler access, structure and citability for ChatGPT, Perplexity, Claude and Google AI — as a CLI and as an MCP server.

Everything runs on your machine. No account, no API key, no data sent to geo-tool.com.

CLI

npx geo-tool-check example.com
https://example.com/
92/100  Excellent  534 words · 238 ms

  directAnswers      25/25  ██████████████████
  structure          15/20  ██████████████░░░░
  schemaMarkup       15/15  ██████████████████
  citations          12/15  ██████████████░░░░
  multimedia          5/5   ██████████████████
  platformSpecific   20/20  ██████████████████

In CI

npx geo-tool-check https://example.com/pricing --min-score 70

Exit code 1 below the threshold. Catches the deploy that blocks GPTBot or hides the content behind JavaScript.

npx geo-tool-check example.com --crawlers   # only robots.txt, exits 1 if a scored crawler is blocked
npx geo-tool-check example.com --json       # machine-readable
npx geo-tool-check example.com --lang de    # German labels

MCP server

Gives an agent three tools for AI visibility.

{
  "mcpServers": {
    "geo-tool-check": {
      "command": "npx",
      "args": ["-y", "geo-tool-check", "--mcp"]
    }
  }
}

Or point directly at the binary: npx -y geo-tool-check-mcp.

Also on Smithery:

npx -y smithery mcp add tracktronaut/geo-tool-check

To rebuild and republish the bundle:

npm run bundle                    # geo-tool-check.mcpb
./scripts/publish-smithery.sh     # needs: smithery auth login

| Tool | What it does | Network | |---|---|---| | check_ai_readiness | Full page score, six categories, findings | fetches the page | | check_ai_crawlers | Which AI crawlers robots.txt blocks | fetches robots.txt | | check_citability | Scores a passage while drafting | none |

What the score means

Twenty-five checks across six categories, 0 to 100. The same code that powers geo-tool.com — the scoring logic is imported, not reimplemented, so both produce the same number for the same input.

Node executes no JavaScript. This tool therefore reports what a plain HTML crawler sees — which is exactly what GPTBot, ClaudeBot and PerplexityBot see. A client-rendered page will score low here, and that is the finding, not a limitation. To compare the crawler's view against the rendered page, use the browser extension.

There is deliberately no JavaScript rendering fallback: a paid rendering service is exactly the running cost this package must not create.

Zero dependencies

The MCP protocol over stdio is JSON-RPC with three methods, implemented directly. Nothing to install beyond Node 18+, no supply chain, no version drift.

License

MIT. Built by track by track GmbH.