🚀 微軟Copilot Studio ❤️ MCP
本實驗將指導你如何部署 MCP 服務器,並將其添加到微軟 Copilot Studio 中,讓你體驗相關的功能。
🚀 快速開始
在這個實驗中,你將學習如何部署一個 MCP 服務器,並將其添加到微軟 Copilot Studio 中。
✨ 主要特性
❓ 什麼是 MCP?
模型上下文協議 (MCP) 是一個開放協議,由 Anthropic 定義,它規範了應用程序如何向大語言模型 (LLM) 提供上下文。MCP 提供了一種標準化的方式,將 AI 模型連接到不同的數據源和工具。MCP 允許開發者將現有的知識服務器和 API 直接集成到 Copilot Studio 中。
目前,Copilot Studio 僅支持工具。要了解更多當前功能,請參閱 aka.ms/mcsmcp。存在一些已知問題和計劃中的改進,這些內容列在 此處。
🆚 MCP 與連接器的對比
何時使用 MCP?何時使用連接器?MCP 會取代連接器嗎?
MCP 服務器通過連接器基礎設施提供給 Copilot Studio,因此這些問題並不適用。MCP 服務器使用連接器基礎設施意味著它們可以採用企業安全和治理控制,如 虛擬網絡 集成、數據丟失防護 控制、多種身份驗證方法 —— 所有這些在本次版本中均可用,同時支持為 AI 驅動的代理提供即時數據訪問。
因此,MCP 和連接器實際上是 相輔相成 的。
📦 安裝指南
⚙️ 先決條件
- Visual Studio Code (鏈接)
- Node v22(建議通過 適用於 Windows 的 nvm 或 nvm 安裝)
- 已安裝 Git (鏈接)
- Azure 開發人員 CLI (鏈接)
- Azure 訂閱(已添加付款方式)
- GitHub 賬戶
- Copilot Studio 試用版或開發者賬戶
- 已預配的 Power Platform 環境 —— 開啟以下開關:

➕ 基於模板創建新的 GitHub 倉庫
- 選擇
使用此模板
- 選擇
創建新倉庫

- 選擇正確的
所有者
(如果只有一個所有者可供選擇,可能已經自動選中)
- 為倉庫命名
- 可選擇為其添加
描述
- 選擇
私有
- 選擇
創建倉庫
這需要一些時間。完成後,你將被重定向到新創建的倉庫。
⚖️ 選擇:本地運行服務器或部署到 Azure
現在你有一個選擇!你可以選擇在本地運行服務器,或者將其部署到 Azure。
無論選擇哪種方式,都需要完成以下幾個步驟:
- 運行以下命令克隆此倉庫(將
{account}
替換為你自己的 GitHub 賬戶名):
git clone https://github.com/{account}/mcsmcp.git
- 打開 Visual Studio Code 並打開克隆的文件夾
- 打開終端並導航到克隆的文件夾
🏃♀️ 本地運行 MCP 服務器
- 運行
npm install
- 運行
npm run build && npm run start

- 在 Visual Studio Code 終端頂部選擇
端口

- 選擇綠色的
轉發端口
按鈕

- 輸入
3000
作為端口號(這應該與你在步驟 5 中運行命令時看到的端口號相同)。如果提示你登錄 GitHub,請進行登錄,因為使用端口轉發功能需要登錄。
- 右鍵單擊剛添加的行,選擇
端口可見性
> 公共
,使服務器公開可用
- 使用 Ctrl + 點擊
轉發地址
,地址應該類似於:https://something-3000.something.devtunnels.ms
- 在彈出窗口中選擇
複製
以複製 URL

- 打開你選擇的瀏覽器,將 URL 粘貼到地址欄中,在末尾添加
/mcp
並按回車鍵
如果一切順利,你將看到以下錯誤消息:
{"jsonrpc":"2.0","error":{"code":-32000,"message":"Method not allowed."},"id":null}
不用擔心,這個錯誤消息無需擔心!
🌎 部署到 Azure
⚠️ 重要提示
如 先決條件 中所述,此部分需要在你的機器上安裝 Azure 開發人員 CLI。
如果你還沒有登錄到 Azure 開發人員 CLI,請先登錄。
azd auth login
⚠️ 重要提示
運行 azd up
後,你將在 Azure 上運行一個公開可用的 MCP 服務器。理想情況下,你不希望這樣。完成實驗後,請確保運行 azd down
從你的 Azure 訂閱中刪除所有資源。有關如何運行 azd down
的信息,請參閱 [此部分](#❌-移除 Azure 資源)。
在終端中運行以下命令:
azd up
對於唯一的環境名稱,輸入 mcsmcplab
或類似名稱。選擇要使用的 Azure 訂閱並選擇一個位置值。之後,服務器部署需要幾分鐘時間。完成後,你應該能夠訪問末尾列出的 URL,並在該 URL 末尾添加 /mcp
。

你應該再次看到以下錯誤:
{"jsonrpc":"2.0","error":{"code":-32000,"message":"Method not allowed."},"id":null}
💻 使用示例
👨💻 在 Visual Studio Code / GitHub Copilot 中使用笑話 MCP 服務器
要使用笑話 MCP 服務器,你需要使用服務器的 URL(可以是你的開發隧道 URL 或部署的 Azure 容器應用),並在末尾添加 /mcp
部分,然後將其作為 MCP 服務器添加到 Visual Studio Code 中。
- 按下
ctrl
+ shift
+ P
(Windows/Linux)或 cmd
+ shift
+ P
(Mac)並輸入 MCP
- 選擇
MCP: 添加服務器...
- 選擇
HTTP (HTTP 或服務器發送事件)
- 將服務器的 URL 粘貼到輸入框中(確保末尾包含
/mcp
)
- 按
Enter
- 為服務器輸入一個名稱,例如
JokesMCP
- 選擇
用戶設置
,將 MCP 服務器設置保存到你的用戶設置中
這將在你的 settings.json
文件中添加一個 MCP 服務器。它應該如下所示:

- 打開
GitHub Copilot
- 從
詢問
切換到 代理
- 當你選擇工具圖標時,確保選中
JokesMCP
服務器操作:

- 提出以下問題:
從開發類別中獲取一個 Chuck Norris 笑話
這應該會給你一個類似這樣的響應:

現在你已將 JokesMCP
服務器添加到 Visual Studio Code 中!
👨💻 在微軟 Copilot Studio 中使用笑話 MCP 服務器
導入連接器
- 訪問 https://make.preview.powerapps.com/customconnectors(確保你處於正確的環境中),並點擊 + 新建自定義連接器。
- 選擇
從 GitHub 導入
- 選擇
自定義
作為 連接器類型
- 選擇
dev
作為 分支
- 選擇
MCP-Streamable-HTTP
作為 連接器
- 選擇
繼續

- 將 連接器名稱 更改為合適的名稱,例如
Jokes MCP
- 將 描述 更改為合適的內容
- 將你的根 URL(例如
something-3000.something.devtunnels.ms
或 something.azurecontainerapps.io
)粘貼到 主機 字段中
- 選擇 創建連接器
⚠️ 重要提示
創建時你可能會看到一個警告和一個錯誤 —— 問題應該很快會得到解決,現在可以忽略它。
- 關閉連接器
創建代理並將 MCP 服務器添加為工具
- 訪問 https://copilotstudio.preview.microsoft.com/
- 選擇右上角的環境選擇器
- 選擇正確的環境(開啟
提前獲取新功能
開關的環境)
- 在左側導航欄中選擇
創建
- 選擇藍色的
新建代理
按鈕

- 選擇左側的
配置
選項卡

- 將名稱更改為
Jokester
- 添加以下
描述
一個專注於幽默的代理,僅在用戶請求時提供簡潔、有趣的笑話,根據用戶的語氣和偏好調整風格。它保持角色設定,避免重複,並過濾掉冒犯性內容,以確保始終提供合適且詼諧的體驗。
- 添加以下
說明
你是一個講笑話的助手。你的唯一目的是應要求提供合適、巧妙且有趣的笑話。遵循以下規則:
* 僅在用戶要求笑話或相關內容(例如“給我講個有趣的事情”)時進行回覆。
* 根據用戶的輸入匹配其語氣和幽默偏好 —— 乾淨、黑色幽默、冷麵幽默、雙關語、爸爸笑話等。
* 永遠不要偏離角色或提供與幽默無關的信息。
* 保持笑話簡潔且格式清晰。
* 避免冒犯性、歧視性或不適合工作場合的內容。
* 不確定幽默偏好時,默認提供一個巧妙且普遍合適的笑話。
* 同一會話內不重複講笑話。
* 除非明確要求,否則不解釋笑話。
* 反應靈敏、機智且迅速。
- 選擇右上角的
繼續

- 啟用生成式 AI
編排

- 在
知識
部分禁用通用知識

- 在頂部菜單中選擇
工具

- 選擇
添加工具

- 選擇
模型上下文協議
選項卡以過濾所有模型上下文協議服務器(見下圖中的數字 1)
- 選擇
Jokes MCP
服務器(見下圖中的數字 2)

- 通過選擇
未連接
並點擊 創建新連接 創建一個新連接

- 選擇
創建

- 選擇
添加到代理
將工具添加到代理

- 在
測試你的代理
窗格中選擇 刷新
圖標

- 在
測試你的代理
窗格中發送以下消息:
我能得到一個 Chuck Norris 笑話嗎?
這將顯示一條消息,提示運行此操作需要額外的權限。這是因為操作嚮導中的用戶身份驗證。
- 選擇
連接

這將打開一個新窗口,你可以在其中管理此代理的連接。
- 選擇
JokesMCP
旁邊的 連接

- 等待連接創建完成,然後選擇
提交

- 連接現在應該已連接,因此狀態應設置為
已連接

- 關閉瀏覽器中的管理連接選項卡
現在你應該回到 Jokester 代理屏幕。
- 在
測試你的代理
窗格中選擇 刷新
圖標

- 在
測試你的代理
窗格中發送以下消息:
我能得到一個 Chuck Norris 笑話嗎?
這現在應該顯示一個 Chuck Norris 笑話,而不是額外的權限提示。如果不是這樣,你可能錯過了 先決條件 中環境需要開啟 提前獲取新功能
開關的要求。

- 在
測試你的代理
窗格中發送以下消息:
我能得到一個爸爸笑話嗎?
這現在應該顯示一個爸爸笑話。

這樣,笑話 MCP 服務器就在微軟 Copilot Studio 中正常工作了。
❌ 移除 Azure 資源
完成實驗後,要移除 Azure 資源,請在終端中運行以下命令:
azd down
此命令將顯示要刪除的資源,然後要求你確認。輸入 y
確認,資源將被刪除。這可能需要幾分鐘時間,最後你將看到確認信息:

🔧 技術細節
💡 已知問題和計劃中的改進
微軟 Copilot Studio 中的 MCP 存在一些已知問題和計劃中的改進。這些內容列在 這篇 Microsoft Learn 文章 中。
📚 詳細文檔
🗣️ 反饋
希望你喜歡這個實驗。請花時間填寫我們的 反饋表,告訴我們如何改進!
🚀 貢獻
本項目歡迎貢獻和建議。大多數貢獻需要你同意一份貢獻者許可協議 (CLA),聲明你有權並確實授予我們使用你貢獻內容的權利。有關詳細信息,請訪問 https://cla.opensource.microsoft.com。
當你提交拉取請求時,CLA 機器人將自動確定你是否需要提供 CLA,並相應地標記 PR(例如,狀態檢查、評論)。只需按照機器人提供的說明操作即可。在使用我們的 CLA 的所有倉庫中,你只需執行一次此操作。
本項目採用了 微軟開源行為準則。有關更多信息,請參閱 行為準則常見問題解答,或通過 opencode@microsoft.com 聯繫我們,提出任何額外的問題或意見。
™️ 商標
本項目可能包含項目、產品或服務的商標或徽標。經授權使用微軟商標或徽標的行為需遵循 微軟商標和品牌指南。在本項目的修改版本中使用微軟商標或徽標不得造成混淆或暗示微軟的贊助。任何使用第三方商標或徽標的行為需遵循這些第三方的政策。