README
🚀 在Azure上创建MCP服务器并与GitHub Copilot交互指南
本指南详细介绍了如何在微软云平台(Azure)上使用函数(Functions)创建一个MCP(Microsoft Cloud Platform)服务器,并借助GitHub Copilot进行交互,为开发者提供了便捷的部署和管理应用程序的方法。
🚀 快速开始
背景信息
微软云平台(Azure)提供了丰富的功能和工具,帮助开发者轻松部署和管理应用程序。本文将详细介绍如何在 Azure 上使用函数(Functions)来创建一个 MCP(Microsoft Cloud Platform)服务器,并通过 GitHub Copilot 来进行交互。
准备工作
- 注册 Microsoft 帐户:如果你还没有 Microsoft 帐户,需要先注册一个。
- 安装 Azure CLI:确保你的计算机上已安装了最新的 Azure CLI 工具,并且配置完成。
- 安装 Visual Studio Code:作为主要的开发工具,VS Code 是一个很好的选择,并且支持多种插件来增强功能。
✨ 主要特性
- 集成 Azure 功能:利用 Azure 函数实现应用程序的快速部署和管理。
- 结合 GitHub Copilot:借助智能代码补全工具提高开发效率。
- 支持 MCP 服务器:创建并配置 MCP 服务器,实现特定功能。
📦 安装指南
创建 Azure 函数应用
步骤 1:登录到 Azure 账户
在终端或命令提示符中运行以下命令以登录到你的 Microsoft 帐户:
az login
按照提示输入你的凭据完成登录。
步骤 2:创建资源组
为你的函数应用创建一个新的资源组。执行以下命令:
az group create --name myResourceGroup --location "East US"
这将在“美国东部”区域创建一个名为 myResourceGroup 的资源组。
步骤 3:创建函数应用
接下来,使用以下命令创建你的 Azure 函数应用:
az functionapp create \
--name myFunctionApp \
--resource-group myResourceGroup \
--location "East US" \
--runtime dotnet-isolated \
--functions-version 4
这个命令会创建一个名为 myFunctionApp 的函数应用,使用 .NET Isolated 运行时,并指定版本为 4。
配置 MCP 服务器
步骤 1:克隆示例代码库
为了开始,你需要克隆一个包含 MCP 服务器功能的示例代码仓库。你可以从 GitHub 上找到合适的项目或创建一个新的项目。
git clone https://github.com/yourusername/mcp-function.git
步骤 2:安装依赖项
进入项目目录后,安装所需的 NuGet 包和其他依赖项。对于 .NET 项目,可以使用 dotnet restore 来恢复所有依赖项:
cd mcp-function
dotnet restore
部署到 Azure
步骤 1:构建函数应用包
构建你的函数应用包以便部署到 Azure。
dotnet build --configuration Release
这将生成一个名为 bin/Release/net6.0/isolated/runtimes/win-x64/publish 的发布文件夹。
步骤 2:部署到 Azure 函数应用
使用以下命令将构建好的包部署到你的函数应用:
az functionapp deploy --name myFunctionApp --resource-group myResourceGroup --path .\bin\Release\net6.0\isolated\runtimes\win-x64\publish
配置 MCP 工具
步骤 1:定义 MCP 工具触发器
在你的函数中,使用 [McpToolTrigger] 属性来定义工具的名称和描述。例如:
[Function(nameof(SaveSnippet))]
[BlobOutput("snippets/{snippet}")]
public async Task<IActionResult> SaveSnippet(
[McpToolTrigger("save-snippet", "Saves a snippet to storage")] ToolInvocationContext context,
[McpToolProperty("snippet-name", "name of the snippet", "Name of the snippet")] string name,
[McpToolProperty("snippet-content", "content of the snippet", "Content of the snippet")] string content)
{
await blobService.SaveAsync(name, content);
return new OkResult();
}
步骤 2:配置 MCP 工具属性
在你的函数中,使用 [McpToolProperty] 属性来定义工具的输入参数。例如:
[Function(nameof(GetSnippet))]
[BlobInput("snippets/{snippet}")]
public async Task<IActionResult> GetSnippet(
[McpToolTrigger("get-snippet", "Retrieves a snippet from storage")] ToolInvocationContext context,
[McpToolProperty("snippet-name", "name of the snippet", "Name of the snippet")] string name)
{
var content = await blobService.GetAsync(name);
return new ContentResult { Content = content };
}
配置 GitHub Copilot
步骤 1:安装必要的 VS Code 插件
确保你已经安装了以下插件:
- VS Live Share:用于实时协作。
- Azure Functions:用于与 Azure 函数进行交互。
步骤 2:连接到 Azure 账户
在 VS Code 中,使用 Azure 的“Connect to Azure Account”命令来登录你的 Microsoft 帐户。
步骤 3:配置 Copilot
在 VS Code 中,启用 GitHub Copilot 并按照提示进行设置。完成后,你可以在编码时获得实时帮助。
💻 使用示例
基础用法
创建新工具
- 创建新函数:
dotnet new functionapp -n MyMCPFunction --output .
- 添加 MCP 工具功能:
编辑
MyMCPFunction/Functions/Program.cs文件,添加你想要的功能。例如:
public class SaveSnippet : FunctionBase
{
private readonly IBlobService blobService;
public SaveSnippet(IBlobService blobService)
{
this.blobService = blobService;
}
[Function("save-snippet")]
public async Task<IActionResult> Run(
[McpToolTrigger] ToolInvocationContext context,
[McpToolProperty("snippet-name", "name")] string name,
[McpToolProperty("snippet-content", "content")] string content)
{
await blobService.SaveAsync(name, content);
return new OkResult();
}
}
使用工具
- 调用工具: 在 VS Code 中,使用 GitHub Copilot 输入以下命令来调用你的 MCP 工具:
/invoke save-snippet --snippet-name "mysnippet" --snippet-content "This is my snippet content."
- 查看结果: 确认工具是否成功执行,并在控制台或日志中查看输出。
🔧 技术细节
验证和故障排除
检查部署状态
使用以下命令检查你的函数应用的部署状态:
az functionapp show --name myFunctionApp --resource-group myResourceGroup
查看日志
如果遇到问题,可以查看函数的应用日志以进行调试:
az functionapp log tail --name myFunctionApp --resource-group myResourceGroup
验证工具调用
通过调用你的 MCP 工具并检查结果来确保其正常工作。
清理资源
完成所有操作后,建议清理不再需要的资源以避免不必要的费用。可以使用以下命令删除资源组:
az group delete --name myResourceGroup
这样,你已经成功创建并配置了一个 MCP 服务器,并通过 GitHub Copilot 进行了交互。
微信扫一扫