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

@grantfox-oss/mcp

v0.1.2

Published

GrantFox MCP server for maintainers to manage projects and publish issues from Claude.

Readme

@grantfox-oss/mcp

MCP server that exposes GrantFox tools to Claude Code (and any other MCP client). Designed for maintainers - list your projects, manage issues, attach campaigns, assign contributors, all from your editor.

Quick start (for users)

# 1. Register the MCP server with Claude Code (requires `claude` on PATH)
npx -y @grantfox-oss/mcp setup claude --write

# 2. Generate a Claude Code token in the maintainer app:
#    Settings → Personal Access Tokens → Generate Claude Code Token
#    Select the project(s) Claude can publish issues for, then copy the gfox_... value.

# 3. Sign in locally
npx -y @grantfox-oss/mcp auth login

That's it. setup claude --write runs claude mcp add-json grantfox ... -s user (user scope, all projects). Without --write, the same command is printed for you to run manually. Restart Claude Code and run /mcp to confirm grantfox is connected.

The token is stored locally at ~/.grantfox/config.json with mode 0600. GrantFox stores only a hash of personal access tokens and cannot show them again.

By default the MCP uses https://api.grantfox.xyz/api. To point at another backend for testing, pass the same API URL to setup and login:

npx -y @grantfox-oss/mcp setup claude --write --api-url https://staging-api.example.com/api
npx -y @grantfox-oss/mcp auth login --api-url https://staging-api.example.com/api

Tools

| Tool | What it does | |---|---| | grantfox_get_me | Returns the authenticated user. Quick auth check. | | grantfox_list_my_projects | Projects where you are an active maintainer. | | grantfox_get_project | Full project details, including its repositories. | | grantfox_list_issues | Issues for a project, filterable by state, labels, campaign, etc. | | grantfox_get_issue | Full issue detail + contributor applications. | | grantfox_prepare_issue | Prepare an issue draft for maintainer review. Does not publish. | | grantfox_publish_issue | Publish a reviewed draft using draft_id and approved_hash. | | grantfox_attach_issue_to_campaign | Attach (or detach with null) an issue to a campaign. MAINTAINER. | | grantfox_assign_contributor | Assign a GitHub user to an issue. MAINTAINER. | | grantfox_unassign_contributor | Unassign a GitHub user from an issue. MAINTAINER. | | grantfox_list_campaigns | List GrantFox campaigns. | | grantfox_list_notifications | Your notifications. | | grantfox_list_my_tokens | Your active PATs (no plaintext). Audit only - manage from the UI. |

Auth commands

grantfox-mcp auth login [--token gfox_...] [--api-url <url>]  # save token
grantfox-mcp auth status [--api-url <url>]                    # verify token
grantfox-mcp auth logout                                      # clear token
grantfox-mcp setup claude [--write] [--api-url <url>]         # register MCP via claude CLI

setup claude --write registers the server via claude mcp add-json ... -s user (user scope, all projects) and requires the claude CLI on PATH. Without --write, it prints that command for manual copy-paste.

Token file: ~/.grantfox/config.json (mode 0600). The selected API URL is stored with the token so serve can use the same backend later.

How to verify the server is working

A scripted proof runs 12 checks (build, MCP handshake, schema validation, friendly errors, auth state, live API calls, optional create-issue smoke test):

cd apps/mcp-server

npm run proof:offline  # build + offline MCP checks
npm run proof:live     # live API checks with your local token

npm run proof:live --project <uuid> lets you target a specific project.

Local dev

Point at a local core-api:

GRANTFOX_API_URL=http://localhost:3000 node dist/index.js serve

What's NOT included (and why)

  • Project create/delete - heavy approval flow, doesn't fit one-shot tool calls.
  • Escrow operations - involves money; deserves explicit UI confirmation.
  • Application accept/reject - depends on human judgment; do it from the UI.
  • Token create/delete - security boundary belongs in the web UI, not a tool. The MCP can list its own tokens for auditing.