mcp-github-learning-assistant 0.1.0__tar.gz → 0.1.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/.github/workflows/ci.yml +8 -0
- {mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/.gitignore +10 -2
- {mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/PKG-INFO +68 -4
- mcp_github_learning_assistant-0.1.1/README.md +139 -0
- {mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/pyproject.toml +3 -2
- mcp_github_learning_assistant-0.1.1/src/mcp_github_learning_assistant/__init__.py +3 -0
- {mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/src/mcp_github_learning_assistant/server.py +1 -1
- mcp_github_learning_assistant-0.1.0/README.md +0 -75
- mcp_github_learning_assistant-0.1.0/src/mcp_github_learning_assistant/__init__.py +0 -3
- {mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/.env.example +0 -0
- {mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/LICENSE +0 -0
- {mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/docs/decisions.md +0 -0
- {mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/docs/plan.md +0 -0
- {mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/docs/screenshots/inspector-analyze.jpg +0 -0
- {mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/docs/screenshots/inspector-tools.jpg +0 -0
- {mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/scripts/debug_issues.py +0 -0
- {mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/scripts/test_analyze.py +0 -0
- {mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/scripts/test_client.py +0 -0
- {mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/scripts/test_compare.py +0 -0
- {mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/scripts/test_issues.py +0 -0
- {mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/scripts/test_recommend.py +0 -0
- {mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/scripts/test_roadmap.py +0 -0
- {mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/scripts/test_similar.py +0 -0
- {mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/src/mcp_github_learning_assistant/__main__.py +0 -0
- {mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/src/mcp_github_learning_assistant/analyzer.py +0 -0
- {mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/src/mcp_github_learning_assistant/comparer.py +0 -0
- {mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/src/mcp_github_learning_assistant/github_client.py +0 -0
- {mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/src/mcp_github_learning_assistant/issuefind.py +0 -0
- {mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/src/mcp_github_learning_assistant/models/__init__.py +0 -0
- {mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/src/mcp_github_learning_assistant/models/outputs.py +0 -0
- {mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/src/mcp_github_learning_assistant/recommender.py +0 -0
- {mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/src/mcp_github_learning_assistant/roadmap.py +0 -0
- {mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/src/mcp_github_learning_assistant/similar.py +0 -0
- {mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/src/mcp_github_learning_assistant/tools/__init__.py +0 -0
- {mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/src/mcp_github_learning_assistant/tools/analyze.py +0 -0
- {mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/src/mcp_github_learning_assistant/tools/compare.py +0 -0
- {mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/src/mcp_github_learning_assistant/tools/info.py +0 -0
- {mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/src/mcp_github_learning_assistant/tools/issues.py +0 -0
- {mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/src/mcp_github_learning_assistant/tools/recommend.py +0 -0
- {mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/src/mcp_github_learning_assistant/tools/roadmap.py +0 -0
- {mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/src/mcp_github_learning_assistant/tools/similar.py +0 -0
- {mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/src/mcp_github_learning_assistant/tools/trending.py +0 -0
- {mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/src/mcp_github_learning_assistant/trending.py +0 -0
- {mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/tests/__init__.py +0 -0
- {mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/tests/test_analyzer.py +0 -0
- {mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/tests/test_info.py +0 -0
- {mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/tests/test_roadmap.py +0 -0
- {mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/tests/test_trending.py +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
# Python
|
|
2
2
|
__pycache__/
|
|
3
3
|
*.py[cod]
|
|
4
4
|
*.class
|
|
@@ -36,4 +36,12 @@ env/
|
|
|
36
36
|
.env
|
|
37
37
|
|
|
38
38
|
# pytest
|
|
39
|
-
.pytest_cache/
|
|
39
|
+
.pytest_cache/
|
|
40
|
+
|
|
41
|
+
# AI coding tool artifacts
|
|
42
|
+
.codex_patch
|
|
43
|
+
*.codex_patch
|
|
44
|
+
.codex/
|
|
45
|
+
CLAUDE.md
|
|
46
|
+
.aider*
|
|
47
|
+
.continue/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: mcp-github-learning-assistant
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.1
|
|
4
4
|
Summary: An MCP server that helps developers discover and learn from GitHub open-source projects
|
|
5
5
|
Author: iyiook333
|
|
6
6
|
License: MIT
|
|
@@ -14,7 +14,7 @@ Classifier: Programming Language :: Python :: 3.11
|
|
|
14
14
|
Classifier: Programming Language :: Python :: 3.12
|
|
15
15
|
Requires-Python: >=3.10
|
|
16
16
|
Requires-Dist: httpx>=0.27.0
|
|
17
|
-
Requires-Dist: mcp>=
|
|
17
|
+
Requires-Dist: mcp>=2.3.0
|
|
18
18
|
Requires-Dist: pydantic>=2.0.0
|
|
19
19
|
Requires-Dist: python-dotenv>=1.0.0
|
|
20
20
|
Provides-Extra: dev
|
|
@@ -25,6 +25,9 @@ Description-Content-Type: text/markdown
|
|
|
25
25
|
|
|
26
26
|
# MCP GitHub Learning Assistant
|
|
27
27
|
|
|
28
|
+
[](https://pypi.org/project/mcp-github-learning-assistant/)
|
|
29
|
+
[](https://github.com/iyiook333/mcp-github-learning-assistant/actions/workflows/ci.yml)
|
|
30
|
+
|
|
28
31
|
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.
|
|
29
32
|
|
|
30
33
|
## Features
|
|
@@ -56,6 +59,8 @@ Screenshots use dark-mode crops under 500KB each.
|
|
|
56
59
|
pip install mcp-github-learning-assistant
|
|
57
60
|
```
|
|
58
61
|
|
|
62
|
+
Requires Python 3.10+ and `mcp>=2.3.0`.
|
|
63
|
+
|
|
59
64
|
## Configuration
|
|
60
65
|
|
|
61
66
|
Set your GitHub Personal Access Token:
|
|
@@ -71,21 +76,80 @@ export GITHUB_TOKEN=your_github_token
|
|
|
71
76
|
```
|
|
72
77
|
|
|
73
78
|
Token scope: fine-grained PAT with no special permissions (public repo read-only) is enough.
|
|
79
|
+
## Entry Point
|
|
80
|
+
|
|
81
|
+
After `pip install mcp-github-learning-assistant`, the console command `mcp-github-learning` is available:
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
mcp-github-learning
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
This is equivalent to `python -m mcp_github_learning_assistant`.
|
|
74
88
|
|
|
75
89
|
## Usage in MCP Clients
|
|
76
90
|
|
|
77
91
|
### MCP Inspector (development)
|
|
78
92
|
|
|
79
93
|
```bash
|
|
80
|
-
npx @modelcontextprotocol/inspector
|
|
94
|
+
npx @modelcontextprotocol/inspector mcp-github-learning
|
|
81
95
|
```
|
|
82
96
|
|
|
83
97
|
### Cherry Studio
|
|
84
98
|
|
|
85
99
|
1. Open Cherry Studio, go to Settings -> MCP
|
|
86
|
-
2. Add an MCP server with the command `
|
|
100
|
+
2. Add an MCP server with the command `mcp-github-learning`
|
|
87
101
|
3. Set the environment variable `GITHUB_TOKEN`
|
|
88
102
|
|
|
103
|
+
### Claude Desktop
|
|
104
|
+
|
|
105
|
+
Edit `claude_desktop_config.json`:
|
|
106
|
+
|
|
107
|
+
```json
|
|
108
|
+
{
|
|
109
|
+
"mcpServers": {
|
|
110
|
+
"mcp-github-learning": {
|
|
111
|
+
"command": "mcp-github-learning",
|
|
112
|
+
"env": {
|
|
113
|
+
"GITHUB_TOKEN": "your_github_token"
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
> On Windows, if the command is not found, use the full path or fall back to `python -m mcp_github_learning_assistant`.
|
|
121
|
+
|
|
122
|
+
### DSH / Dify
|
|
123
|
+
|
|
124
|
+
Add an MCP server of type `stdio`:
|
|
125
|
+
|
|
126
|
+
```yaml
|
|
127
|
+
name: mcp-github-learning
|
|
128
|
+
transport: stdio
|
|
129
|
+
command: mcp-github-learning
|
|
130
|
+
env:
|
|
131
|
+
GITHUB_TOKEN: your_github_token
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
If the client does not support custom `env`, set `GITHUB_TOKEN` at the system level before launching the client.
|
|
135
|
+
|
|
136
|
+
## Current limitations
|
|
137
|
+
|
|
138
|
+
These are known and intentional, not bugs. They are listed so the tool's output is not over-trusted.
|
|
139
|
+
|
|
140
|
+
- **No AI/LLM layer.** Scoring is deterministic: star thresholds, README byte length, and directory-name
|
|
141
|
+
keyword matching. There are no embeddings and no model calls.
|
|
142
|
+
- **`recommend_learning_repos` uses a curated seed list**, currently covering Spring Boot, FastAPI, Vue,
|
|
143
|
+
React, Electron and HarmonyOS. Any other stack returns an empty list rather than a bad guess.
|
|
144
|
+
- **Only `get_trending_repos_for_learning` derives its ranking from data** — it computes
|
|
145
|
+
`stars / age_in_days` and re-sorts, since GitHub has no public trending API.
|
|
146
|
+
- **No HTTP caching, retry, backoff, or pagination.** Unauthenticated GitHub allows 60 requests/hour, and
|
|
147
|
+
one `recommend_learning_repos` call can spend several of them. Always set `GITHUB_TOKEN`.
|
|
148
|
+
- **Some parameters are accepted but not yet used** (`depth` in `get_repo_roadmap`, `user_level`
|
|
149
|
+
comparison weighting in `compare_learning_repos`). They are reserved for the next iteration.
|
|
150
|
+
- **Test coverage is partial.** 9 tests cover `analyze`, `roadmap`, `trending` and `info`; the
|
|
151
|
+
`recommender`, `comparer`, `similar` and `issuefind` modules have none.
|
|
152
|
+
|
|
89
153
|
## Development
|
|
90
154
|
|
|
91
155
|
```bash
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
# MCP GitHub Learning Assistant
|
|
2
|
+
|
|
3
|
+
[](https://pypi.org/project/mcp-github-learning-assistant/)
|
|
4
|
+
[](https://github.com/iyiook333/mcp-github-learning-assistant/actions/workflows/ci.yml)
|
|
5
|
+
|
|
6
|
+
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.
|
|
7
|
+
|
|
8
|
+
## Features
|
|
9
|
+
|
|
10
|
+
8 tools to support every stage of open-source learning:
|
|
11
|
+
|
|
12
|
+
| Tool | Description |
|
|
13
|
+
|------|-------------|
|
|
14
|
+
| `analyze_repo_for_learning` | Score a repo: stars, doc quality, difficulty, prerequisites, suggested learning path |
|
|
15
|
+
| `recommend_learning_repos` | Curated recommendations per tech stack (Spring Boot, FastAPI, Vue, React, Electron, HarmonyOS) |
|
|
16
|
+
| `get_repo_roadmap` | Generate a step-by-step learning roadmap from a repo's directory structure |
|
|
17
|
+
| `find_similar_repos` | Find thematically similar repos (same language/topic) for comparison |
|
|
18
|
+
| `find_good_first_issues` | Find beginner-friendly open issues (good first issue / help wanted) |
|
|
19
|
+
| `compare_learning_repos` | Compare 2+ candidate repos and suggest which to learn first |
|
|
20
|
+
| `get_trending_repos_for_learning` | Find breakout repos created recently by language/topic |
|
|
21
|
+
| `get_server_info` | Verify the MCP server connection |
|
|
22
|
+
|
|
23
|
+
## Screenshots
|
|
24
|
+
|
|
25
|
+
| MCP Inspector - Tools list | MCP Inspector - analyze_repo_for_learning result |
|
|
26
|
+
|:---:|:---:|
|
|
27
|
+
|  |  |
|
|
28
|
+
|
|
29
|
+
Screenshots use dark-mode crops under 500KB each.
|
|
30
|
+
|
|
31
|
+
## Installation
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
pip install mcp-github-learning-assistant
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Requires Python 3.10+ and `mcp>=2.3.0`.
|
|
38
|
+
|
|
39
|
+
## Configuration
|
|
40
|
+
|
|
41
|
+
Set your GitHub Personal Access Token:
|
|
42
|
+
|
|
43
|
+
```powershell
|
|
44
|
+
# Windows PowerShell
|
|
45
|
+
$env:GITHUB_TOKEN = "your_github_token"
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
# Linux / macOS
|
|
50
|
+
export GITHUB_TOKEN=your_github_token
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Token scope: fine-grained PAT with no special permissions (public repo read-only) is enough.
|
|
54
|
+
## Entry Point
|
|
55
|
+
|
|
56
|
+
After `pip install mcp-github-learning-assistant`, the console command `mcp-github-learning` is available:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
mcp-github-learning
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
This is equivalent to `python -m mcp_github_learning_assistant`.
|
|
63
|
+
|
|
64
|
+
## Usage in MCP Clients
|
|
65
|
+
|
|
66
|
+
### MCP Inspector (development)
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
npx @modelcontextprotocol/inspector mcp-github-learning
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Cherry Studio
|
|
73
|
+
|
|
74
|
+
1. Open Cherry Studio, go to Settings -> MCP
|
|
75
|
+
2. Add an MCP server with the command `mcp-github-learning`
|
|
76
|
+
3. Set the environment variable `GITHUB_TOKEN`
|
|
77
|
+
|
|
78
|
+
### Claude Desktop
|
|
79
|
+
|
|
80
|
+
Edit `claude_desktop_config.json`:
|
|
81
|
+
|
|
82
|
+
```json
|
|
83
|
+
{
|
|
84
|
+
"mcpServers": {
|
|
85
|
+
"mcp-github-learning": {
|
|
86
|
+
"command": "mcp-github-learning",
|
|
87
|
+
"env": {
|
|
88
|
+
"GITHUB_TOKEN": "your_github_token"
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
> On Windows, if the command is not found, use the full path or fall back to `python -m mcp_github_learning_assistant`.
|
|
96
|
+
|
|
97
|
+
### DSH / Dify
|
|
98
|
+
|
|
99
|
+
Add an MCP server of type `stdio`:
|
|
100
|
+
|
|
101
|
+
```yaml
|
|
102
|
+
name: mcp-github-learning
|
|
103
|
+
transport: stdio
|
|
104
|
+
command: mcp-github-learning
|
|
105
|
+
env:
|
|
106
|
+
GITHUB_TOKEN: your_github_token
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
If the client does not support custom `env`, set `GITHUB_TOKEN` at the system level before launching the client.
|
|
110
|
+
|
|
111
|
+
## Current limitations
|
|
112
|
+
|
|
113
|
+
These are known and intentional, not bugs. They are listed so the tool's output is not over-trusted.
|
|
114
|
+
|
|
115
|
+
- **No AI/LLM layer.** Scoring is deterministic: star thresholds, README byte length, and directory-name
|
|
116
|
+
keyword matching. There are no embeddings and no model calls.
|
|
117
|
+
- **`recommend_learning_repos` uses a curated seed list**, currently covering Spring Boot, FastAPI, Vue,
|
|
118
|
+
React, Electron and HarmonyOS. Any other stack returns an empty list rather than a bad guess.
|
|
119
|
+
- **Only `get_trending_repos_for_learning` derives its ranking from data** — it computes
|
|
120
|
+
`stars / age_in_days` and re-sorts, since GitHub has no public trending API.
|
|
121
|
+
- **No HTTP caching, retry, backoff, or pagination.** Unauthenticated GitHub allows 60 requests/hour, and
|
|
122
|
+
one `recommend_learning_repos` call can spend several of them. Always set `GITHUB_TOKEN`.
|
|
123
|
+
- **Some parameters are accepted but not yet used** (`depth` in `get_repo_roadmap`, `user_level`
|
|
124
|
+
comparison weighting in `compare_learning_repos`). They are reserved for the next iteration.
|
|
125
|
+
- **Test coverage is partial.** 9 tests cover `analyze`, `roadmap`, `trending` and `info`; the
|
|
126
|
+
`recommender`, `comparer`, `similar` and `issuefind` modules have none.
|
|
127
|
+
|
|
128
|
+
## Development
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
git clone https://github.com/iyiook333/mcp-github-learning-assistant.git
|
|
132
|
+
cd mcp-github-learning-assistant
|
|
133
|
+
pip install -e .[dev]
|
|
134
|
+
pytest
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## License
|
|
138
|
+
|
|
139
|
+
MIT
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "mcp-github-learning-assistant"
|
|
3
|
-
version = "0.1.
|
|
3
|
+
version = "0.1.1"
|
|
4
4
|
description = "An MCP server that helps developers discover and learn from GitHub open-source projects"
|
|
5
5
|
authors = [{name = "iyiook333"}]
|
|
6
6
|
license = {text = "MIT"}
|
|
@@ -16,7 +16,7 @@ classifiers = [
|
|
|
16
16
|
"Programming Language :: Python :: 3.12",
|
|
17
17
|
]
|
|
18
18
|
dependencies = [
|
|
19
|
-
"mcp>=
|
|
19
|
+
"mcp>=2.3.0",
|
|
20
20
|
"httpx>=0.27.0",
|
|
21
21
|
"pydantic>=2.0.0",
|
|
22
22
|
"python-dotenv>=1.0.0",
|
|
@@ -31,6 +31,7 @@ dev = [
|
|
|
31
31
|
|
|
32
32
|
[project.scripts]
|
|
33
33
|
mcp-github-learning-assistant = "mcp_github_learning_assistant.server:run"
|
|
34
|
+
mcp-github-learning = "mcp_github_learning_assistant.server:run"
|
|
34
35
|
|
|
35
36
|
[build-system]
|
|
36
37
|
requires = ["hatchling"]
|
|
@@ -14,7 +14,7 @@ app = MCPServer("mcp-github-learning-assistant")
|
|
|
14
14
|
@app.tool()
|
|
15
15
|
async def get_server_info() -> str:
|
|
16
16
|
"""Return basic server info to verify the MCP connection works."""
|
|
17
|
-
return "MCP GitHub Learning Assistant v0.1.
|
|
17
|
+
return "MCP GitHub Learning Assistant v0.1.1 - discover open-source projects worth learning"
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
@app.tool()
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
# MCP GitHub Learning Assistant
|
|
2
|
-
|
|
3
|
-
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.
|
|
4
|
-
|
|
5
|
-
## Features
|
|
6
|
-
|
|
7
|
-
8 tools to support every stage of open-source learning:
|
|
8
|
-
|
|
9
|
-
| Tool | Description |
|
|
10
|
-
|------|-------------|
|
|
11
|
-
| `analyze_repo_for_learning` | Score a repo: stars, doc quality, difficulty, prerequisites, suggested learning path |
|
|
12
|
-
| `recommend_learning_repos` | Curated recommendations per tech stack (Spring Boot, FastAPI, Vue, React, Electron, HarmonyOS) |
|
|
13
|
-
| `get_repo_roadmap` | Generate a step-by-step learning roadmap from a repo's directory structure |
|
|
14
|
-
| `find_similar_repos` | Find thematically similar repos (same language/topic) for comparison |
|
|
15
|
-
| `find_good_first_issues` | Find beginner-friendly open issues (good first issue / help wanted) |
|
|
16
|
-
| `compare_learning_repos` | Compare 2+ candidate repos and suggest which to learn first |
|
|
17
|
-
| `get_trending_repos_for_learning` | Find breakout repos created recently by language/topic |
|
|
18
|
-
| `get_server_info` | Verify the MCP server connection |
|
|
19
|
-
|
|
20
|
-
## Screenshots
|
|
21
|
-
|
|
22
|
-
| MCP Inspector - Tools list | MCP Inspector - analyze_repo_for_learning result |
|
|
23
|
-
|:---:|:---:|
|
|
24
|
-
|  |  |
|
|
25
|
-
|
|
26
|
-
Screenshots use dark-mode crops under 500KB each.
|
|
27
|
-
|
|
28
|
-
## Installation
|
|
29
|
-
|
|
30
|
-
```bash
|
|
31
|
-
pip install mcp-github-learning-assistant
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
## Configuration
|
|
35
|
-
|
|
36
|
-
Set your GitHub Personal Access Token:
|
|
37
|
-
|
|
38
|
-
```powershell
|
|
39
|
-
# Windows PowerShell
|
|
40
|
-
$env:GITHUB_TOKEN = "your_github_token"
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
```bash
|
|
44
|
-
# Linux / macOS
|
|
45
|
-
export GITHUB_TOKEN=your_github_token
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
Token scope: fine-grained PAT with no special permissions (public repo read-only) is enough.
|
|
49
|
-
|
|
50
|
-
## Usage in MCP Clients
|
|
51
|
-
|
|
52
|
-
### MCP Inspector (development)
|
|
53
|
-
|
|
54
|
-
```bash
|
|
55
|
-
npx @modelcontextprotocol/inspector python -m mcp_github_learning_assistant
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
### Cherry Studio
|
|
59
|
-
|
|
60
|
-
1. Open Cherry Studio, go to Settings -> MCP
|
|
61
|
-
2. Add an MCP server with the command `python -m mcp_github_learning_assistant`
|
|
62
|
-
3. Set the environment variable `GITHUB_TOKEN`
|
|
63
|
-
|
|
64
|
-
## Development
|
|
65
|
-
|
|
66
|
-
```bash
|
|
67
|
-
git clone https://github.com/iyiook333/mcp-github-learning-assistant.git
|
|
68
|
-
cd mcp-github-learning-assistant
|
|
69
|
-
pip install -e .[dev]
|
|
70
|
-
pytest
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
## License
|
|
74
|
-
|
|
75
|
-
MIT
|
|
File without changes
|
|
File without changes
|
{mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/docs/decisions.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/scripts/debug_issues.py
RENAMED
|
File without changes
|
{mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/scripts/test_analyze.py
RENAMED
|
File without changes
|
{mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/scripts/test_client.py
RENAMED
|
File without changes
|
{mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/scripts/test_compare.py
RENAMED
|
File without changes
|
{mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/scripts/test_issues.py
RENAMED
|
File without changes
|
|
File without changes
|
{mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/scripts/test_roadmap.py
RENAMED
|
File without changes
|
{mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/scripts/test_similar.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/tests/__init__.py
RENAMED
|
File without changes
|
{mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/tests/test_analyzer.py
RENAMED
|
File without changes
|
{mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/tests/test_info.py
RENAMED
|
File without changes
|
{mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/tests/test_roadmap.py
RENAMED
|
File without changes
|
{mcp_github_learning_assistant-0.1.0 → mcp_github_learning_assistant-0.1.1}/tests/test_trending.py
RENAMED
|
File without changes
|