Gitee MCP Server

officiel

Intégration de l'API Gitee, gestion des dépôts, des issues et des pull requests, et plus encore.

Documentation

Serveur MCP Gitee

Le serveur MCP Gitee est une implémentation de serveur Model Context Protocol (MCP) pour Gitee. Il fournit un ensemble d'outils pour interagir avec l'API de Gitee, permettant aux assistants IA de gérer les dépôts, les tickets, les demandes d'extraction et plus encore.

Install MCP Server

Fonctionnalités

  • Interagir avec les dépôts, tickets, demandes d'extraction et notifications Gitee
  • URL de base d'API configurable pour prendre en charge différentes instances Gitee
  • Options de ligne de commande pour une configuration facile
  • Prend en charge les opérations personnelles, d'organisation et d'entreprise
  • Activation/désactivation dynamique de l'ensemble d'outils
Scénario pratique : Obtenir un ticket du dépôt, implémenter et créer une demande d'extraction
  1. Obtenir les tickets du dépôt get_repo_issues
  2. Implémenter le codage et créer une demande d'extraction basée sur les détails du ticket implement_issue
  3. Commenter et fermer le ticket comment_and_close_issue

Installation (Cette étape peut être ignorée directement lors du démarrage avec npx)

Prérequis

  • Go 1.23.0 ou supérieur
  • Compte Gitee avec un jeton d'accès, Aller obtenir

Construction à partir des sources

  1. Cloner le dépôt :

    git clone https://gitee.com/oschina/mcp-gitee.git
    cd mcp-gitee
    
  2. Construire le projet :

    make build
    

    Déplacer ./bin/mcp-gitee dans la variable d'environnement PATH

Utiliser go install

go install gitee.com/oschina/mcp-gitee@latest

Utilisation

Vérifier la version de mcp-gitee :

mcp-gitee --version

Configuration des hôtes MCP

Exemples de configuration : Cliquer pour voir plus de configurations d'application

Serveur MCP distant

Se connecter au serveur mcp-gitee distant officiel (aucune installation requise) :

{
  "mcpServers": {
    "gitee": {
      "url": "https://api.gitee.com/mcp",
      "headers": {
        "Authorization": "Bearer <your personal access token>"
      }
    }
  }
}

Codex utilise ~/.codex/config.toml :

[mcp_servers.gitee]
url = "https://api.gitee.com/mcp"
bearer_token_env_var = "GITEE_ACCESS_TOKEN"

opencode utilise ~/.config/opencode/opencode.json :

{
  "mcp": {
    "gitee": {
      "type": "remote",
      "url": "https://api.gitee.com/mcp",
      "headers": {
        "Authorization": "Bearer <your personal access token>"
      },
      "enabled": true
    }
  }
}

Options de ligne de commande

  • --token : Jeton d'accès Gitee
  • --api-base : URL de base de l'API Gitee (par défaut : https://gitee.com/api/v5)
  • --version : Afficher les informations de version
  • --transport : Type de transport (stdio, sse ou http, par défaut : stdio)
  • --address : L'hôte et le port pour démarrer le serveur (par défaut : localhost:8000)
  • --enabled-toolsets : Liste séparée par des virgules des outils à activer (si spécifié, seuls ces outils seront activés)
  • --disabled-toolsets : Liste séparée par des virgules des outils à désactiver

Variables d'environnement

Vous pouvez également configurer le serveur en utilisant des variables d'environnement :

  • GITEE_ACCESS_TOKEN : Jeton d'accès Gitee
  • GITEE_API_BASE : URL de base de l'API Gitee
  • ENABLED_TOOLSETS : Liste séparée par des virgules des outils à activer
  • DISABLED_TOOLSETS : Liste séparée par des virgules des outils à désactiver

Gestion de l'ensemble d'outils

La gestion de l'ensemble d'outils prend en charge deux modes :

  1. Activer les outils spécifiés (mode liste blanche) :

    • Utiliser le paramètre --enabled-toolsets ou la variable d'environnement ENABLED_TOOLSETS
    • Après spécification, seuls les outils listés seront activés, les autres seront désactivés
    • Exemple : --enabled-toolsets="list_user_repos,get_file_content"
  2. Désactiver les outils spécifiés (mode liste noire) :

    • Utiliser le paramètre --disabled-toolsets ou la variable d'environnement DISABLED_TOOLSETS
    • Après spécification, les outils listés seront désactivés, les autres seront activés
    • Exemple : --disabled-toolsets="list_user_repos,get_file_content"

Remarque :

  • Si les deux enabled-toolsets et disabled-toolsets sont spécifiés, enabled-toolsets prend la priorité
  • Les noms d'outils sont sensibles à la casse

Filtrage d'outils par requête (En-têtes HTTP)

Lors de l'utilisation du serveur MCP distant (transport HTTP/SSE), vous pouvez filtrer dynamiquement les outils disponibles par requête via les en-têtes HTTP. Ceci est utile pour les clients qui ont besoin d'un contrôle fin sur l'exposition des outils sans redémarrer le serveur.

  1. Activer les outils spécifiés via l'en-tête (liste blanche) :

    • Utiliser l'en-tête X-MCP-Enabled-Tools
    • Seuls les outils listés seront activés pour cette requête
    • Exemple : X-MCP-Enabled-Tools: list_user_repos,get_file_content
  2. Désactiver les outils spécifiés via l'en-tête (liste noire) :

    • Utiliser l'en-tête X-MCP-Disabled-Tools
    • Les outils listés seront désactivés pour cette requête
    • Exemple : X-MCP-Disabled-Tools: create_repo,delete_repo

Règles de priorité :

  • Si les deux X-MCP-Enabled-Tools et X-MCP-Disabled-Tools sont présents dans la même requête, la liste blanche (X-MCP-Enabled-Tools) prend la priorité
  • Les noms d'outils sont sensibles à la casse

Exemple de configuration pour Cursor/Claude :

{
  "mcpServers": {
    "gitee": {
      "url": "https://api.gitee.com/mcp",
      "headers": {
        "Authorization": "Bearer <your personal access token>",
        "X-MCP-Enabled-Tools": "list_user_repos,get_file_content,list_repo_issues"
      }
    }
  }
}

Licence

Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.

Outils disponibles

Le serveur fournit divers outils pour interagir avec Gitee :

OutilCatégorieDescription
list_user_reposDépôtLister les dépôts autorisés de l'utilisateur
get_file_contentDépôtObtenir le contenu d'un fichier dans un dépôt
create_repoDépôtCréer un dépôt (utilisateur, organisation ou entreprise)
fork_repositoryDépôtForker un dépôt
create_releaseDépôtCréer une version pour un dépôt
list_releasesDépôtLister les versions du dépôt
search_open_source_repositoriesDépôtRechercher des dépôts open source sur Gitee
search_files_by_contentDépôtRechercher des fichiers par contenu dans un dépôt
compare_branches_tagsDépôtComparer deux branches, tags ou commits dans un dépôt
list_repo_pullsDemande d'extractionLister les demandes d'extraction dans un dépôt
merge_pullDemande d'extractionFusionner une demande d'extraction
create_pullDemande d'extractionCréer une demande d'extraction
update_pullDemande d'extractionMettre à jour une demande d'extraction
get_pull_detailDemande d'extractionObtenir les détails d'une demande d'extraction
get_diff_filesDemande d'extractionObtenir les fichiers de diff d'une demande d'extraction
manage_pull_reviewDemande d'extractionGérer une revue de demande d'extraction (approuver ou annuler)
create_commentCommentaireCréer un commentaire sur un ticket ou une demande d'extraction
list_commentsCommentaireLister tous les commentaires pour un ticket ou une demande d'extraction
create_issueTicketCréer un ticket
update_issueTicketMettre à jour un ticket
get_repo_issue_detailTicketObtenir les détails d'un ticket de dépôt
list_repo_issuesTicketLister les tickets du dépôt
get_user_infoUtilisateurObtenir les informations de l'utilisateur authentifié actuel
search_usersUtilisateurRechercher des utilisateurs
list_user_notificationsNotificationLister les notifications de l'utilisateur

Contribution

Nous accueillons les contributions de la communauté open source ! Si vous souhaitez contribuer à ce projet, veuillez suivre ces directives :

  1. Forker le dépôt.
  2. Créer une nouvelle branche pour votre fonctionnalité ou correction de bug.
  3. Apporter vos modifications et vous assurer que le code est bien documenté.
  4. Soumettre une demande d'extraction avec une description claire de vos modifications.

Pour plus d'informations, veuillez vous référer au fichier CONTRIBUTING.