GitHub Trending MCP Server
A Model Context Protocol (MCP) server that provides GitHub trending repositories information. This server allows LLMs to fetch and analyze trending repositories on GitHub.
Supports both stdio and SSE transports!
Features
- 🔥 Get real-time GitHub trending repositories
- 🌐 Filter by programming language (Python, JavaScript, Rust, Go, etc.)
- 📅 Filter by time range (daily, weekly, monthly)
- 🗣️ Filter by spoken language (Chinese, English, Japanese, etc.)
- 📊 Returns detailed repository information including stars, forks, description, and contributors
- 🔌 Two transport modes: stdio (for Claude Desktop/Cursor) and SSE (for web/remote access)
Prerequisites
Recommended: Install uv for the best experience:
# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
Installation
Option 1: Using uvx (Recommended - No installation needed)
Just configure your MCP client directly, uvx will handle everything automatically.
Option 2: Using pip
pip install github-trending-mcp
Transport Modes
This package provides two commands for different use cases:
| Command | Transport | Use Case |
|---|---|---|
github-trending-mcp |
stdio | Claude Desktop, Cursor, local CLI |
github-trending-mcp-sse |
SSE (HTTP) | Web apps, remote access, multi-client |
📡 Mode 1: stdio (Default)
Best for local MCP clients like Claude Desktop and Cursor.
Configuration for Claude Desktop / Cursor
Add to your configuration file:
- Claude Desktop (macOS):
~/Library/Application Support/Claude/claude_desktop_config.json - Claude Desktop (Windows):
%APPDATA%\Claude\claude_desktop_config.json - Cursor:
~/.cursor/mcp.json
Using uvx (✅ Recommended)
{
"mcpServers": {
"github-trending": {
"command": "uvx",
"args": ["github-trending-mcp"]
}
}
}
Using python -m (If uvx not available)
{
"mcpServers": {
"github-trending": {
"command": "python3",
"args": ["-m", "github_trending_mcp"]
}
}
}
🌐 Mode 2: SSE (HTTP Server)
Best for web applications, remote access, or when multiple clients need to connect.
Start the SSE Server
# Default: http://127.0.0.1:8000
github-trending-mcp-sse
# Custom host and port
github-trending-mcp-sse --host 0.0.0.0 --port 8080
# Using uvx
uvx github-trending-mcp-sse --port 8000
SSE Server Options
| Option | Default | Description |
|---|---|---|
--host |
127.0.0.1 |
Host to bind to |
--port |
8000 |
Port to bind to |
Configuration for SSE Mode
{
"mcpServers": {
"github-trending": {
"url": "http://localhost:8000/sse"
}
}
}
Remote Access with ngrok
For temporary remote access without deploying to a cloud server:
# Terminal 1: Start SSE server
github-trending-mcp-sse --port 8000
# Terminal 2: Expose with ngrok
ngrok http 8000
Then use the ngrok URL in your configuration:
{
"mcpServers": {
"github-trending": {
"url": "https://xxxx-xx-xx-xxx-xx.ngrok.io/sse"
}
}
}
Troubleshooting
"Command not found" Error
If you see a red dot or "Error" status in your MCP client:
- Recommended: Use the uvx method
- Alternative: Use
python3 -mmethod - Check PATH: If using pip install, ensure Python's bin directory is in your PATH
Find your Python path
# macOS/Linux
which python3
# Windows
where python
Then use the full path in your configuration:
{
"mcpServers": {
"github-trending": {
"command": "/full/path/to/python3",
"args": ["-m", "github_trending_mcp"]
}
}
}
Available Tools
get_github_trending
Fetches GitHub trending repositories with optional filters.
Parameters:
| Parameter | Type | Description | Default |
|---|---|---|---|
language |
string | Programming language filter (e.g., 'python', 'javascript', 'rust') | "" (all) |
since |
string | Time range: 'daily', 'weekly', or 'monthly' | "daily" |
spoken_language |
string | Spoken language code (e.g., 'zh', 'en', 'ja') | "" (all) |
Example Usage:
Get the trending Python repositories this week
Show me trending Rust projects with Chinese descriptions
What are the monthly trending JavaScript repositories?
Response Format
The tool returns formatted markdown with repository information:
# GitHub Trending Repositories
**Filters:** Language: python, Period: daily, Spoken Language: All
**Total:** 25 repositories
---
## 1. [owner/repo-name](https://github.com/owner/repo-name)
📝 Repository description here
- ⭐ Stars: 1,234
- 🍴 Forks: 567
- 💻 Language: Python
- 📈 234 stars today
- 👥 Built by: user1, user2, user3
Development
Clone the repository
git clone https://github.com/wwango/github-trending-mcp.git
cd github-trending-mcp
Install dependencies
uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
uv pip install -e ".[dev]"
Run tests
pytest
Build the package
python -m build
License
MIT License - see LICENSE for details.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Acknowledgments
- Built with MCP (Model Context Protocol)
- Data sourced from GitHub Trending
Metadata
Release files for github-trending-mcp 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| github_trending_mcp-0.2.1.tar.gz | 8.0 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| github_trending_mcp-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 17.9 kB
Release files / github_trending_mcp-0.2.1.tar.gz
| Download URL | github_trending_mcp-0.2.1.tar.gz |
|---|---|
| Size | 8.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
192e95735d1bdb6a955caf6a1bc6a9515b44bd4c2ede9ce46a4b2b6f51de0e9a
|
|
BLAKE2b-256 checksum How to use checksums |
9beb181c64e0c276a10a8acf6479d93871d30ffdc271826a290f5af7f976273b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|
Release files / github_trending_mcp-0.2.1-py3-none-any.whl
| Download URL | github_trending_mcp-0.2.1-py3-none-any.whl |
|---|---|
| Size | 9.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ce6cfd59af7715503d75eabf37cf5014125e2ef6930c5210c6b5ce27df435ca3
|
|
BLAKE2b-256 checksum How to use checksums |
bb8a0ab12173834940603cd8689c9c96665a7dcaa9d8fd31d3b05accb88c5d25
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|
Security for github-trending-mcp 0.2.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.