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

@petosdirectory/mcp-server

v1.0.0

Published

MCP server for PetOS Directory — find trusted pet services across the US

Readme

PetOS Directory MCP Server

An MCP (Model Context Protocol) server that gives AI assistants direct access to the PetOS Directory database — real pet service listings across 164 US cities.

When connected, Claude, Cursor, or any MCP-compatible AI can answer questions like:

  • "Find me a vet in Tampa"
  • "Are there any 24/7 emergency animal hospitals in Austin?"
  • "What dog groomers are in Denver?"

Tools

| Tool | Description | |------|-------------| | search_providers | Search for pet service providers by city, category, and optional keyword | | get_provider | Get full details for a single provider by slug | | list_cities | List all 164 supported US cities | | list_categories | List all 7 service categories with slugs | | find_emergency_vets | Find 24/7 emergency vet clinics near a city |

Categories

  • veterinarians — Routine checkups, vaccinations, general health care
  • emergency_vets — 24/7 emergency and critical care animal hospitals
  • groomers — Bathing, haircuts, nail trims, full grooming
  • boarding — Overnight and extended stays
  • daycare — Supervised daytime play and socialization
  • trainers — Obedience training, behavioral correction, puppy classes
  • pet_pharmacies — Prescription medications and supplements

Environment Variables

| Variable | Description | |----------|-------------| | SUPABASE_URL | Your Supabase project URL | | SUPABASE_ANON_KEY | Your Supabase anon/public key |


Install in Claude Desktop

  1. Open Claude Desktop → SettingsDeveloperEdit Config

  2. Add the following to claude_desktop_config.json:

{
  "mcpServers": {
    "petos-directory": {
      "command": "npx",
      "args": ["-y", "@petosdirectory/mcp-server"],
      "env": {
        "SUPABASE_URL": "your-supabase-url",
        "SUPABASE_ANON_KEY": "your-supabase-anon-key"
      }
    }
  }
}
  1. Restart Claude Desktop. You should see the PetOS tools available.

Run from local source

If you've cloned this repo:

{
  "mcpServers": {
    "petos-directory": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-server/dist/index.js"],
      "env": {
        "SUPABASE_URL": "your-supabase-url",
        "SUPABASE_ANON_KEY": "your-supabase-anon-key"
      }
    }
  }
}

Install in Cursor

  1. Open Cursor SettingsMCP
  2. Click Add new MCP server
  3. Enter:
    • Name: petos-directory
    • Type: command
    • Command: npx -y @petosdirectory/mcp-server
  4. Add environment variables:
    • SUPABASE_URL → your Supabase URL
    • SUPABASE_ANON_KEY → your Supabase anon key
  5. Save and restart Cursor.

Install in VS Code (with MCP extension)

Add to your .vscode/mcp.json:

{
  "servers": {
    "petos-directory": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@petosdirectory/mcp-server"],
      "env": {
        "SUPABASE_URL": "${env:SUPABASE_URL}",
        "SUPABASE_ANON_KEY": "${env:SUPABASE_ANON_KEY}"
      }
    }
  }
}

Submit to Smithery

Smithery is the MCP registry — submitting here makes the server discoverable by all MCP clients.

  1. Make sure the server is published to npm:

    cd mcp-server
    npm publish --access public
  2. Go to smithery.ai/new

  3. Enter:

    • Package name: @petosdirectory/mcp-server
    • Description: Find trusted pet services across 164 US cities
    • Category: Productivity / Local
  4. Add the smithery.yaml config file (see below)

smithery.yaml

Create this file in mcp-server/:

name: PetOS Directory
description: Find trusted pet service providers — vets, groomers, boarding, and more — across 164 US cities.
tools:
  - name: search_providers
    description: Search for pet service providers by city and category
  - name: get_provider
    description: Get full details for a single provider
  - name: list_cities
    description: List all supported US cities
  - name: list_categories
    description: List all service categories
  - name: find_emergency_vets
    description: Find emergency vet clinics near a city
config:
  env:
    SUPABASE_URL:
      description: Supabase project URL
      required: true
    SUPABASE_ANON_KEY:
      description: Supabase anon public key
      required: true

Local Development

cd mcp-server

# Install dependencies
npm install

# Build
npm run build

# Run in dev mode (no build step)
SUPABASE_URL=xxx SUPABASE_ANON_KEY=xxx npm run dev

# Test with MCP Inspector
npx @modelcontextprotocol/inspector dist/index.js

Example Interactions

User: Find me a vet in Tampa Claude: (calls search_providers with city="Tampa", category="veterinarians") → Returns top-rated vets with addresses, phones, and direct PetOS links

User: My dog ate chocolate — I need an emergency vet in Miami now Claude: (calls find_emergency_vets with city="Miami") → Returns emergency clinics with phone numbers + ASPCA Poison Control

User: What cities does PetOS cover? Claude: (calls list_cities) → Returns all 164 cities grouped by state


Links