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

@fosferon/gc-mcp

v1.3.0

Published

Universal MCP server for Grand Central — exposes gc_daemon API as MCP tools

Readme

gc_mcp

gc_mcp exposes Grand Central daemon capabilities as MCP tools.

It is a client, not a server of record: every tool call is proxied to a running gc_daemon. Without one listening on GC_DAEMON_URL (default http://localhost:4242) the tools will load and then fail to reach anything.

Install

Point your MCP client at it — no clone or build required:

{
  "mcpServers": {
    "gc": {
      "command": "npx",
      "args": ["-y", "@fosferon/gc-mcp"]
    }
  }
}

Or install it and use the binary directly:

npm install -g @fosferon/gc-mcp
gc-mcp                     # stdio (default) — the binary is unscoped
GC_MCP_TRANSPORT=streamable-http gc-mcp

From a clone, npm install && npm run build then point the client at node /path/to/gc_mcp/dist/index.js.

Parameter validation

Every tool rejects unsupported top-level parameters before its callback can contact gc_daemon. MCP returns its standard isError: true tool result; the diagnostic names the rejected parameter and lists the parameters registered for that tool. This makes a misspelled or obsolete option recoverable instead of silently ignoring it.

This boundary does not alter nested payload contracts: a declared map or object parameter continues to accept the nested values its existing schema allows.

Bee work queries

gc_work exposes Bee's query and dependency-analysis engine directly. Prefer a bounded server-side query over fetching a backlog and filtering it in the client:

{
  "action": "query",
  "text": "FameLine",
  "projects": ["mobus_umbrella", "lt_umbrella"],
  "status": "all",
  "order": "updated_at:desc",
  "detail": "compact",
  "limit": 10
}

Use search for relevance-ranked duplicate lookup, ready or the what_next intent for actionable work, traverse for a bounded dependency neighborhood, and critical_path for a blocker-to-goal or project-scoped path. The legacy plan action is only a compatibility alias for critical_path; scheduling is provided separately by gc_plan.

The tool also exposes discoverable registered intents and measures, project and agent allocation, assignments, locks, measurements, rollups, and bottleneck analysis. Call the relevant list action before guessing stored vocabulary.

Configuration

| Variable | Default | Purpose | |---|---|---| | GC_DAEMON_URL | http://localhost:4242 | Base URL of the gc_daemon this wraps. | | GC_MCP_TRANSPORT | stdio | stdio, streamable-http, or all. | | GC_MCP_HOST | 127.0.0.1 | Bind host, streamable-http only. | | GC_MCP_PORT | 8765 | Bind port, streamable-http only. | | GC_MCP_PATH | /mcp | HTTP path, streamable-http only. | | GH_TOKEN | — | GitHub token for the gh_* tools. Falls back to ~/.config/gh-token. | | GH_DEFAULT_REPO | unset | owner/repo used by the read-only gh_* tools when repo is omitted. |

Why GH_DEFAULT_REPO does not apply to writes

gh_issue_create, gh_issue_edit and gh_issue_comment require an explicit repo. A write that infers its target from ambient configuration will eventually file into the wrong tracker, and the caller who omitted the argument gets no signal that it happened — the operation succeeds, somewhere else. Reads carry no such consequence, so they may fall back to the environment.

There is deliberately no compiled-in default. A shipped repository name aims every installation's bare calls at whatever tracker the author last worked on.