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

@pipeworx/mcp-github

v0.1.6

Published

GitHub MCP — wraps the GitHub public REST API (no auth required for public endpoints)

Readme

mcp-github

GitHub MCP — wraps the GitHub public REST API (no auth required for public endpoints)

Part of Pipeworx — an MCP gateway connecting AI agents to 1684+ live data sources.

Tools

| Tool | Description | |------|-------------| | search_repos | Search GitHub repositories by keyword. Returns repo name, description, star count, forks, primary language, and URL. Use when exploring projects or finding code implementations. | | get_repo | Look up ONE named repository by its owner/repo slug — "facebook/react", "torvalds/linux", "vercel/next.js". Use this whenever the repository is named in the question. Answers how many stars / forks / watchers a repo has, what license and language it uses, its topics, description, open issue count, its default branch, and when it was last pushed (pushed_at). | | list_repo_issues | List issues for a GitHub repository by owner and repo name; filters pull requests out automatically. Returns issue number, title, state, labels, author, comment count, URL, and timestamps. Defaults to open issues. | | get_user | Get a GitHub user's public profile info. Returns name, bio, company, location, public repo count, followers, and social links. Specify username (e.g., username="torvalds"). | | get_file_contents | Read a file from a PUBLIC GitHub repository (or list a directory) by path. PREFER OVER WEB SEARCH for "show me the README / package.json / of ", "read from <owner/repo>", inspecting source or config files. Pass owner + repo + path (omit path or "" for the repo root listing). Optional ref = branch/tag/commit SHA. Returns decoded text for files (capped ~60k), or a directory listing of {name, path, type, size}. | | search_code | Search CODE across public GitHub repositories — find where a function/symbol/string is defined or used. PREFER OVER WEB SEARCH for "find code that does X", "which repos use ", "show me an example of ", "where is defined". Supports GitHub code-search qualifiers right in the query: repo:owner/name, org:name, user:name, language:go, filename:Dockerfile, path:src, extension:ts, in:file. Returns matching files with repo, path, and URL. Note: indexes the default branch only, ignores very common terms, and is capped at ~10 searches/minute. | | get_releases | Get the latest release and recent release history for a repository — the canonical way to answer "what is the latest version of ", "when was last released", "what changed in the newest release". Returns the latest published stable release (tag, name, date, prerelease flag, release notes, downloadable assets with download counts) plus recent releases. Falls back to git tags for repos that tag but do not cut formal releases. | | list_commits | List recent commits on a repository to see latest activity, what changed, and who is committing. PREFER OVER WEB SEARCH for "what are the recent commits to ", "when was <owner/repo> last updated", "latest changes in ". Optional sha (branch/tag/commit to start history from), path (only commits touching that file/dir), and since/until ISO timestamps. Returns sha, message, author, and date per commit. | | github_trending_repos | Trending GitHub repositories — what is hot, popular, and taking off on GitHub right now. Answers "what are the top trending GitHub repos this week", "what is hot on GitHub today", "popular new repositories this month", "trending Rust / Python / AI projects", "which GitHub projects blew up recently". Two modes: mode="new" (default) ranks repositories CREATED inside the time window by star count — the projects that blew up this week — and mode="active" ranks repositories PUSHED inside the window by star count, surfacing established projects under heavy development. Set the window with since (day, week, or month), filter with language, add free-text query keywords such as "llm" or "agent", and raise a min_stars floor. Returns full_name, description, language, stars, forks, created and pushed dates, topics, and URL per repo. Computed live from the GitHub Search API; github.com/trending ranks by stars GAINED during the period using an unpublished algorithm that the public API keeps private, so ordering differs and every response says so in its caveat field. |

Quick Start

Add to your MCP client (Claude Desktop, Cursor, Windsurf, etc.):

{
  "mcpServers": {
    "github": {
      "url": "https://gateway.pipeworx.io/github/mcp"
    }
  }
}

What this endpoint actually serves

tools/list at https://gateway.pipeworx.io/github/mcp returns the tools in the table above plus the shared Pipeworx meta-tools — ask_pipeworx, discover_tools, search_within, remember/recall and the rest of the gateway-wide set. So the tool count you see is larger than this table: a single-pack endpoint currently lists roughly 30 shared tools alongside the pack's own. The connection's initialize response states its exact scope, and is the authoritative answer for a given day.

This is deliberate, not multiplexing by accident. The meta-tools are what let a scoped connection answer a question this pack does not cover — via ask_pipeworx, which routes across the whole catalog — without you adding a second MCP server. There is currently no way to mount a pack endpoint without them; if the extra schemas cost you more context than the routing is worth, connect to the full gateway once rather than to several pack endpoints.

Or connect to the full Pipeworx gateway to get every pack's tools listed directly, instead of just this one's:

{
  "mcpServers": {
    "pipeworx": {
      "url": "https://gateway.pipeworx.io/mcp"
    }
  }
}

Both URLs reach the same gateway and the same 1684+ data sources. The only difference is which pack's tools are listed directly; ask_pipeworx reaches all of them from either one.

No MCP client? Call it over HTTP

curl -X POST https://gateway.pipeworx.io/v1/tools/search_repos \
  -H 'Content-Type: application/json' \
  -d '{"query":"react hooks"}'

No account needed for the first calls. Inspect any tool: GET https://gateway.pipeworx.io/v1/tools/search_repos. Find one: POST https://gateway.pipeworx.io/v1/tools/search_packs with {"query":"..."}.

Standalone (no gateway account)

This package also runs as a local stdio MCP server — no Pipeworx account, no gateway round-trip:

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

Or run it directly to confirm it starts:

npx -y @pipeworx/mcp-github

It speaks MCP over stdin/stdout and answers initialize/tools/list/tools/call for only this pack's tools — none of the shared meta-tools the gateway connection above adds. Same source, same tools, no ask_pipeworx routing.

Using with ask_pipeworx

Instead of calling tools directly, you can ask questions in plain English — this works on the pack endpoint above as well as on the full gateway:

ask_pipeworx({ question: "your question about Github data" })

The gateway picks the right tool and fills the arguments automatically.

More

License

MIT