restricted-github-mcp 1.0.0 → 1.0.6

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.
Files changed (2) hide show
  1. package/README.md +31 -88
  2. package/package.json +5 -6
package/README.md CHANGED
@@ -1,105 +1,48 @@
1
- # GitHub MCP Server (Controlled)
1
+ # Restricted GitHub MCP Server
2
2
 
3
- Ce serveur implémente le **Model Context Protocol (MCP)** pour permettre à des agents IA (comme Cursor, Claude Desktop, etc.) d'interagir avec GitHub de manière sécurisée et contrôlée.
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
- Le serveur expose plusieurs outils (tools) pour manipuler les dépôts GitHub :
7
+ Contrairement aux serveurs GitHub classiques, celui-ci ne propose que deux outils hautement automatisés :
8
8
 
9
- - **`get_file_contents`** : Lire le contenu d'un fichier.
10
- - **`git_push`** : Créer ou mettre à jour un fichier (Push).
11
- - **`pull_request_create`** : Créer une Pull Request.
12
- - **`list_issues`** : Lister les issues et PRs d'un dépôt.
13
- - **`create_issue_comment`** : Ajouter un commentaire sur une issue ou PR.
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
- ## 🔒 Sécurité et Contrôle
17
+ ## 🛠️ Installation & Utilisation via npx
16
18
 
17
- Le serveur est conçu avec un principe de contrôle strict via des variables d'environnement :
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
- npm start
22
+ npx restricted-github-mcp
57
23
  ```
58
24
 
59
- ### Build et Production
60
- Pour compiler en JavaScript :
61
- ```bash
62
- npm run build
63
- node dist/index.js
64
- ```
25
+ ## ⚙️ Configuration
65
26
 
66
- ### Intégration dans Cursor
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
- ### Intégration dans Claude Desktop
76
- Ajoutez la configuration suivante dans votre fichier `claude_desktop_config.json` :
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
- ```json
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
- ## 🧪 Debugging
99
- Vous pouvez utiliser l'inspecteur MCP pour tester le serveur localement :
100
- ```bash
101
- npx @modelcontextprotocol/inspector node dist/index.js
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,14 +1,12 @@
1
1
  {
2
2
  "name": "restricted-github-mcp",
3
- "version": "1.0.0",
3
+ "version": "1.0.6",
4
4
  "main": "index.js",
5
5
  "type": "module",
6
6
  "files": [
7
7
  "dist"
8
8
  ],
9
- "bin": {
10
- "restricted-github-mcp": "./dist/index.js"
11
- },
9
+ "bin": "dist/index.js",
12
10
  "scripts": {
13
11
  "start": "tsx src/index.ts",
14
12
  "dev": "tsx src/index.ts",
@@ -16,7 +14,8 @@
16
14
  "test": "echo \"Error: no test specified\" && exit 1",
17
15
  "inspect": "mcp-inspector node dist/index.js",
18
16
  "inspect:dev": "mcp-inspector --config mcp-config.json",
19
- "inspect:no-auth": "mcp-inspector -e DANGEROUSLY_OMIT_AUTH=true --config mcp-config.json"
17
+ "inspect:no-auth": "mcp-inspector -e DANGEROUSLY_OMIT_AUTH=true --config mcp-config.json",
18
+ "release": "npm version patch && npm run build && npm publish --access public && git push origin main --follow-tags"
20
19
  },
21
20
  "keywords": [],
22
21
  "author": "",
@@ -29,7 +28,7 @@
29
28
  },
30
29
  "devDependencies": {
31
30
  "@modelcontextprotocol/inspector": "^0.19.0",
32
- "@types/node": "^25.0.10",
31
+ "@types/node": "^25.0.10",
33
32
  "tsx": "^4.21.0",
34
33
  "typescript": "^5.9.3"
35
34
  }