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

@localseodata/mcp-server

v1.1.0

Published

Model Context Protocol (MCP) server for Local SEO Data: 53 local SEO data tools for AI assistants.

Readme

Local SEO Data MCP Server

Model Context Protocol server for Local SEO Data. It gives AI assistants 53 local SEO data tools: SERP and map rankings, reviews, audits, keyword research, competitor analysis, geogrid tracking, and AI visibility scoring.

Connect once, then ask questions in plain English. Your assistant picks the right tools.

Setup (OAuth, recommended)

Add https://mcp.localseodata.com/mcp as a connector in your client and click Connect. You'll be asked to sign in to Local SEO Data (or create an account) and approve access. You don't need to copy an API key.

Claude (claude.ai, Claude Desktop, mobile)

  1. Open Settings → Connectors → Add custom connector.
  2. Enter a name (e.g. Local SEO Data) and the URL https://mcp.localseodata.com/mcp.
  3. Click Add, then Connect, and sign in.

Claude Code

claude mcp add localseodata --transport http https://mcp.localseodata.com/mcp --scope user

Then run /mcp in Claude Code, select localseodata, and choose Authenticate.

ChatGPT and other OAuth-capable clients

Add a custom connector or remote MCP server with the URL https://mcp.localseodata.com/mcp and click Connect. Any client that supports MCP authorization will start the sign-in flow on its own.

Fallback: API key in the URL

If your client can't do OAuth, pass an API key in the URL instead:

  1. Sign up at localseodata.com/signup.
  2. Create a key in your API Keys dashboard. Keys start with sk_live_.
  3. Use https://mcp.localseodata.com/mcp?key=YOUR_API_KEY as the server URL.

Example configs:

Cursor (.cursor/mcp.json or ~/.cursor/mcp.json)

{
  "mcpServers": {
    "localseodata": {
      "url": "https://mcp.localseodata.com/mcp?key=YOUR_API_KEY"
    }
  }
}

VS Code (GitHub Copilot) (.vscode/mcp.json)

{
  "servers": {
    "localseodata": {
      "type": "http",
      "url": "https://mcp.localseodata.com/mcp?key=YOUR_API_KEY"
    }
  }
}

Windsurf (~/.codeium/windsurf/mcp_config.json)

{
  "mcpServers": {
    "localseodata": {
      "serverUrl": "https://mcp.localseodata.com/mcp?key=YOUR_API_KEY"
    }
  }
}

Cline: Settings → MCP Servers → Add Remote Server, with the URL https://mcp.localseodata.com/mcp?key=YOUR_API_KEY.

You can create or revoke keys at any time in the API Keys dashboard. Treat a URL that contains your key like a password.

Available tools

53 tools in total:

| Category | Tools | |----------|-------| | SERP data | local_pack, organic_serp, maps, local_finder, local_services_ads, ai_overview, ai_mode | | Other platforms | apple_maps, apple_business_profile, bing_local, bing_business_profile | | AI visibility | ai_mentions, ai_visibility, ai_compare, ai_top_sources, ai_top_pages, ai_keyword_data, ai_llm_response, ai_scraper, ai_sample, ai_sample_status, ai_match | | Business data | business_profile, profile_health, qa, business_listings, google_reviews, review_velocity, multi_platform_reviews | | Keyword research | search_volume, keyword_overview, keyword_suggestions, related_keywords, keywords_for_site, keyword_trends | | Audits | local_audit, citation_audit, reputation_audit, page_audit | | Competitive intel | competitor_ads, brand_mentions, backlink_summary, backlink_gap | | Reports | competitor_gap, local_authority, keyword_opportunities | | Geogrid | geogrid_scan, geogrid_status | | Locations | location_search | | Account / utility | get_balance, history_search, history_get, ping |

AI visibility tools report on ChatGPT, Gemini, Perplexity, Claude and Google's AI Overviews and AI Mode. Each tool's description lists its credit cost, and the server sends your assistant instructions on which tool fits which question.

Example prompts

  • "Who ranks in the local pack for 'plumber' in Denver?"
  • "Run a full local SEO audit for Mike's Plumbing in Austin, TX"
  • "Compare my Google reviews to my top 3 competitors"
  • "Am I listed correctly on Apple Maps and Bing?"
  • "What keywords should a dentist in Portland be targeting?"
  • "Map my rankings on a 5x5 geogrid for 'bakery' in Brooklyn"
  • "How often does ChatGPT recommend my business for 'best pizza in Chicago'?"

Pricing

MCP calls use credits from your Local SEO Data account, the same as REST API calls. get_balance, location_search, ping, geogrid_status, ai_sample_status, history_search and history_get are free. See localseodata.com/pricing for plans, and check usage in your dashboard.

Running it yourself

HTTP server

git clone https://github.com/localseodata/mcp-server.git
cd mcp-server
npm ci
npm run build
npm start

The server listens on port 3003 by default (PORT changes it) and serves MCP at /mcp, with a health check at /health. Clients authenticate with ?key=YOUR_API_KEY or an Authorization: Bearer header. A Dockerfile is included.

Optional environment variables:

| Variable | Default | Purpose | |----------|---------|---------| | API_BASE_URL | https://api.localseodata.com | Local SEO Data API the tools call | | PORT | 3003 | HTTP port | | OAUTH_ENABLED | false | Advertise OAuth and accept OAuth access tokens | | OAUTH_ISSUER | https://localseodata.com | Authorization server | | MCP_RESOURCE_URL | https://mcp.localseodata.com/mcp | This server's public URL, used in OAuth metadata |

OAuth access tokens are only accepted by the API from the hosted server, so a self-hosted copy should use API keys.

stdio

For clients that launch a local process:

npm ci && npm run build
LOCALSEODATA_API_KEY=sk_live_... node dist/stdio.js

Development

npm run dev        # Watch mode
npm run typecheck  # Type check
npm test           # Run tests
npm run build      # Compile to dist/

License

MIT