restricted-github-mcp 1.0.0 → 1.0.1
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.
- package/README.md +31 -88
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,105 +1,48 @@
|
|
|
1
|
-
# GitHub MCP Server
|
|
1
|
+
# Restricted GitHub MCP Server
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Un serveur MCP (Model Context Protocol) spécialisé pour automatiser le workflow Git local vers GitHub. Ce serveur est conçu pour être minimaliste et sécurisé, en limitant les actions possibles à un flux de travail spécifique.
|
|
4
4
|
|
|
5
|
-
## 🚀 Fonctionnalités
|
|
5
|
+
## 🚀 Fonctionnalités Automatisées
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Contrairement aux serveurs GitHub classiques, celui-ci ne propose que deux outils hautement automatisés :
|
|
8
8
|
|
|
9
|
-
- **`
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
- **`
|
|
9
|
+
- **`push`** :
|
|
10
|
+
1. Exécute `git add .` (ajoute tous les fichiers modifiés et nouveaux).
|
|
11
|
+
2. Crée un commit avec le message fourni.
|
|
12
|
+
3. Pousse automatiquement vers la branche cible définie dans la configuration.
|
|
13
|
+
- **`pull_request`** :
|
|
14
|
+
1. Crée une Pull Request sur GitHub.
|
|
15
|
+
2. Utilise automatiquement la branche de destination (`TARGET_BRANCH`) et la branche de base (`BASE_BRANCH`) configurées.
|
|
14
16
|
|
|
15
|
-
##
|
|
17
|
+
## 🛠️ Installation & Utilisation via npx
|
|
16
18
|
|
|
17
|
-
|
|
19
|
+
Une fois publié, ce serveur peut être utilisé sans installation globale :
|
|
18
20
|
|
|
19
|
-
- **`ALLOWED_REPOS`** : Liste des dépôts (`propriétaire/nom`) que l'agent est autorisé à manipuler.
|
|
20
|
-
- **`ALLOWED_BRANCHES`** : Masques de branches autorisés pour les pushs (ex: `feature/*`, `mcp-*`).
|
|
21
|
-
- **`READ_ONLY`** : Si mis à `true`, toutes les actions d'écriture (push, PR, commentaires) sont désactivées.
|
|
22
|
-
|
|
23
|
-
## 🛠️ Installation
|
|
24
|
-
|
|
25
|
-
1. **Cloner le projet** (ou copier les fichiers).
|
|
26
|
-
2. **Installer les dépendances** :
|
|
27
|
-
```bash
|
|
28
|
-
npm install
|
|
29
|
-
```
|
|
30
|
-
3. **Configurer l'environnement** :
|
|
31
|
-
Créez un fichier `.env` à la racine (voir section Configuration ci-dessous).
|
|
32
|
-
|
|
33
|
-
## ⚙️ Configuration
|
|
34
|
-
|
|
35
|
-
Créez un fichier `.env` avec les variables suivantes :
|
|
36
|
-
|
|
37
|
-
```env
|
|
38
|
-
# Votre Token d'accès personnel GitHub (PAT)
|
|
39
|
-
GITHUB_TOKEN=ghp_xxxxxxxxxxxx
|
|
40
|
-
|
|
41
|
-
# Dépôts autorisés (séparés par des virgules)
|
|
42
|
-
ALLOWED_REPOS=votre-org/votre-repo,un-autre/depot
|
|
43
|
-
|
|
44
|
-
# Branches autorisées pour le push (supporte *)
|
|
45
|
-
ALLOWED_BRANCHES=main,develop,mcp-*
|
|
46
|
-
|
|
47
|
-
# Mode lecture seule (true/false)
|
|
48
|
-
READ_ONLY=false
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
## 🖥️ Utilisation
|
|
52
|
-
|
|
53
|
-
### Mode Développement
|
|
54
|
-
Pour lancer le serveur directement avec `ts-node` :
|
|
55
21
|
```bash
|
|
56
|
-
|
|
22
|
+
npx restricted-github-mcp
|
|
57
23
|
```
|
|
58
24
|
|
|
59
|
-
|
|
60
|
-
Pour compiler en JavaScript :
|
|
61
|
-
```bash
|
|
62
|
-
npm run build
|
|
63
|
-
node dist/index.js
|
|
64
|
-
```
|
|
25
|
+
## ⚙️ Configuration
|
|
65
26
|
|
|
66
|
-
|
|
67
|
-
Pour utiliser ce serveur dans Cursor :
|
|
68
|
-
1. Allez dans les paramètres de Cursor (Cursor Settings) > MCP.
|
|
69
|
-
2. Ajoutez un nouveau serveur MCP :
|
|
70
|
-
- **Name** : GitHub Controlled
|
|
71
|
-
- **Type** : `command`
|
|
72
|
-
- **Command** : `node "C:/chemin/vers/githubmcp/node_modules/ts-node/dist/bin.js" "C:/chemin/vers/githubmcp/src/index.ts"`
|
|
73
|
-
- **Environment Variables** : (Vous pouvez aussi les définir ici au lieu du fichier .env)
|
|
27
|
+
Le serveur se configure exclusivement via des variables d'environnement. Ces variables doivent être définies dans votre client MCP (Cursor, Claude Desktop) ou dans un fichier `.env`.
|
|
74
28
|
|
|
75
|
-
|
|
76
|
-
|
|
29
|
+
| Variable | Description | Exemple |
|
|
30
|
+
| :--- | :--- | :--- |
|
|
31
|
+
| `GITHUB_TOKEN` | Votre Personal Access Token GitHub (PAT) | `github_pat_...` |
|
|
32
|
+
| `TARGET_REPO` | Le dépôt cible au format `propriétaire/nom` | `MonPseudo/mon-expose` |
|
|
33
|
+
| `TARGET_BRANCH` | La branche sur laquelle le code doit être poussé | `feature/test` |
|
|
34
|
+
| `BASE_BRANCH` | (Optionnel) La branche de destination pour la PR | `main` (défaut) |
|
|
35
|
+
| `READ_ONLY` | (Optionnel) Désactive les actions d'écriture | `false` (défaut) |
|
|
77
36
|
|
|
78
|
-
|
|
79
|
-
{
|
|
80
|
-
"mcpServers": {
|
|
81
|
-
"github-controlled": {
|
|
82
|
-
"command": "node",
|
|
83
|
-
"args": [
|
|
84
|
-
"C:/chemin/vers/githubmcp/node_modules/ts-node/dist/bin.js",
|
|
85
|
-
"C:/chemin/vers/githubmcp/src/index.ts"
|
|
86
|
-
],
|
|
87
|
-
"env": {
|
|
88
|
-
"GITHUB_TOKEN": "votre_token",
|
|
89
|
-
"ALLOWED_REPOS": "org/repo",
|
|
90
|
-
"ALLOWED_BRANCHES": "mcp-*",
|
|
91
|
-
"READ_ONLY": "false"
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
```
|
|
37
|
+
## 📦 Publication Automatisée
|
|
97
38
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
39
|
+
Ce projet est configuré pour être publié sur npm via **GitHub Actions** à chaque nouvelle "Release" sur le dépôt GitHub.
|
|
40
|
+
|
|
41
|
+
1. Modifiez la version dans `package.json`.
|
|
42
|
+
2. Poussez votre code sur GitHub.
|
|
43
|
+
3. Créez une nouvelle "Release" sur GitHub.
|
|
44
|
+
4. Le workflow OIDC (Trusted Publishing) s'occupera de la publication sur npm sans jeton statique.
|
|
103
45
|
|
|
104
46
|
## 📄 Licence
|
|
47
|
+
|
|
105
48
|
ISC
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "restricted-github-mcp",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"@modelcontextprotocol/inspector": "^0.19.0",
|
|
32
|
-
"@types/node": "^25.0.10",
|
|
32
|
+
"@types/node": "^25.0.10",
|
|
33
33
|
"tsx": "^4.21.0",
|
|
34
34
|
"typescript": "^5.9.3"
|
|
35
35
|
}
|