mcpField
A
azure-mcp-server

azure-mcp-server

本地服务
github.com/matthewfreshit云与基础设施080 周前更新

关于 azure-mcp-server

azure-mcp-server 是基于 mcp-framework 构建的 Azure 服务 MCP 服务,面向需要通过工具管理云资源的用户。它覆盖 Storage、Virtual Machines 和 App Service,并使用 DefaultAzureCredential 进行身份验证。

主要功能

  1. 01Blob 和容器的增删查改
  2. 02虚拟机的列表与生命周期管理
  3. 03App Service 信息与配置查询
  4. 04App Service 启停与重启
  5. 05DefaultAzureCredential 身份验证

适用场景

  1. 01列出或维护 Azure Blob 容器和文件
  2. 02启动、停止、重启或删除虚拟机
  3. 03查看 App Service 配置并控制其状态

MCP 相关

它向 MCP 客户端提供用于操作 Azure Storage、Virtual Machines 和 App Service 的工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Azure MCP 服务

一个使用 mcp-framework 构建的模型上下文协议(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 管理操作
App Serviceazure_apps_*App Service 操作
身份验证

所有工具都使用 @azure/identity 中的 DefaultAzureCredential,它会按以下顺序尝试多种身份验证方法:

  1. 环境变量(AZURE_TENANT_ID、AZURE_CLIENT_ID、AZURE_CLIENT_SECRET)
  2. 托管标识
  3. Azure CLI 凭据
  4. Visual Studio Code 凭据
  5. 交互式浏览器登录(作为后备方式)

可用工具

Azure 存储工具
所需权限
  • Storage Account Contributor:用于管理存储帐户设置
  • Storage Blob Data Contributor:用于对 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 虚拟机工具
所需权限
  • Virtual Machine Contributor:用于管理 VM
  • Reader:用于列出和查看 VM 详细信息
VM 操作
工具描述示例输入
azure_vms_list列出 VM{ "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删除 VM{ "subscriptionId": "your-subscription-id", "resourceGroupName": "your-resource-group", "vmName": "your-vm-name" }
Azure App Service 工具
所需权限
  • Website Contributor:用于管理 App Service
  • Reader:用于列出和查看 App Service 详情
App Service 操作
工具描述示例输入
azure_apps_list列出 App Service{ "subscriptionId": "your-subscription-id" }
azure_apps_get获取 App Service 详情{ "subscriptionId": "your-subscription-id", "resourceGroupName": "your-resource-group", "appName": "your-app-name" }
azure_apps_get_config获取 App Service 配置{ "subscriptionId": "your-subscription-id", "resourceGroupName": "your-resource-group", "appName": "your-app-name" }
azure_apps_start启动 App Service{ "subscriptionId": "your-subscription-id", "resourceGroupName": "your-resource-group", "appName": "your-app-name" }
azure_apps_stop停止 App Service{ "subscriptionId": "your-subscription-id", "resourceGroupName": "your-resource-group", "appName": "your-app-name" }
azure_apps_restart重启 App Service{ "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 工具遇到问题,请查看控制台日志以获取详细的调试信息。常见问题包括:

  • 身份验证失败
  • 缺少权限
  • 资源不存在
  • 网络连接问题

构建和测试

  1. 修改工具
  2. 运行 npm run build 进行编译
  3. 服务启动时会自动加载工具

了解更多

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。