azure-pricing-mcp
An MCP (Model Context Protocol) server that lets LLMs query Azure service pricing using the public Azure Retail Prices API.
No Azure credentials required — the API is free and public.
Quick Start
Run directly with uvx:
uvx azure-pricing-mcp
Or install and run:
uv pip install azure-pricing-mcp
azure-pricing-mcp
Tools
| Tool | Description |
|---|---|
search_prices |
Search Azure retail prices by service, region, SKU, or product name |
estimate_cost |
Estimate monthly cost for a service given quantity and usage hours |
compare_regions |
Compare prices for a service/SKU across Azure regions (sorted cheapest first) |
list_services |
Discover available Azure services (with optional text search) |
list_regions |
List Azure regions (optionally filtered by service) |
All tools support a currency_code parameter (default: USD). Examples: EUR, BRL, GBP, JPY.
Usage Examples
Once connected to an MCP client (Claude Desktop, Cursor, Claude Code, etc.), you can ask:
- "What's the price of a D2 v3 VM in East US?"
- "Estimate the monthly cost for 5 Standard_LRS storage accounts in West Europe"
- "Compare Virtual Machines D4 v3 pricing across all regions"
- "List all Azure services related to 'database'"
- "What regions offer Azure Cosmos DB?"
Configuration
Using mcp.json (VS Code / GitHub Copilot)
Create an mcp.json file in your project's .vscode folder (.vscode/mcp.json) to share the server with your team:
{
"servers": {
"azure-pricing": {
"command": "uvx",
"args": ["azure-pricing-mcp"]
}
}
}
Or add it at the user level (~/.vscode/mcp.json) to make it available across all projects.
Tip: When opening a project with an
mcp.json, VS Code will prompt you to start the MCP server automatically.
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"azure-pricing": {
"command": "uvx",
"args": ["azure-pricing-mcp"]
}
}
}
Claude Code
claude mcp add azure-pricing -- uvx azure-pricing-mcp
Cursor
Add to your Cursor MCP settings (.cursor/mcp.json):
{
"mcpServers": {
"azure-pricing": {
"command": "uvx",
"args": ["azure-pricing-mcp"]
}
}
}
Windsurf
Add to your Windsurf MCP config (~/.windsurf/mcp.json):
{
"mcpServers": {
"azure-pricing": {
"command": "uvx",
"args": ["azure-pricing-mcp"]
}
}
}
Development
# Clone and install
git clone https://github.com/pimentelleo/azure-pricing-mcp.git
cd azure-pricing-mcp
uv sync
# Run locally
uv run azure-pricing-mcp
# Test with MCP Inspector
npx -y @modelcontextprotocol/inspector uv run azure-pricing-mcp
How It Works
This server uses the Azure Retail Prices REST API to fetch real-time public pricing data for Azure services. Key characteristics:
- No authentication required — the API is publicly accessible
- Real-time data — prices are updated regularly by Microsoft
- Public retail prices only — does not include enterprise agreements or negotiated rates
- Supports all Azure services — VMs, Storage, Databases, Networking, AI/ML, and more
License
MIT
Metadata
Release files for azure-pricing-mcp 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| azure_pricing_mcp-0.1.3.tar.gz | 52.8 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| azure_pricing_mcp-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 61.7 kB
Release files / azure_pricing_mcp-0.1.3.tar.gz
| Download URL | azure_pricing_mcp-0.1.3.tar.gz |
|---|---|
| Size | 52.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f7cd3f0b9e90cd47fad02680ed88c24d32fb4205a1f58931b1b467d6cd8c1095
|
|
BLAKE2b-256 checksum How to use checksums |
b43573031e770a3cd1a871b00496e62d29ce19b0be51d8d5109b281f163934ed
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 22, 2026.
Transparency logRelease files / azure_pricing_mcp-0.1.3-py3-none-any.whl
| Download URL | azure_pricing_mcp-0.1.3-py3-none-any.whl |
|---|---|
| Size | 8.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
399729f44b30839dcfca14b292aedc3cfbdaf7e5a5db4ba113fe825342c823f4
|
|
BLAKE2b-256 checksum How to use checksums |
fc015379b0a193aa1a5d1ca5dc8244cc8c63d1de910bfd47c25a23487134195a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 22, 2026.
Transparency logSecurity for azure-pricing-mcp 0.1.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for azure_pricing_mcp-0.1.3.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 22, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.