Skip to main content

MCP GitHub Learning Assistant

PyPI version CI

An MCP (Model Context Protocol) server that helps developers discover and learn from open-source projects on GitHub, based on their skill level and goals.

Features

8 tools to support every stage of open-source learning:

Tool Description
analyze_repo_for_learning Score a repo: stars, doc quality, difficulty, prerequisites, suggested learning path
recommend_learning_repos Curated recommendations per tech stack (Spring Boot, FastAPI, Vue, React, Electron, HarmonyOS)
get_repo_roadmap Generate a step-by-step learning roadmap from a repo's directory structure
find_similar_repos Find thematically similar repos (same language/topic) for comparison
find_good_first_issues Find beginner-friendly open issues (good first issue / help wanted)
compare_learning_repos Compare 2+ candidate repos and suggest which to learn first
get_trending_repos_for_learning Find breakout repos created recently by language/topic
get_server_info Verify the MCP server connection

Screenshots

MCP Inspector - Tools list MCP Inspector - analyze_repo_for_learning result
Inspector Tools Inspector Analyze

Screenshots use dark-mode crops under 500KB each.

Installation

pip install mcp-github-learning-assistant

Requires Python 3.10+ and mcp>=2.3.0.

Configuration

Set your GitHub Personal Access Token:

# Windows PowerShell
$env:GITHUB_TOKEN = "your_github_token"
# Linux / macOS
export GITHUB_TOKEN=your_github_token

Token scope: fine-grained PAT with no special permissions (public repo read-only) is enough.

Entry Point

After pip install mcp-github-learning-assistant, the console command mcp-github-learning is available:

mcp-github-learning

This is equivalent to python -m mcp_github_learning_assistant.

Usage in MCP Clients

MCP Inspector (development)

npx @modelcontextprotocol/inspector mcp-github-learning

Cherry Studio

  1. Open Cherry Studio, go to Settings -> MCP
  2. Add an MCP server with the command mcp-github-learning
  3. Set the environment variable GITHUB_TOKEN

Claude Desktop

Edit claude_desktop_config.json:

{
  "mcpServers": {
    "mcp-github-learning": {
      "command": "mcp-github-learning",
      "env": {
        "GITHUB_TOKEN": "your_github_token"
      }
    }
  }
}

On Windows, if the command is not found, use the full path or fall back to python -m mcp_github_learning_assistant.

DSH / Dify

Add an MCP server of type stdio:

name: mcp-github-learning
transport: stdio
command: mcp-github-learning
env:
  GITHUB_TOKEN: your_github_token

If the client does not support custom env, set GITHUB_TOKEN at the system level before launching the client.

Current limitations

These are known and intentional, not bugs. They are listed so the tool's output is not over-trusted.

  • No AI/LLM layer. Scoring is deterministic: star thresholds, README byte length, and directory-name keyword matching. There are no embeddings and no model calls.
  • recommend_learning_repos uses a curated seed list, currently covering Spring Boot, FastAPI, Vue, React, Electron and HarmonyOS. Any other stack returns an empty list rather than a bad guess.
  • Only get_trending_repos_for_learning derives its ranking from data — it computes stars / age_in_days and re-sorts, since GitHub has no public trending API.
  • No HTTP caching, retry, backoff, or pagination. Unauthenticated GitHub allows 60 requests/hour, and one recommend_learning_repos call can spend several of them. Always set GITHUB_TOKEN.
  • Some parameters are accepted but not yet used (depth in get_repo_roadmap, user_level comparison weighting in compare_learning_repos). They are reserved for the next iteration.
  • Test coverage is partial. 9 tests cover analyze, roadmap, trending and info; the recommender, comparer, similar and issuefind modules have none.

Development

git clone https://github.com/iyiook333/mcp-github-learning-assistant.git
cd mcp-github-learning-assistant
pip install -e .[dev]
pytest

License

MIT

Metadata

Release files for mcp-github-learning-assistant 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mcp-github-learning-assistant 0.1.1
File Size Uploaded
mcp_github_learning_assistant-0.1.1.tar.gz 364.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mcp-github-learning-assistant 0.1.1
File Interpreter ABI Platform
mcp_github_learning_assistant-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 388.8 kB

Release files / mcp_github_learning_assistant-0.1.1.tar.gz

Download URL mcp_github_learning_assistant-0.1.1.tar.gz
Size 364.9 kB
Tags Source
SHA-256 checksum
How to use checksums
719f1c2c245ec36d65b18f827628d4dec99e920cffbcd2e00a92f66139fecb12
BLAKE2b-256 checksum
How to use checksums
f7b467b3e5252b2652d84bdef8ce00b1f6df40e3be0dc9af6732ada8baf916ef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.10

Release files / mcp_github_learning_assistant-0.1.1-py3-none-any.whl

Download URL mcp_github_learning_assistant-0.1.1-py3-none-any.whl
Size 23.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4ab472354bdbd2db9b184fc63e9c807b10524e744f045cdca6a921847812d9de
BLAKE2b-256 checksum
How to use checksums
8c6c4c0268fbce3db1ef1bc11abf699002d16a9cdd70d59833d361d37241419d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.10

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page