例: MCPServer のデプロイ
この例では、stdio トランスポートを使用した基本的な Mastra MCPServer のセットアップ方法、ビルド方法、そして NPM への公開などのデプロイ準備について説明します。
依存関係のインストール
必要なパッケージをインストールします:
pnpm add @mastra/mcp @mastra/core tsup
MCP Server のセットアップ
-
stdio サーバー用のファイルを作成します。例えば、
/src/mastra/stdio.ts
です。 -
次のコードをファイルに追加します。実際の Mastra ツールをインポートし、サーバー名を適切に設定することを忘れないでください。
src/mastra/stdio.ts#!/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); });
-
package.json
を更新し、bin
エントリでビルド済みサーバーファイルを指定し、サーバーをビルドするスクリプトを追加します。
{
"bin": "dist/stdio.js",
"scripts": {
"build:mcp": "tsup src/mastra/stdio.ts --format esm --no-splitting --dts && chmod +x dist/stdio.js"
}
}
-
ビルドコマンドを実行します。
pnpm run build:mcp
これにより、サーバーコードがコンパイルされ、出力ファイルが実行可能になります。
NPM へのデプロイ
自分や他の人が npx
や依存関係として MCP サーバーを利用できるようにするには、NPM に公開することができます。
-
NPM アカウントを持ち、ログインしていることを確認します(
npm login
)。 -
package.json
のパッケージ名がユニークで利用可能であることを確認します。 -
プロジェクトのルートディレクトリでビルド後、以下のコマンドを実行して公開します:
npm publish --access public
パッケージの公開に関する詳細は、NPM のドキュメント を参照してください。
デプロイ済みのMCPサーバーを利用する
公開が完了すると、MCPClient
でコマンドを指定してあなたのパッケージを実行することで、MCPサーバーを利用できます。また、Claude desktop、Cursor、Windsurfなど、他のMCPクライアントも使用可能です。
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.getTools();
const toolsets = await mcp.getToolsets();
注意: 組織スコープなしで公開した場合、args
は ["-y", "your-package-name@latest"]
となる場合があります。