以下の内容はhttps://kafkafinancialgroup.hatenablog.com/entry/2025/03/26/004628より取得しました。


Mastra MCP for Windows

MastraはTypeScriptベースの先進的AIエージェント開発フレームワークで、AIモデル連携・ワークフロー管理・テレメトリー監視機能を統合的に提供します。しかし、Windows環境での実行時に以下の2つの主要なエラーが発生しています。

  1. パス解決エラー
    /Users/user/.volta/bin/npxというmacOS形式のパスがWindows環境で使用され実行ファイルが見つからない

  2. テレメトリー設定エラー
    .mastra/output/telemetry-config.mjsからtelemetryオブジェクトが正しくエクスポートされていない

技術的原因の詳細分析

パス解決エラーの根本原因

MastraのMCP(Model Context Protocol)設定がOS依存のパス記述となっているため159。Voltaのインストールパスは以下のようにOSによって異なります。

OS デフォルトパス
Windows %APPDATA%\Volta\bin\npx.cmd
macOS $HOME/.volta/bin/npx
Linux $HOME/.volta/bin/npx
 

テレメトリーエラーの根本原因

OpenTelemetry設定ファイルのエクスポート形式がCommonJS形式になっており、ESモジュール形式でのインポートに失敗していることが原因61216。特にWindows環境ではファイルパスの大文字小文字区別が影響するケースがあります。

段階的な解決手順

ステップ1:MCP設定の修正

src/mastra/agents/mcpAgent.tsを以下のように修正:

typescript
import { MCPConfiguration } from "@mastra/mcp"; import * as path from 'path'; const getNpxPath = () => { if (process.platform === 'win32') { return path.join(process.env.APPDATA || '', 'Volta', 'bin', 'npx.cmd'); } return path.join(process.env.HOME || '', '.volta', 'bin', 'npx'); }; const mcp = new MCPConfiguration({ servers: { "github": { command: getNpxPath(), args: ["-y", "@modelcontextprotocol/server-brave-search"], env: { BRAVE_API_KEY: process.env.BRAVE_API_KEY, PATH: `${process.env.PATH};${path.dirname(getNpxPath())}` } } } });

ステップ2:テレメトリー設定の修正

.mastra/output/telemetry-config.mjsを以下のように再生成:

// telemetry-config.mjs import { NodeSDK, Resource } from '@opentelemetry/sdk-node'; import { ConsoleSpanExporter } from '@opentelemetry/sdk-trace-node'; export const telemetry = { serviceName: '', enabled: true, sampling: { type: 'always_on' }, export: { type: 'console' } }; export function initTelemetry() { const exporter = new ConsoleSpanExporter(); return new NodeSDK({ resource: new Resource({ 'service.name': telemetry.serviceName }), traceExporter: exporter }); }

ステップ3:設定ファイルの統合

mastra.config.tsテレメトリー設定を追加:

typescript
import { defineConfig } from '@mastra/core'; export default defineConfig({ telemetry: { serviceName: '', enabled: true, export: { type: 'console' }, sampling: { type: 'always_on' } }, agents: { retryConfig: { attempts: 3, delay: 1000 } } });

予防措置とベストプラクティス

クロスプラットフォーム開発ガイドライン

  1. パス管理
    pathモジュールを使用したOS非依存のパス構築

  2. 環境変数検証
    起動時に必須環境変数の存在をチェック

typescript
const verifyEnvVars = () => { const requiredVars = ['BRAVE_API_KEY']; requiredVars.forEach(varName => { if (!process.env[varName]) { throw new Error(`${varName} 環境変数が設定されていません`); } }); };

 




以上の内容はhttps://kafkafinancialgroup.hatenablog.com/entry/2025/03/26/004628より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14