この記事では、MCP ホスト アプリが、MCPを使用して、Windows に登録されている サーバーの一覧表示、接続、操作を行う方法について説明しますodr.exe。 このチュートリアルでは、Windows サンプル リポジトリの MCP のサンプル ホスト アプリ (github.com/microsoft/mcp-on-windows-samples) を使用します。
注
一部の情報はリリース前の製品に関する事項であり、正式版がリリースされるまでに大幅に変更される可能性があります。 Microsoft は、ここで提供される情報に関して明示的または黙示的な保証を行いません。
[前提条件]
- Windows ビルド 26220.7262 以降
- パッケージ ID を持つ MCP ホスト アプリ。 パッケージ ID の詳細については、「 Windows アプリでのパッケージ ID の概要」を参照してください。 パッケージ ID は、MSIX パッケージ形式を使用してパッケージ化されたアプリに付与されます。 詳細については、「 MSIX とは」を参照してください。
- 手記 この要件はパブリック プレビュー リリースでは適用されませんが、安定版リリースになります。
サンプルを複製する
Windows ホストサンプルのMCPをデバイスに複製し、そこに移動します。
git clone https://github.com/microsoft/mcp-on-windows-samples.git
cd mcp-on-windows-samples/mcp-client-js
サンプルを設定してビルドする
これらのコマンドを実行します。
npm install
npm run start
このツールでは、デバイスに登録されている MCP サーバーと対話できるコマンド ライン UI が表示されます。 次のセクションでは、 MCP ホスト アプリのさまざまな機能を実装するためにツールで使用される Javascript コードを示します。
使用可能な MCP サーバーを一覧表示する
コマンド ライン呼び出しMCPを実行している使用可能なodr.exe list サーバーを一覧表示します。 このコマンドは、JSON 形式のサーバーの一覧を返します。これは、以降の例で格納および使用されます。
const { stdout, stderr } = await execFileAsync('odr.exe', ['list']);
if (stderr) {
console.error('Warning:', stderr);
}
const servers = JSON.parse(stdout);
MCP サーバーに接続する
前の手順で返された JSON からコマンドと引数を取得して、使用可能な MCP サーバーのいずれかに接続します。 コマンドと引数を渡して、 StdioClientTransportを作成します。 新しい Client オブジェクトを作成します。
connect を呼び出して、MCP サーバーに接続します。
const command = server.manifest?.server?.mcp_config?.command;
const args = server.manifest?.server?.mcp_config?.args || [];
if (!command) {
throw new Error('Server configuration missing command.');
}
// Create MCP client with stdio transport
// Set stderr to 'ignore' to silence server info logs
const transport = new StdioClientTransport({
command: command,
args: args,
stderr: 'ignore'
});
const client = new Client({
name: 'mcp-client',
version: '1.0.0'
}, {
capabilities: {}
});
// Connect to the server
await client.connect(transport);
サーバーからツールを一覧表示する
listToolsを呼び出して、MCP サーバーによって登録されているツールを一覧表示します。
// List available tools
const toolsResponse = await client.listTools();
const tools = toolsResponse.tools || [];
ツールの呼び出し
各 MCP ツールには、名前とパラメーターのオプション セットがあります。 サンプルの gatherToolParameters 関数は、入力パラメーターを収集するのに役立ちます。その後、ツールを直接呼び出すことができます。
const parameters = await gatherToolParameters(tool); // This function is from the sample code
const result = await client.callTool({
name: tool.name,
arguments: parameters
});
次のステップ
- ホスト アプリで検出して使用できる MCP サーバーをビルドして登録する方法について説明します。 詳細については、「MCP サーバーの登録」を参照してください。