{"id":3600,"date":"2026-02-24T08:00:21","date_gmt":"2026-02-24T16:00:21","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/azure-sdk\/?p=3600"},"modified":"2026-02-24T23:08:42","modified_gmt":"2026-02-25T07:08:42","slug":"azure-mcp-server-better-python-support","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/azure-sdk\/azure-mcp-server-better-python-support\/","title":{"rendered":"Improved Python (PyPi\/uvx) support in Azure MCP Server"},"content":{"rendered":"<p>We&#8217;re excited to announce improved Python support for the <a href=\"https:\/\/aka.ms\/azmcp\">Azure Model Context Protocol (MCP) Server<\/a>! Python developers can now install and run Azure MCP Server directly from <a href=\"https:\/\/pypi.org\/project\/msmcp-azure\/\">PyPI<\/a> using familiar tools like <code>uvx<\/code> and <code>pip<\/code>. Whether you&#8217;re building agentic workflows, automating Azure resources, or experimenting with AI-powered development, getting started with Azure MCP Server in Python has never been easier.<\/p>\n<h2>Why Python support matters<\/h2>\n<p>Python is one of the most popular languages in the AI and data science ecosystem. Many developers building AI agents, automation scripts, and intelligent applications rely on Python as their primary language. Until now, using the Azure MCP Server required either Node.js (npm\/npx) or .NET (dnx) as a runtime. With the new PyPI package, Python developers can stay in their preferred ecosystem while getting full access to the Azure MCP Server&#8217;s 40+ Azure service integrations.<\/p>\n<h2>Get started with Python<\/h2>\n<h3>Run directly with uvx (recommended)<\/h3>\n<p>The fastest way to get started is with <a href=\"https:\/\/docs.astral.sh\/uv\/getting-started\/installation\/\">uvx<\/a>, which runs the Azure MCP Server without requiring a permanent installation:<\/p>\n<pre><code class=\"language-bash\">uvx --from msmcp-azure azmcp server start<\/code><\/pre>\n<p>This command downloads and runs the latest version on demand, so you always get the newest features and fixes.<\/p>\n<h3>Install with pip<\/h3>\n<p>For integration into an existing Python project or virtual environment:<\/p>\n<pre><code class=\"language-bash\">pip install msmcp-azure<\/code><\/pre>\n<p>You can also pin a specific version:<\/p>\n<pre><code class=\"language-bash\">pip install msmcp-azure==&lt;version&gt;<\/code><\/pre>\n<h3>Prerequisites<\/h3>\n<ul>\n<li><a href=\"https:\/\/docs.astral.sh\/uv\/getting-started\/installation\/\">uv<\/a> for <code>uvx<\/code> commands<\/li>\n<li>Python 3.10+ for <code>pip<\/code> installation<\/li>\n<\/ul>\n<h2>Configure your MCP client for Python<\/h2>\n<p>Once installed, configure your IDE or MCP client to use the Python-based server. Add the following to your <code>mcp.json<\/code>:<\/p>\n<pre><code class=\"language-json\">{\r\n  \"mcpServers\": {\r\n    \"azure-mcp-server\": {\r\n      \"command\": \"uvx\",\r\n      \"args\": [\r\n        \"--from\",\r\n        \"msmcp-azure\",\r\n        \"azmcp\",\r\n        \"server\",\r\n        \"start\"\r\n      ]\r\n    }\r\n  }\r\n}<\/code><\/pre>\n<p>This configuration works across Visual Studio (VS) Code, Visual Studio, IntelliJ, Eclipse, Claude Desktop, Cursor, and any other MCP-compatible client. For IDE-specific file locations, see the <a href=\"https:\/\/aka.ms\/azmcp\/docs\">Azure MCP Server documentation<\/a>.<\/p>\n<blockquote><p><strong>Note:<\/strong> Remember to authenticate to Azure before running the server. See the <a href=\"https:\/\/github.com\/microsoft\/mcp\/blob\/main\/docs\/Authentication.md\">Authentication guide<\/a> for details.<\/p><\/blockquote>\n<h2>When to use uvx vs. pip<\/h2>\n<table>\n<thead>\n<tr>\n<th>Method<\/th>\n<th>Best for<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>uvx<\/strong> (recommended)<\/td>\n<td>Running on demand without installation. Always gets the latest version. Ideal for MCP server usage.<\/td>\n<\/tr>\n<tr>\n<td><strong>pip<\/strong><\/td>\n<td>Installing into an existing virtual environment or Python project. Best for integration scenarios.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Use the GitHub Copilot SDK with Python<\/h2>\n<p>The new Python package also works seamlessly with the <a href=\"https:\/\/github.com\/github\/copilot-sdk\">GitHub Copilot SDK<\/a>. Here&#8217;s a quick example of how to configure an agentic session with Azure MCP tools:<\/p>\n<pre><code class=\"language-python\">import asyncio\r\nfrom copilot import CopilotClient\r\n\r\nasync def main():\r\n    client = CopilotClient()\r\n    await client.start()\r\n\r\n    session = await client.create_session(\r\n        session_config={\r\n            \"mcp_servers\": {\r\n                \"azure-mcp\": {\r\n                    \"command\": \"uvx\",\r\n                    \"args\": [\"--from\", \"msmcp-azure\", \"azmcp\", \"server\", \"start\"],\r\n                    \"tools\": [\"*\"]\r\n                }\r\n            }\r\n        }\r\n    )\r\n\r\n    response = await session.send_message(\r\n        \"List my Azure Storage containers\"\r\n    )\r\n    print(response.text)\r\n\r\n    await client.stop()\r\n\r\nif __name__ == \"__main__\":\r\n    asyncio.run(main())<\/code><\/pre>\n<h2>What you can do with Azure MCP Server<\/h2>\n<p>With this update, Python developers have the same access as Node.js and .NET users to the full set of Azure MCP Server capabilities, including:<\/p>\n<ul>\n<li><strong>40+ Azure services<\/strong>\u2014from Microsoft Foundry and AI Search to Cosmos DB, Storage, Key Vault, and more<\/li>\n<li><strong>IDE integrations<\/strong>\u2014VS Code, Visual Studio, IntelliJ, Eclipse, and beyond<\/li>\n<li><strong>Flexible server modes<\/strong>\u2014<code>namespace<\/code> (default), <code>all<\/code>, or <code>single<\/code> tool modes<\/li>\n<li><strong>Read-only mode<\/strong>\u2014prevent write operations for safer exploration<\/li>\n<li><strong>Docker support<\/strong>\u2014run as a container in CI\/CD pipelines<\/li>\n<\/ul>\n<p>Try prompts like:<\/p>\n<ul>\n<li>&#8220;List my Azure Storage containers&#8221;<\/li>\n<li>&#8220;Show me my Cosmos DB databases&#8221;<\/li>\n<li>&#8220;What indexes do I have in my Azure AI Search service?&#8221;<\/li>\n<li>&#8220;Generate Azure CLI commands to create a new resource group&#8221;<\/li>\n<\/ul>\n<h2>Get started today<\/h2>\n<ul>\n<li><strong>PyPI Package:<\/strong> <a href=\"https:\/\/pypi.org\/project\/msmcp-azure\/\">msmcp-azure<\/a><\/li>\n<li><strong>GitHub Repo:<\/strong> <a href=\"https:\/\/aka.ms\/azmcp\">aka.ms\/azmcp<\/a><\/li>\n<li><strong>Documentation:<\/strong> <a href=\"https:\/\/aka.ms\/azmcp\/docs\">aka.ms\/azmcp\/docs<\/a><\/li>\n<li><strong>VS Code Extension:<\/strong> <a href=\"https:\/\/aka.ms\/azmcp\/download\/vscode\">aka.ms\/azmcp\/download\/vscode<\/a><\/li>\n<li><strong>Create an Issue:<\/strong> <a href=\"https:\/\/aka.ms\/azmcp\/issues\">aka.ms\/azmcp\/issues<\/a><\/li>\n<\/ul>\n<h2>Summary<\/h2>\n<p>Azure MCP Server now has first-class Python support via PyPI. Install with <code>uvx<\/code> or <code>pip<\/code> and connect your AI agents to over 40 Azure services in seconds. Whether you&#8217;re building in VS Code, running in a CI pipeline, or scripting automation, the Python package gives you a native, lightweight path to agentic Azure development. Try it out and let us know what you think!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Azure MCP Server now offers first-class Python support via PyPI and uvx, making it easier than ever for Python developers to integrate Azure into their agentic workflows.<\/p>\n","protected":false},"author":41895,"featured_media":3601,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[941,786,940,162],"class_list":["post-3600","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-azure-sdk","tag-agents","tag-ai","tag-mcp","tag-python"],"acf":[],"blog_post_summary":"<p>Azure MCP Server now offers first-class Python support via PyPI and uvx, making it easier than ever for Python developers to integrate Azure into their agentic workflows.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/azure-sdk\/wp-json\/wp\/v2\/posts\/3600","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/azure-sdk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/azure-sdk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/azure-sdk\/wp-json\/wp\/v2\/users\/41895"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/azure-sdk\/wp-json\/wp\/v2\/comments?post=3600"}],"version-history":[{"count":1,"href":"https:\/\/devblogs.microsoft.com\/azure-sdk\/wp-json\/wp\/v2\/posts\/3600\/revisions"}],"predecessor-version":[{"id":3605,"href":"https:\/\/devblogs.microsoft.com\/azure-sdk\/wp-json\/wp\/v2\/posts\/3600\/revisions\/3605"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/azure-sdk\/wp-json\/wp\/v2\/media\/3601"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/azure-sdk\/wp-json\/wp\/v2\/media?parent=3600"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/azure-sdk\/wp-json\/wp\/v2\/categories?post=3600"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/azure-sdk\/wp-json\/wp\/v2\/tags?post=3600"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}