mcpField
A
azure-mcp-server

azure-mcp-server

Local
github.com/matthewfreshitCloud & Infra0Updated 80w ago

About azure-mcp-server

azure-mcp-server is an MCP server built with mcp-framework for users managing Azure services through tools. It covers Storage, Virtual Machines, and App Service, using DefaultAzureCredential for authentication.

Key features

  1. 01Blob and container CRUD operations
  2. 02List and manage VM lifecycle
  3. 03Inspect App Service details and configuration
  4. 04Start, stop, and restart App Services
  5. 05DefaultAzureCredential authentication

Use cases

  1. 01List or maintain Azure Blob containers and files
  2. 02Start, stop, restart, or delete virtual machines
  3. 03Inspect App Service configuration and control its state

MCP support

It exposes tools to MCP clients for working with Azure Storage, Virtual Machines, and App Service.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

No install method listed yet

We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.

Repository

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

Azure MCP Server

A Model Context Protocol (MCP) server built with mcp-framework that provides tools for interacting with Azure services.

Quick Start

# Install dependencies
npm install

# Build the project
npm run build

# Start the server
npm start

Project Structure

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 Tools Overview

This server provides tools for interacting with multiple Azure services:

ServiceTool PrefixDescription
Storageazure_*Blob storage operations
Virtual Machinesazure_vms_*VM management operations
App Serviceazure_apps_*App Service operations
Authentication

All tools use DefaultAzureCredential from @azure/identity, which tries multiple authentication methods in the following order:

  1. Environment variables (AZURE_TENANT_ID, AZURE_CLIENT_ID, AZURE_CLIENT_SECRET)
  2. Managed Identity
  3. Azure CLI credentials
  4. Visual Studio Code credentials
  5. Interactive browser login (as a fallback)

Available Tools

Azure Storage Tools
Required Permissions
  • Storage Account Contributor: For managing storage account settings
  • Storage Blob Data Contributor: For CRUD operations on blobs and containers
Container Operations
ToolDescriptionExample Input
azure_list_containersList containers{ "accountName": "yourstorageaccount" }
azure_create_containerCreate container{ "accountName": "yourstorageaccount", "containerName": "mycontainer" }
azure_delete_containerDelete container{ "accountName": "yourstorageaccount", "containerName": "mycontainer" }
Blob Operations
ToolDescriptionExample Input
azure_list_blobsList blobs{ "accountName": "yourstorageaccount", "containerName": "mycontainer" }
azure_upload_blobUpload blob{ "accountName": "yourstorageaccount", "containerName": "mycontainer", "blobName": "example.txt", "content": "This is the content" }
azure_download_blobDownload blob{ "accountName": "yourstorageaccount", "containerName": "mycontainer", "blobName": "example.txt" }
azure_delete_blobDelete blob{ "accountName": "yourstorageaccount", "containerName": "mycontainer", "blobName": "example.txt" }
Azure Virtual Machine Tools
Required Permissions
  • Virtual Machine Contributor: For managing VMs
  • Reader: For listing and viewing VM details
VM Operations
ToolDescriptionExample Input
azure_vms_listList VMs{ "subscriptionId": "your-subscription-id" }
azure_vms_startStart VM{ "subscriptionId": "your-subscription-id", "resourceGroupName": "your-resource-group", "vmName": "your-vm-name" }
azure_vms_stopStop VM{ "subscriptionId": "your-subscription-id", "resourceGroupName": "your-resource-group", "vmName": "your-vm-name" }
azure_vms_restartRestart VM{ "subscriptionId": "your-subscription-id", "resourceGroupName": "your-resource-group", "vmName": "your-vm-name" }
azure_vms_deleteDelete VM{ "subscriptionId": "your-subscription-id", "resourceGroupName": "your-resource-group", "vmName": "your-vm-name" }
Azure App Service Tools
Required Permissions
  • Website Contributor: For managing App Services
  • Reader: For listing and viewing App Service details
App Service Operations
ToolDescriptionExample Input
azure_apps_listList App Services{ "subscriptionId": "your-subscription-id" }
azure_apps_getGet App Service details{ "subscriptionId": "your-subscription-id", "resourceGroupName": "your-resource-group", "appName": "your-app-name" }
azure_apps_get_configGet App Service config{ "subscriptionId": "your-subscription-id", "resourceGroupName": "your-resource-group", "appName": "your-app-name" }
azure_apps_startStart App Service{ "subscriptionId": "your-subscription-id", "resourceGroupName": "your-resource-group", "appName": "your-app-name" }
azure_apps_stopStop App Service{ "subscriptionId": "your-subscription-id", "resourceGroupName": "your-resource-group", "appName": "your-app-name" }
azure_apps_restartRestart App Service{ "subscriptionId": "your-subscription-id", "resourceGroupName": "your-resource-group", "appName": "your-app-name" }

Tool Development

Creating a New Tool
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;

Debugging

If you encounter issues with the Azure tools, check the console logs for detailed debugging information. Common issues include:

  • Authentication failures
  • Missing permissions
  • Non-existent resources
  • Network connectivity problems

Building and Testing

  1. Make changes to your tools
  2. Run npm run build to compile
  3. The server will automatically load your tools on startup

Learn More

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.