esa MCP Server

officiel

Serveur officiel du Model Context Protocol (MCP) pour esa.io - version de transport STDIO.

Documentation

Serveur MCP esa

License: MIT

日本語 | English

Serveur officiel Model Context Protocol (MCP) pour esa.io - version transport STDIO.

Aperçu

Ce serveur MCP fournit une intégration transparente entre les assistants IA et esa.io, une plateforme de documentation collaborative. Il permet aux assistants IA de lire, créer, mettre à jour et gérer les documents esa directement via le Model Context Protocol.

Outils disponibles

Gestion d'équipe

  • esa_get_teams - Obtenir les équipes esa accessibles par l'utilisateur
  • esa_get_team_stats - Obtenir les statistiques d'équipe (membres, publications, commentaires, étoiles, surveillances, utilisateurs actifs)
  • esa_get_team_tags - Obtenir tous les tags utilisés dans les publications d'équipe avec leur nombre
  • esa_get_team_members - Obtenir les membres de l'équipe avec leurs rôles et informations de profil

Gestion des publications

  • esa_search_posts - Rechercher des publications dans esa.io
  • esa_get_post - Obtenir une publication spécifique par son numéro (inclut backlinks_count et body_md_stats avec le nombre de caractères et de lignes du corps)
  • esa_get_post_backlinks - Lister les publications qui référencent une publication spécifique avec pagination
  • esa_create_post - Créer une nouvelle publication avec tags, catégorie et statut WIP
  • esa_update_post - Mettre à jour une publication existante (titre, contenu, tags, catégorie, statut WIP)
  • esa_append_post - Ajouter du contenu à la fin du corps d'une publication (pas besoin de récupérer le corps actuel ; enregistré comme une nouvelle révision)
  • esa_prepend_post - Ajouter du contenu au début du corps d'une publication (pas besoin de récupérer le corps actuel ; enregistré comme une nouvelle révision)

Actions sur les publications

  • esa_archive_post - Archiver une publication en la déplaçant dans la catégorie Archived/
  • esa_ship_post - Expédier une publication (marquer comme terminée en passant wip à false)
  • esa_duplicate_post - Dupliquer une publication (créer une nouvelle publication WIP avec le même titre et corps ; la duplication inter-équipe est également prise en charge)

Gestion des commentaires

  • esa_get_comment - Obtenir un commentaire spécifique par ID
  • esa_create_comment - Créer un nouveau commentaire sur une publication
  • esa_update_comment - Mettre à jour un commentaire existant
  • esa_delete_comment - Supprimer un commentaire
  • esa_get_post_comments - Obtenir les commentaires d'une publication spécifique avec pagination
  • esa_get_team_comments - Obtenir les commentaires d'équipe avec pagination

Gestion des catégories

  • esa_get_categories - Obtenir les catégories et sous-catégories pour un chemin spécifique
  • esa_get_top_categories - Obtenir toutes les catégories de premier niveau pour une équipe
  • esa_get_all_category_paths - Obtenir tous les chemins de catégories dans une équipe (avec le nombre de publications, filtrage possible)
    • Parfait pour comprendre la structure des catégories, la planification de l'organisation et le nettoyage
    • Exemples de filtres : prefix: "dev" pour le développement, match: "api" pour les catégories liées à l'API

Pièces jointes

  • esa_get_attachment - Récupérer un fichier joint depuis les publications et commentaires esa
    • Renvoie les données encodées en base64 pour les images prises en charge (JPEG, PNG, GIF, WebP) de moins de 30 Mo
    • Renvoie des URL signées (valides 5 minutes) pour les autres types de fichiers, les images plus volumineuses ou lorsque forceSignedUrl est spécifié

Aide et documentation

  • esa_get_search_options_help - Obtenir la documentation sur la syntaxe de recherche esa
  • esa_get_markdown_syntax_help - Obtenir la documentation sur la syntaxe Markdown esa
  • esa_search_help - Rechercher dans la documentation esa des fonctionnalités et de la terminologie

Ressources disponibles

  • esa_recent_posts - Récupérer les publications récemment mises à jour de l'équipe esa
    • Modèle : esa://teams/{teamName}/posts/recent
    • Renvoie : Liste JSON des publications récemment mises à jour

Invites disponibles

  • esa_summarize_post - Résumer le contenu d'une publication esa
    • Entrée : Nom de l'équipe et numéro de publication
    • Sortie : Résumé structuré du contenu de la publication

Configuration du client MCP

Ajoutez à votre fichier de configuration client MCP :

Variables d'environnement requises

  • ESA_ACCESS_TOKEN : Jeton d'accès
    • Portées requises : read write ou admin:comment read:post write:post read:category read:tag read:attachment read:team read:member
    • PAT v2 est recommandé.
  • LANG : Langue pour l'interface utilisateur

Exemple pour Claude Desktop

Ajoutez à claude_desktop_config.json :

Option 1 : Docker (recommandé)

{
  "mcpServers": {
    "esa": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "ESA_ACCESS_TOKEN",
        "-e",
        "LANG",
        "ghcr.io/esaio/esa-mcp-server"
      ],
      "env": {
        "ESA_ACCESS_TOKEN": "your_personal_access_token",
        "LANG": "en"
      }
    }
  }
}

Option 2 : npx

{
  "mcpServers": {
    "esa": {
      "command": "/Users/your-username/.nodenv/shims/npx",
      "args": ["@esaio/esa-mcp-server"],
      "env": {
        "ESA_ACCESS_TOKEN": "your_personal_access_token",
        "LANG": "en"
      }
    }
  }
}

Remarque : Remplacez /path/to/your/node par la sortie de la commande which node.

Registre

Ce paquet fournit registry.json à la racine du paquet, exposant les outils, ressources et invites enregistrés. Il peut être consommé de manière programmatique sans lancer le serveur :

import registry from "@esaio/esa-mcp-server/registry.json" with { type: "json" };

Schéma :

{
  "tools": [{ "name": "esa_get_teams" }, "..."],
  "resources": [
    { "name": "esa_recent_posts", "uriTemplate": "esa://teams/{teamName}/posts/recent" }
  ],
  "prompts": [{ "name": "esa_summarize_post" }]
}

Le fichier est régénéré par npm run build:registry et une vérification CI garantit qu'il reste synchronisé avec l'ensemble enregistré.

Liens

Support


Fait avec ❤️ par l'équipe esa