Azure MCP服务器
使用MCP框架构建的模型上下文协议(MCP)服务器,提供与Azure服务交互的工具。
快速开始
# Install dependencies
npm install
# Build the project
npm run build
# Start the server
npm start
项目结构
azure-mcp-server/
├── src/
│ ├── tools/ # MCP Tools
│ │ ├── Storage/ # Azure Storage tools
│ │ ├── VirtualMachine/ # Azure VM tools
│ │ └── AppService/ # Azure App Service tools
│ └── index.ts # Server entry point
├── package.json
└── tsconfig.json
Azure工具概述
此服务器提供与多个Azure服务交互的工具:
| 服务 |
工具前缀 |
描述 |
| 存储 |
azure_* |
Blob存储操作 |
| 虚拟机 |
azure_vms_* |
VM管理操作 |
| 应用服务 |
azure_apps_* |
应用服务操作 |
认证
所有工具都使用@azure/identity中的DefaultAzureCredential,它按以下顺序尝试多种身份验证方法:
- 环境变量(AZURE_TENANT_ID、AZURE_CLIENT_ID、AZURE_LIENT_SECRET)
- 管理身份
- Azure CLI凭据
- Visual Studio代码凭据
- 交互式浏览器登录(作为回退)
可用工具
Azure存储工具
必需的权限
- 存储帐户贡献者:用于管理存储帐户设置
- 存储Blob数据贡献者:用于blob和容器上的CRUD操作
集装箱作业
| 工具 |
描述 |
示例输入 |
| azure_list_containers |
列出容器 |
{ "accountName": "yourstorageaccount" } |
| azure_create_container |
创建容器 |
{ "accountName": "yourstorageaccount", "containerName": "mycontainer" } |
| azure_delete_container |
删除容器 |
{ "accountName": "yourstorageaccount", "containerName": "mycontainer" } |
Blob操作
| 工具 |
描述 |
示例输入 |
| azure_list_blobs |
列出blob |
{ "accountName": "yourstorageaccount", "containerName": "mycontainer" } |
| azure_upload_blob |
上传blob |
{ "accountName": "yourstorageaccount", "containerName": "mycontainer", "blobName": "example.txt", "content": "This is the content" } |
| azure_download_blob |
下载blob |
{ "accountName": "yourstorageaccount", "containerName": "mycontainer", "blobName": "example.txt" } |
| azure_delete_blob |
删除blob |
{ "accountName": "yourstorageaccount", "containerName": "mycontainer", "blobName": "example.txt" } |
Azure虚拟机工具
必需的权限
- 虚拟机贡献者:用于管理虚拟机
- 读者:用于列出和查看VM详细信息
VM操作
| 工具 |
描述 |
示例输入 |
| azure_vms_list |
列出虚拟机 |
{ "subscriptionId": "your-subscription-id" } |
| azure_vms_start |
启动VM |
{ "subscriptionId": "your-subscription-id", "resourceGroupName": "your-resource-group", "vmName": "your-vm-name" } |
| azure_vms_stop |
停止VM |
{ "subscriptionId": "your-subscription-id", "resourceGroupName": "your-resource-group", "vmName": "your-vm-name" } |
| azure_vms_restart |
重新启动VM |
{ "subscriptionId": "your-subscription-id", "resourceGroupName": "your-resource-group", "vmName": "your-vm-name" } |
| azure_vms_delete |
删除虚拟机 |
{ "subscriptionId": "your-subscription-id", "resourceGroupName": "your-resource-group", "vmName": "your-vm-name" } |
Azure应用服务工具
必需的权限
- 网站贡献者:用于管理应用程序服务
- 读者:用于列出和查看应用服务详细信息
应用服务操作
| 工具 |
描述 |
示例输入 |
| azure apps_list |
列出应用程序服务 |
{ "subscriptionId": "your-subscription-id" } |
| azure apps_get |
获取应用服务详细信息 |
{ "subscriptionId": "your-subscription-id", "resourceGroupName": "your-resource-group", "appName": "your-app-name" } |
| azure apps_get_config |
获取应用服务配置 |
{ "subscriptionId": "your-subscription-id", "resourceGroupName": "your-resource-group", "appName": "your-app-name" } |
| azure apps_start |
启动应用服务 |
{ "subscriptionId": "your-subscription-id", "resourceGroupName": "your-resource-group", "appName": "your-app-name" } |
| azure apps_stop |
停止应用服务 |
{ "subscriptionId": "your-subscription-id", "resourceGroupName": "your-resource-group", "appName": "your-app-name" } |
| azure apps_restart |
重新启动应用程序服务 |
{ "subscriptionId": "your-subscription-id", "resourceGroupName": "your-resource-group", "appName": "your-app-name" } |
工具开发
创建新工具
import { MCPTool } from 'mcp-framework';
import { z } from 'zod';
interface MyToolInput {
message: string;
}
class MyTool extends MCPTool<MyToolInput> {
name = 'my_tool';
description = 'Describes what your tool does';
schema = {
message: {
type: z.string(),
description: 'Description of this input parameter'
}
};
async execute(input: MyToolInput) {
// Your tool logic here
return `Processed: ${input.message}`;
}
}
export default MyTool;
调试
如果您在使用Azure工具时遇到问题,请查看控制台日志以获取详细的调试信息。常见问题包括:
- 身份验证失败
- 缺少权限
- 不存在的资源
- 网络连接问题
建造和测试
- 对工具进行更改
- 跑
npm run build 编写
- 服务器将在启动时自动加载您的工具
了解更多