> Discover all available pages from the documentation index: https://mastra.zisheng.pro/fr/llms.txt # Publier un serveur MCP Cet exemple vous guide dans la configuration d’un MCPServer Mastra de base avec le transport stdio, sa création et sa préparation à la publication sur NPM. ## Installer les dépendances Installez les packages nécessaires : **npm**: ```bash npm install @mastra/mcp @mastra/core tsup ``` **pnpm**: ```bash pnpm add @mastra/mcp @mastra/core tsup ``` **Yarn**: ```bash yarn add @mastra/mcp @mastra/core tsup ``` **Bun**: ```bash bun add @mastra/mcp @mastra/core tsup ``` ## Configurer un serveur MCP 1. Créez un fichier pour votre serveur stdio, par exemple `src/mastra/stdio.ts`. 2. Ajoutez le code suivant au fichier. N’oubliez pas d’importer vos véritables Tools Mastra et de donner un nom approprié au serveur. ```typescript #!/usr/bin/env node import { MCPServer } from '@mastra/mcp' import { weatherTool } from './tools' const server = new MCPServer({ name: 'my-mcp-server', version: '1.0.0', tools: { weatherTool }, }) server.startStdio().catch(error => { console.error('Error running MCP server:', error) process.exit(1) }) ``` 3. Mettez à jour votre `package.json` pour inclure l’entrée `bin` qui pointe vers le fichier de serveur créé, ainsi qu’un script qui crée le serveur avec les sorties ESM et CJS. ```json { "bin": "dist/stdio.mjs", "scripts": { "build:mcp": "tsup src/mastra/stdio.ts --format esm,cjs --no-splitting --dts && echo '#!/usr/bin/env node' | cat - dist/stdio.mjs > temp && mv temp dist/stdio.mjs && chmod +x dist/stdio.mjs" } } ``` La commande de création génère des sorties ESM (`.mjs`) et CJS (`.cjs`) pour une compatibilité maximale. Le shebang (`#!/usr/bin/env node`) est ajouté au début de l’artefact ESM afin de le rendre directement exécutable, et l’entrée `bin` pointe vers ce fichier. 4. Exécutez la commande de création : **npm**: ```bash npm run build:mcp ``` **pnpm**: ```bash pnpm run build:mcp ``` **Yarn**: ```bash yarn build:mcp ``` **Bun**: ```bash bun run build:mcp ``` Cette commande compile le code de votre serveur aux formats ESM et CJS, et rend le fichier de sortie ESM exécutable. Sur les systèmes de type Unix, l’étape `chmod +x` rend le fichier directement exécutable. Les utilisateurs Windows devront peut-être utiliser WSL ou gérer l’exécution directement avec Node.js. ## Publier sur NPM Pour rendre votre serveur MCP accessible à d’autres personnes, ou à vous-même, via `npx` ou comme dépendance, vous pouvez le publier sur NPM. 1. Vérifiez que vous disposez d’un compte NPM et que vous êtes connecté (`npm login`). 2. Assurez-vous que le nom de votre package dans `package.json` est unique et disponible. 3. Après la création, exécutez la commande de publication depuis la racine de votre projet : ```bash npm publish --access public ``` Pour plus de détails sur la publication de packages, consultez la [documentation NPM](https://docs.npmjs.com/creating-and-publishing-scoped-public-packages). ## Utiliser un serveur MCP publié Une fois publié, votre serveur MCP peut être utilisé par un `MCPClient` en indiquant la commande qui exécute votre package. Vous pouvez également utiliser tout autre client MCP, tel que Claude Desktop, Cursor ou Windsurf. ```typescript import { MCPClient } from '@mastra/mcp' const mcp = new MCPClient({ servers: { // Give this MCP server instance a name yourServerName: { command: 'npx', args: ['-y', '@your-org-name/your-package-name@latest'], // Replace with your package name }, }, }) // You can then get tools or toolsets from this configuration to use in your agent const tools = await mcp.listTools() const toolsets = await mcp.listToolsets() ``` Remarque : si vous avez publié sans scope d’organisation, `args` peut être égal à `["-y", "your-package-name@latest"]`.