On Azure
FreeNot checkedEnables listing image blobs from Azure Blob Storage and generating descriptions using Azure OpenAI's gpt-4o vision model.
About
Enables listing image blobs from Azure Blob Storage and generating descriptions using Azure OpenAI's gpt-4o vision model.
README
Production-ready sample for running a minimal MCP Server on Azure. It exposes two tools:
list_captain_files– list all blob names in a containerdescribe_blob– generate a short description for an image blob using Azure OpenAI (gpt-4o)
✨ What you get
- A minimal MCP Server built with Express.js.
- Secure access to Azure Blob Storage using a connection string.
- Server-side calls to Azure OpenAI vision models for image description.
- Example
.env.examplefor easy setup. - PowerShell & cURL commands for quick testing.
🧱 Architecture
flowchart TD
A[MCP Client] -->|HTTP| B[MCP Server]
B -->|List/Fetch| C[Azure Blob Storage]
B -->|Send image| D[Azure OpenAI gpt-4o Vision]
D -->|Description| B
B -->|JSON Response| A
MCP Client (Copilot, Inspector, etc.) sends HTTP requests.
This Server (Express.js) handles /tools endpoints.
Server fetches the file from Azure Blob Storage.
Sends it to Azure OpenAI GPT-4o for a short, clear description.
📦 Prerequisites
- Node.js 18+ (or 20/22)
- Azure Storage Account with a container (e.g.,
captain-azure) containing images - Azure OpenAI resource with a gpt-4o deployment
- Access keys & endpoint for both services
🔐 Environment Variables (.env)
AZURE_STORAGE_CONNECTION_STRING=DefaultEndpointsProtocol=https;AccountName=<name>;AccountKey=<key>;EndpointSuffix=core.windows.net
CONTAINER_NAME=captain-azure
AZURE_OPENAI_ENDPOINT=https://<your-openai>.openai.azure.com
AZURE_OPENAI_KEY=<your-openai-key>
AZURE_OPENAI_DEPLOYMENT_NAME=gpt-4o
AZURE_OPENAI_API_VERSION=2024-02-15-preview
🚀 Install & Run
git clone https://github.com/OfekBenEliezer/mcp-on-azure.git
cd mcp-on-azure
npm install
node server.js
# MCP Server running on: http://localhost:3333
📂 List blobs
PowerShell
Invoke-RestMethod -Uri "http://localhost:3333/tools/list_captain_files" `
-Method Post `
-ContentType "application/json"
cURL
curl -s -X POST http://localhost:3333/tools/list_captain_files \
-H "Content-Type: application/json"
🖼 Describe a blob
PowerShell
Invoke-RestMethod -Uri "http://localhost:3333/tools/describe_blob" `
-Method Post `
-Body (@{ blobName = "CertWebinar.png" } | ConvertTo-Json) `
-ContentType "application/json"
cURL
curl -s -X POST http://localhost:3333/tools/describe_blob \
-H "Content-Type: application/json" \
-d '{"blobName":"CertWebinar.png"}'
Expected output
{
"description": "A short, clear sentence describing the image."
}
🛡️ Security Notes
- Never commit keys or secrets.
- If blobs are private, generate SAS URLs with short TTL.
- Restrict CORS and ingress when running in production.
- For enterprise scenarios, prefer Managed Identity over raw keys.
📜 License
MIT License – free to use, modify, and distribute with attribution.
👨✈️ Built by Captain Azure – Ofek Ben Eliezer
Installing On Azure
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/OfekBenEliezer/mcp-on-azureFAQ
Is On Azure MCP free?
Yes, On Azure MCP is free — one-click install via Unyly at no cost.
Does On Azure need an API key?
No, On Azure runs without API keys or environment variables.
Is On Azure hosted or self-hosted?
A hosted option is available: Unyly runs the server in the cloud, no local setup required.
How do I install On Azure in Claude Desktop, Claude Code or Cursor?
Open On Azure on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Omni Video
An MCP server that transforms LLM-enabled IDEs into professional video editors by pre-processing footage into text proxies, generating motion graphics via HTML/
by buildwithtazaARA
Generate images, video and audio from any AI agent — one connector.
by ARAYouTube
Transcripts, channel stats, search
by YouTubeEverArt
AI image generation using various models.
by modelcontextprotocolCompare On Azure with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All media MCPs
