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

announcekit-mcp

v0.1.0

Published

AnnounceKit MCP server — connect AI clients (Claude, ChatGPT, Cursor) to AnnounceKit. Manage posts, view stats, and more over the AnnounceKit API.

Readme

AnnounceKit MCP Server

Connect AI clients (Claude, ChatGPT, Cursor, …) to AnnounceKit over the Model Context Protocol. Manage posts, view stats, triage feedback and feature requests, work the roadmap — all through AnnounceKit's GraphQL API, scoped to a single project by an access token.

It runs two ways:

  • Local (stdio): run it on your machine with your own token — great for a personal setup in Claude Desktop / Cursor / Claude Code.
  • Hosted (HTTP): point your client at our hosted endpoint and pass your token as a header — nothing to install.

This server is read + create/update only. It exposes no delete or other destructive operations; those stay dashboard-only by design.


Get a token

Create a project-scoped access token in AnnounceKit: Settings → API Tokens (owner/manager only). Tokens look like ak_pat_… and carry a scope:

| Scope | Can do | | ------- | ------------------------------------------------- | | read | queries only (the 15 read tools) | | write | read + create/update (all 29 tools, no deletes) |

A token acts on behalf of its creator; if that member loses access to the project, the token stops working — recreate it to replace.


Use it hosted (no install)

Point your client at the hosted endpoint and pass your token as a Bearer header. For Claude Code:

claude mcp add --transport http announcekit https://mcp.announcekit.app/mcp \
  --header "Authorization: Bearer ak_pat_…"

Any MCP client that supports Streamable HTTP works the same way — set the URL and the Authorization: Bearer header.


Use it locally (stdio)

Requires Node 22+.

npm install -g announcekit-mcp     # or: npx announcekit-mcp

Register it with your client. Example for Claude Code:

claude mcp add announcekit \
  --env ANNOUNCEKIT_TOKEN=ak_pat_… \
  -- announcekit-mcp

Environment variables

| Variable | Required | Default | Notes | | ------------------------- | -------- | --------------------------- | ---------------------------------------------- | | ANNOUNCEKIT_TOKEN | yes | — | your ak_pat_… access token | | ANNOUNCEKIT_API_URL | no | https://announcekit.app | override for self-hosted / staging | | ANNOUNCEKIT_GRAPHQL_PATH| no | /gq/v2 | GraphQL path |

See .env.example.


Tools (29)

Read (15): list_projects, list_labels, list_posts, get_post, list_post_templates, get_post_stats, get_post_status_summary, list_feedback, list_activities, get_nps, list_segments, list_external_users, list_feeds, list_feature_requests, list_roadmap

Write / create / update (14): save_label, create_post, update_post, publish_post, schedule_post, update_post_locale, save_post_template, generate_post_draft, improve_text, create_feature_request, comment_feature_request, reply_feature_request, create_roadmap_item, create_roadmap_status

A read token exposes the 15 read tools; a write token exposes all 29.


Develop

Requires Node 24 to build.

npm install
npm run build           # tsc -> dist/
npm run dev             # stdio entry, watch (tsx)
npm run dev:http        # hosted HTTP entry on :8080
npm run typecheck

Architecture: TypeScript, ESM, isolated package (no main-product code). Layered, one tool per file under src/tools/. Two entry points share one buildServer() factory — src/index.ts (stdio, one token from env) and src/http.ts (hosted, per-request Bearer token, stateless).

Adding a tool = one file under src/tools/ + one line in src/tools/index.ts.

Running the hosted variant

Dockerfile builds the hosted image: it runs dist/http.js, listens on :8080, and serves GET /health for load-balancer / container probes. It reads ANNOUNCEKIT_API_URL (defaults to production) and PORT from the environment; each request authenticates with its own Authorization: Bearer token, so the process is stateless and scales horizontally.

docker build -t announcekit-mcp .
docker run -p 8080:8080 -e ANNOUNCEKIT_API_URL=https://announcekit.app announcekit-mcp

License

MIT