Aller au contenu

ts#mcp-server

Générateur de serveur MCP TypeScript

Générez un serveur Model Context Protocol (MCP) en TypeScript pour fournir du contexte aux grands modèles de langage (LLMs).

Qu’est-ce que le MCP ?

Le Model Context Protocol (MCP) est un standard ouvert permettant aux assistants IA d’interagir avec des outils et ressources externes. Il fournit une méthode cohérente pour que les LLMs puissent :

  • Exécuter des outils (fonctions) réalisant des actions ou récupérant des informations
  • Accéder à des ressources fournissant du contexte ou des données

Utilisation

Générer un serveur MCP

Vous pouvez générer un serveur MCP TypeScript de deux manières :

  1. Installez le Nx Console VSCode Plugin si ce n'est pas déjà fait
  2. Ouvrez la console Nx dans VSCode
  3. Cliquez sur Generate (UI) dans la section "Common Nx Commands"
  4. Recherchez @aws/nx-plugin - ts#mcp-server
  5. Remplissez les paramètres requis
    • Cliquez sur Generate

    Options

    Paramètre Type Par défaut Description
    name Requis string - MCP server project name.
    directory string packages Parent directory where the MCP server is placed.
    subDirectory string - The sub directory the MCP server is placed in. By default this is the MCP server project name.

    Résultat du générateur

    Le générateur créera les fichiers projet suivants :

    • Répertoirepackages/<name>/
      • README.md Documentation du serveur MCP avec instructions d’utilisation
      • project.json Configuration de projet Nx avec les cibles build, bundle et dev
      • Répertoiresrc/
        • index.ts Point d’entrée du serveur MCP
        • server.ts Définition principale du serveur, décrivant les outils et ressources
        • global.d.ts Déclarations de types TypeScript pour l’import de fichiers markdown
        • Répertoireresources/
          • example-context.md Exemple de fichier markdown utilisé comme ressource pour le serveur MCP

    Utilisation de votre serveur MCP

    Ajout d’outils

    Les outils sont des fonctions que l’assistant IA peut appeler pour effectuer des actions. Vous pouvez ajouter de nouveaux outils dans le fichier server.ts :

    server.tool("toolName", "tool description",
    { param1: z.string(), param2: z.number() }, // Schéma d'entrée utilisant Zod
    async ({ param1, param2 }) => {
    // Implémentation de l'outil
    return {
    content: [{ type: "text", text: "Result" }]
    };
    }
    );

    Ajout de ressources

    Les ressources fournissent du contexte à l’assistant IA. Vous pouvez ajouter des ressources statiques depuis des fichiers ou des ressources dynamiques :

    // Ressource statique depuis un fichier
    import exampleContext from './resources/example-context.md';
    server.resource('resource-name', 'example://resource', async (uri) => ({
    contents: [{ uri: uri.href, text: exampleContext }],
    }));
    // Ressource dynamique
    server.resource('dynamic-resource', 'dynamic://resource', async (uri) => {
    const data = await fetchSomeData();
    return {
    contents: [{ uri: uri.href, text: data }],
    };
    });

    Configuration avec les assistants IA

    Pour utiliser votre serveur MCP avec des assistants IA, vous devez d’abord le bundler :

    Terminal window
    pnpm nx run your-mcp-server:bundle

    Ceci crée une version bundle dans dist/packages/your-mcp-server/bundle/index.js (le chemin peut varier selon votre configuration).

    Fichiers de configuration

    La plupart des assistants IA supportant MCP utilisent une approche de configuration similaire. Vous devrez créer ou mettre à jour un fichier de configuration avec les détails de votre serveur MCP :

    {
    "mcpServers": {
    "your-mcp-server": {
    "command": "node",
    "args": [
    "/path/to/workspace/dist/packages/your-mcp-server/bundle/index.js"
    ],
    "transportType": "stdio"
    }
    }
    }

    Remplacez /path/to/workspace/dist/packages/your-mcp-server/bundle/index.js par le chemin réel vers votre serveur MCP bundle.

    Configuration spécifique aux assistants

    Veuillez consulter la documentation suivante pour configurer MCP avec des assistants IA spécifiques :

    Note: Tous les éléments soumis étaient des noms de produits/projets ou des liens techniques - aucun contenu traduisible n’était présent dans le texte source selon les contraintes données.

    Workflow de développement

    Cibles de build

    Le générateur est basé sur le générateur de projet TypeScript et hérite donc de ses cibles, tout en ajoutant les cibles supplémentaires suivantes :

    Bundle

    La tâche bundle utilise esbuild pour créer un fichier JavaScript unique qui peut être utilisé avec les assistants IA :

    Terminal window
    pnpm nx run your-mcp-server:bundle

    Ceci crée une version bundle dans dist/packages/your-mcp-server/bundle/index.js (le chemin peut varier selon votre configuration).

    Dev

    La tâche dev surveille les modifications de votre projet et reconstruit automatiquement le bundle :

    Terminal window
    pnpm nx run your-mcp-server:dev

    Ceci est particulièrement utile pendant le développement car il garantit que votre assistant IA utilise la dernière version de votre serveur MCP.