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

mcpanvil

v1.0.0

Published

MCPAnvil - Where AI agents forge connections with Model Context Protocol servers

Readme

MCPAnvil - Where AI Agents Forge MCP Connections

MCPAnvil is a comprehensive directory of Model Context Protocol (MCP) servers, optimized for AI agents and developers. Live at mcpanvil.com.

Features

  • 1,000+ MCPs Indexed: Comprehensive coverage from multiple sources
  • 27 Categories: Smart categorization with only 13% uncategorized
  • Agent-Optimized: JSON API designed for LLM consumption
  • Queue-Based Crawler: Redis queue architecture prevents corruption
  • Static Generation: Lightning fast, CDN-hosted, no backend
  • Daily Updates: Automated crawling keeps data fresh

Architecture

GitHub Sources → Redis Queue → Workers → SQLite → Static Site → CloudFront CDN

Quick Start

Prerequisites

  • Node.js 18+
  • Redis (Docker preferred)
  • GitHub token (for API rate limits)

Setup

  1. Install dependencies:
npm install
  1. Configure environment:
cp .env.example .env
# Add your GitHub token
  1. Start Redis:
docker-compose up -d
  1. Initialize database:
sqlite3 database/mcpanvil.db < database/schema.sql
node database/init-sources.js
  1. Run the crawler:
./scripts/start-crawler.sh
# Monitor with: node scripts/monitor-queues.js
  1. Build static site:
npm run build
  1. Deploy:
npm run deploy aws mcpanvil-site

API Endpoints

AI agents can access:

  • /api/mcps.json - Complete MCP database
  • /api/categories.json - Category statistics
  • /api/by-tool/{tool}.json - MCPs by tool (claudeDesktop, vscode, etc.)

Example Usage

// Fetch all MCPs
fetch('https://mcpanvil.com/api/mcps.json')
  .then(r => r.json())
  .then(mcps => console.log(`Found ${mcps.length} MCPs`));

// Get categories
fetch('https://mcpanvil.com/api/categories.json')
  .then(r => r.json())
  .then(cats => console.log('Categories:', cats));

Data Schema

{
  "id": "github-owner-repo",
  "name": "mcp-name",
  "description": "What this MCP does",
  "repository": "https://github.com/owner/repo",
  "stars": 123,
  "categories": ["ai", "dev-tools"],
  "installation": {
    "claudeDesktop": { /* config */ },
    "vscode": { /* config */ },
    "npx": "npx -y mcp-name"
  },
  "last_crawled": "2025-07-25T19:09:23Z"
}

Project Structure

mcp-site/
├── crawler/           # Queue-based crawler system
│   ├── producer.js   # Discovers MCPs from sources
│   ├── worker.js     # Validates and fetches data
│   └── consumer.js   # Writes to database
├── database/         # SQLite database
│   ├── schema.sql    # Database structure
│   └── db.js        # Database abstraction
├── scripts/         # Build and deploy scripts
├── public/          # Static site assets
└── docs/           # Detailed documentation

Documentation

Key Features

Redis Queue Architecture

Prevents database corruption with single-writer pattern:

  • Producer queues GitHub URLs
  • Workers fetch in parallel
  • Consumer writes sequentially

Smart Categorization

27 categories detected via keywords:

  • Technical: ai, dev-tools, api, database, cloud
  • Domain: finance, ecommerce, education, legal
  • Media: audio, video, gaming, entertainment
  • Only 13% remain uncategorized

Incremental Updates

  • Tracks last_modified timestamps
  • Preserves existing data
  • Efficient daily refreshes

Contributing

  1. Add new sources to database/sources table
  2. Improve category keywords in crawler/consumer.js
  3. Enhance MCP detection logic in crawler/worker.js

Technical Stack

  • Backend: Node.js, SQLite, Redis, Bull
  • Frontend: Vanilla JS, No framework
  • Infrastructure: AWS S3 + CloudFront
  • CI/CD: Local cron jobs (for now)

License

MIT