本文說明主機應用程式如何MCP透過 MCP,列出、連接並與 odr.exe Windows 註冊的伺服器互動。 本攻略將使用來自 MCP Windows 範例倉庫的範例主機應用程式, github.com/microsoft/mcp-on-windows-samples。
備註
尚未發布產品的部分資訊在正式上市前可能會進行重大更改。 Microsoft 對於此處提供的資訊,不做任何明確或隱含的保證。
先決條件
- Windows 版本 26220.7262 或更高版本
- 一個 MCP 帶有套件身份的宿主應用程式。 欲了解更多套件身份資訊,請參閱 Windows 應用程式中套件身份的概述。 使用 MSIX 套件格式的應用程式會獲得套件識別。 欲了解更多資訊,請參閱 What is 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 伺服器互動。 接下來的章節將展示該工具用來實作主機應用程式各種功能的 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 物件。 呼叫 連線 連接伺服器 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 伺服器。