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épendancesLien direct vers Installer les dépendances
Installez les packages nécessaires :
- npm
- pnpm
- Yarn
- Bun
npm install @mastra/mcp @mastra/core tsup
pnpm add @mastra/mcp @mastra/core tsup
yarn add @mastra/mcp @mastra/core tsup
bun add @mastra/mcp @mastra/core tsup
Configurer un serveur MCPLien direct vers Configurer un serveur MCP
Créez un fichier pour votre serveur stdio, par exemple
src/mastra/stdio.ts.Ajoutez le code suivant au fichier. N’oubliez pas d’importer vos véritables Tools Mastra et de donner un nom approprié au serveur.
src/mastra/stdio.ts#!/usr/bin/env nodeimport { 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)})Mettez à jour votre
package.jsonpour inclure l’entréebinqui pointe vers le fichier de serveur créé, ainsi qu’un script qui crée le serveur avec les sorties ESM et CJS.package.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éebinpointe vers ce fichier.Exécutez la commande de création :
- npm
- pnpm
- Yarn
- Bun
npm run build:mcppnpm run build:mcpyarn build:mcpbun run build:mcpCette 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 +xrend 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 NPMLien direct vers 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.
Vérifiez que vous disposez d’un compte NPM et que vous êtes connecté (
npm login).Assurez-vous que le nom de votre package dans
package.jsonest unique et disponible.Après la création, exécutez la commande de publication depuis la racine de votre projet :
npm publish --access publicPour plus de détails sur la publication de packages, consultez la documentation NPM.
Utiliser un serveur MCP publiéLien direct vers 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.
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"].