Analyze GitHub repository dependents by star count. CLI + MCP server.
Project description
dep-rank
Rank GitHub dependents by stars.
dep-rank finds the most popular repositories that depend on a given GitHub project. It scrapes GitHub's dependents page, enriches results via the GraphQL API, and works as both a CLI tool and an MCP server for LLM assistants.
Quick Start
pip install dep-rank
dep-rank deps https://github.com/django/django
CLI Reference
dep-rank deps — List top dependents
dep-rank deps https://github.com/django/django
dep-rank deps https://github.com/django/django --rows 20 --min-stars 100
dep-rank deps https://github.com/django/django --descriptions --format json
dep-rank deps https://github.com/django/django --packages
| Option | Default | Description |
|---|---|---|
--rows |
10 | Number of results |
--min-stars |
5 | Minimum star count filter |
--format |
table | Output format: table or json |
--descriptions |
off | Fetch descriptions via GitHub API (requires token) |
--packages |
off | Search packages instead of repositories |
--token |
DEP_RANK_TOKEN |
GitHub token |
dep-rank search — Search code in dependents
dep-rank search https://github.com/django/django "from django.db import"
dep-rank search https://github.com/django/django "middleware" --max-repos 20
| Option | Default | Description |
|---|---|---|
--max-repos |
10 | Maximum repos to search |
--min-stars |
50 | Only search repos with this many stars |
--token |
DEP_RANK_TOKEN |
GitHub token (required) |
dep-rank mcp — Start MCP server
dep-rank mcp # STDIO (default)
dep-rank mcp --transport http --port 8000 # HTTP
dep-rank cache — Manage cache
dep-rank cache stats # Show cache size
dep-rank cache clear # Clear all cached data
MCP Server
dep-rank includes an MCP server for use with Claude Desktop, Claude Code, Cursor, and other MCP-compatible tools.
Tools
| Tool | Description | Requires Token |
|---|---|---|
get_top_dependents |
List top dependents by stars | No |
get_dependent_details |
Enrich with descriptions via GraphQL | Yes |
search_dependent_code |
Search code across dependents | Yes |
Prompts
| Prompt | Description |
|---|---|
analyze_ecosystem |
Guided workflow for full ecosystem analysis |
find_usage_patterns |
Find how dependents use a specific API |
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"dep-rank": {
"command": "uvx",
"args": ["dep-rank-mcp"],
"env": {
"DEP_RANK_TOKEN": "ghp_your_token_here"
}
}
}
}
Claude Code
Add to .mcp.json in your project:
{
"mcpServers": {
"dep-rank": {
"command": "uvx",
"args": ["dep-rank-mcp"],
"env": {
"DEP_RANK_TOKEN": "ghp_your_token_here"
}
}
}
}
HTTP Deployment
DEP_RANK_TOKEN=ghp_xxx dep-rank mcp --transport http --port 8000
Authentication
Set the DEP_RANK_TOKEN environment variable with a GitHub personal access token:
export DEP_RANK_TOKEN=ghp_your_token_here
What works without a token:
dep-rank deps— core scraping and star ranking
What requires a token:
--descriptionsflag — fetches repo descriptions via GitHub GraphQL APIdep-rank search— code search across dependents- MCP tools:
get_dependent_details,search_dependent_code
Create a token at github.com/settings/tokens with public_repo scope.
How It Works
dep-rank uses a three-stage pipeline:
- Scrape — fetches GitHub's
/network/dependentsHTML pages to discover all dependents and their approximate star counts - Enrich (optional) — one GraphQL batch query fetches accurate star counts and descriptions for the top N results (replaces 100 individual REST API calls)
- Present — returns structured results as a Rich table (CLI) or Pydantic model (MCP)
Responses are cached in a local SQLite database (~/.cache/dep-rank/) with ETag support for conditional requests.
Development
# Prerequisites: Python 3.11+, uv
uv sync
uv run pytest
uv run ruff check .
uv run ruff format --check .
uv run mypy dep_rank/
Acknowledgments
dep-rank is a full rewrite of ghtopdep by Andriy Orehov. The original project is licensed under MIT.
License
MIT — see LICENSE for details.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dep_rank-0.1.0.tar.gz.
File metadata
- Download URL: dep_rank-0.1.0.tar.gz
- Upload date:
- Size: 197.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8227ee22996cc65c95bd3730072b935a5b8f2a5704687b7155a6cbc83f011117
|
|
| MD5 |
ff0be9a6dba0045079e4ab827cd3d3af
|
|
| BLAKE2b-256 |
6d483a82805b16db1680b6676ab52850c14d70e6893130403a1dac52e57f90ca
|
Provenance
The following attestation bundles were made for dep_rank-0.1.0.tar.gz:
Publisher:
release.yml on j7an/dep-rank
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dep_rank-0.1.0.tar.gz -
Subject digest:
8227ee22996cc65c95bd3730072b935a5b8f2a5704687b7155a6cbc83f011117 - Sigstore transparency entry: 1426155704
- Sigstore integration time:
-
Permalink:
j7an/dep-rank@e8416ceae56dd7e6160bad3dd1a607094d31a4ef -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/j7an
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e8416ceae56dd7e6160bad3dd1a607094d31a4ef -
Trigger Event:
push
-
Statement type:
File details
Details for the file dep_rank-0.1.0-py3-none-any.whl.
File metadata
- Download URL: dep_rank-0.1.0-py3-none-any.whl
- Upload date:
- Size: 22.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
afd95120c6d4f19320d87461be2728ca1e7ae6e7f37001618f008cae1e8732ab
|
|
| MD5 |
320c396ecd2d7c9b56b9396eb814f466
|
|
| BLAKE2b-256 |
df2ce67021096344a172db87fe5dff6f7ca29713a8598074210ff3cfff4e785f
|
Provenance
The following attestation bundles were made for dep_rank-0.1.0-py3-none-any.whl:
Publisher:
release.yml on j7an/dep-rank
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dep_rank-0.1.0-py3-none-any.whl -
Subject digest:
afd95120c6d4f19320d87461be2728ca1e7ae6e7f37001618f008cae1e8732ab - Sigstore transparency entry: 1426155813
- Sigstore integration time:
-
Permalink:
j7an/dep-rank@e8416ceae56dd7e6160bad3dd1a607094d31a4ef -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/j7an
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e8416ceae56dd7e6160bad3dd1a607094d31a4ef -
Trigger Event:
push
-
Statement type: