Aller au contenu

Serveur MCP TypeScript

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

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 LLM puissent :

  • Exécuter des outils (fonctions) qui effectuent des actions ou récupèrent des informations
  • Accéder à des ressources fournissant du contexte ou des données

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
    Paramètre Type Par défaut Description
    project Requis string - The project to add an MCP server to
    name string - The name of your MCP server (default: mcp-server)

    Le générateur ajoutera les fichiers suivants à votre projet TypeScript existant :

    • Répertoireyour-project/
      • Répertoiresrc/
        • Répertoiremcp-server/ (ou nom personnalisé si spécifié)
          • index.ts Point d’entrée du serveur MCP
          • server.ts Définition principale du serveur
          • Répertoiretools/
            • add.ts Exemple d’outil
          • Répertoireresources/
            • sample-guidance.ts Exemple de ressource
      • package.json Mis à jour avec l’entrée bin et les dépendances MCP
      • project.json Mis à jour avec la cible de service du serveur MCP

    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" }]
    };
    }
    );

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

    const exampleContext = 'some context to return';
    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 }],
    };
    });

    La plupart des assistants IA compatibles avec 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": "npx",
    "args": ["tsx", "/path/to/your-mcp-server/index.ts"]
    }
    }
    }

    Pendant le développement de votre serveur MCP, vous pouvez configurer le flag --watch pour que l’assistant IA voit toujours les dernières versions des outils/ressources :

    {
    "mcpServers": {
    "your-mcp-server": {
    "command": "npx",
    "args": ["tsx", "--watch", "/path/to/your-mcp-server/index.ts"]
    }
    }
    }

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

    La méthode la plus simple pour tester et utiliser un serveur MCP est de le configurer avec un assistant IA (comme ci-dessus). Vous pouvez cependant exécuter le serveur en utilisant la cible <your-server-name>-serve, ce qui peut être utile si vous passez du transport STDIO au transport HTTP streamable.

    Terminal window
    pnpm nx run your-project:your-server-name-serve

    Cette commande utilise tsx --watch pour redémarrer automatiquement le serveur lors des modifications de fichiers.