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

top10grid-mcp

v1.1.0

Published

Model Context Protocol server for Top10Grid

Readme

top10grid-mcp

Official Model Context Protocol server for Top10Grid. Lets Claude, ChatGPT, and any MCP-compatible AI publish curated Top 10 lists directly to Top10Grid — no copy-paste, no manual uploads.

Quick start

Claude Desktop

Add this to your claude_desktop_config.json:

{
  "mcpServers": {
    "top10grid": {
      "command": "npx",
      "args": ["-y", "top10grid-mcp"],
      "env": {
        "TOP10_API_KEY": "your_api_key_here"
      }
    }
  }
}

Config file location:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Restart Claude Desktop, then try: "Publish a Top 10 list of the best JavaScript frameworks to Top10Grid"

Get an API key

  1. Go to top10grid.com/settings/keys
  2. Create a key with the n8n:write scope
  3. Paste it into the config above

Available tools

| Tool | Description | |---|---| | publish_list | Publish a finished list immediately (visible to public) | | save_draft | Save a list as draft for review before publishing | | update_list | Update title, description, or items on an existing list | | get_list | Fetch a list by ID or slug | | search_lists | Search Top10Grid for existing lists by keyword or category |

Tool reference

publish_list

{
  "title": "Top 10 JavaScript Frameworks in 2026",
  "category": "technology",
  "description": "The definitive ranking of JS frameworks by developer adoption and satisfaction.",
  "items": [
    { "rank": 1, "name": "React", "description": "Still the most widely used UI library." },
    { "rank": 2, "name": "Vue", "description": "Beloved for its gentle learning curve." }
  ],
  "locale": "US"
}

category must be one of: travel, technology, food, entertainment, sports, gaming, music, health, lifestyle, business, education, shopping, science, nature, film, finance, fashion, events

locale is optional — omit for global lists. Supported: HK, UK, US, SG, AU, JP, IN, BR, DE, FR, ZA

save_draft

Same parameters as publish_list. Returns a draft ID you can later publish via update_list.

update_list

{
  "id": "list_abc123",
  "title": "Updated title",
  "items": [
    { "rank": 1, "name": "React", "description": "Updated description." }
  ]
}

All fields except id are optional — only include what you want to change.

get_list

{ "id": "list_abc123" }

or by slug:

{ "slug": "top-10-javascript-frameworks-2026" }

search_lists

{
  "query": "javascript frameworks",
  "category": "technology",
  "limit": 10
}

Environment variables

| Variable | Required | Default | Description | |---|---|---|---| | TOP10_API_KEY | Yes | — | Your Top10Grid API key (t10_...) | | TOP10_API_URL | No | https://top10grid.com | Override for self-hosted or dev instances |

Error handling

The server returns structured errors. Common cases:

| Error | Cause | Fix | |---|---|---| | 401 Unauthorized | Missing or invalid API key | Check TOP10_API_KEY is set and starts with t10_ | | 403 Forbidden | Key lacks required scope | Regenerate key with n8n:write scope at /settings/keys | | 404 Not Found | List slug or ID does not exist | Check the slug is correct; use search_lists to find existing lists | | 422 Unprocessable Entity | Invalid list data | Check category is valid; list must have a title and at least 3 items with rank and name | | 429 Too Many Requests | Rate limit hit | You've hit the daily limit of 20 lists. Try again tomorrow, or wait 60 seconds for per-minute limits | | 500 Internal Server Error | Server-side issue | Retry after 30 seconds; open an issue if it persists |

Example: 401 Unauthorized

If Claude reports "Unauthorized", your API key is missing or invalid.

Error: 401 Unauthorized — Check your API key is valid and not expired.

Fix: verify TOP10_API_KEY is set in your config and starts with t10_. Generate a fresh key at top10grid.com/settings/keys.

Example: 404 Not Found

Error: 404 Not Found — The list slug 'top-10-unknown-list' doesn't exist.

Fix: use search_lists to find the correct slug before calling get_list or update_list.

Example: 422 Validation Error

Error: 422 Unprocessable Entity — Check your list has a title and at least 3 items.

Common causes:

  • Missing title field
  • Fewer than 3 items in the items array
  • Invalid category value (must be one of the supported categories)
  • Missing rank or name on an item

Example: 429 Rate Limited

Error: 429 Too Many Requests — You've hit the daily limit of 20 lists. Try again tomorrow.

The free tier allows up to 20 list publish/create operations per day and 100 read requests per minute. Wait until the next day for the daily cap, or 60 seconds for per-minute limits.

Example: handling a 403

If Claude reports "Forbidden — your API key doesn't have permission", your key was created without the n8n:write scope. Go to top10grid.com/settings/keys, delete the old key, and create a new one with the correct scope.

Prompt examples

Copy these into Claude Desktop after setup:

  • "Search Top10Grid for the best coffee cities and then publish an updated version with 2026 rankings."
  • "Create a draft Top 10 list of the most influential AI researchers — don't publish yet."
  • "Update list top-10-programming-languages-2025: change the description and move Python to #1."
  • "What Top 10 technology lists already exist on Top10Grid? Find ones about AI."

Development

git clone https://github.com/dailymannablessings-commits/Top10.git
cd packages/mcp-server
npm install
npm run build
TOP10_API_KEY=your_key node dist/index.js

Run tests:

npm test

Links