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 :
- Installez le Nx Console VSCode Plugin si ce n'est pas déjà fait
- Ouvrez la console Nx dans VSCode
- Cliquez sur
Generate (UI)
dans la section "Common Nx Commands" - Recherchez
@aws/nx-plugin - ts#mcp-server
- Remplissez les paramètres requis
- Cliquez sur
Generate
pnpm nx g @aws/nx-plugin:ts#mcp-server
yarn nx g @aws/nx-plugin:ts#mcp-server
npx nx g @aws/nx-plugin:ts#mcp-server
bunx nx g @aws/nx-plugin:ts#mcp-server
Vous pouvez également effectuer une simulation pour voir quels fichiers seraient modifiés
pnpm nx g @aws/nx-plugin:ts#mcp-server --dry-run
yarn nx g @aws/nx-plugin:ts#mcp-server --dry-run
npx nx g @aws/nx-plugin:ts#mcp-server --dry-run
bunx nx g @aws/nx-plugin:ts#mcp-server --dry-run
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 fichierimport exampleContext from './resources/example-context.md';
server.resource('resource-name', 'example://resource', async (uri) => ({ contents: [{ uri: uri.href, text: exampleContext }],}));
// Ressource dynamiqueserver.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 :
pnpm nx run your-mcp-server:bundle
yarn nx run your-mcp-server:bundle
npx nx run your-mcp-server:bundle
bunx 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 :
pnpm nx run your-mcp-server:bundle
yarn nx run your-mcp-server:bundle
npx nx run your-mcp-server:bundle
bunx 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 :
pnpm nx run your-mcp-server:dev
yarn nx run your-mcp-server:dev
npx nx run your-mcp-server:dev
bunx 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.