{"id":24434,"date":"2025-06-26T00:22:33","date_gmt":"2025-06-26T07:22:33","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/?p=24434"},"modified":"2025-06-26T01:45:30","modified_gmt":"2025-06-26T08:45:30","slug":"dev-proxy-v0-29-with-refactored-architecture-mcp-server-and-exposed-lm-prompts","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/dev-proxy-v0-29-with-refactored-architecture-mcp-server-and-exposed-lm-prompts\/","title":{"rendered":"Dev Proxy v0.29 with refactored architecture, MCP server, and exposed LM prompts"},"content":{"rendered":"<p>We\u2019re excited to introduce Dev Proxy v0.29, with a major architectural overhaul, control over language model prompts, and improved diagnostics. Whether you&#8217;re building, debugging, or customizing your API simulations, this version gives you more power and clarity than ever before.<\/p>\n<p>In this version:<\/p>\n<ul>\n<li>Architectural refactoring to better align with .NET<\/li>\n<li>Dev Proxy MCP Server<\/li>\n<li>Exposed Dev Proxy language model prompts<\/li>\n<li>Improved logging with logger categories<\/li>\n<li>Certificate cleanup on uninstall (Windows)<\/li>\n<li>Bug fixes and improvements<\/li>\n<\/ul>\n<h2>Architectural refactoring<\/h2>\n<p>This release introduces a major refactor of Dev Proxy\u2019s architecture to better align with .NET features. We\u2019ve:<\/p>\n<ul>\n<li>Adopted .NET Dependency Injection to simplify object management<\/li>\n<li>Reorganized project structure for better clarity<\/li>\n<li>Replaced event-based plugin architecture with base methods<\/li>\n<li>Improved code consistency and alignment with .NET conventions<\/li>\n<\/ul>\n<p>This change allows us to set the foundation for a more scalable and maintainable project going forward.<\/p>\n<h3>Breaking changes<\/h3>\n<p>As a result of the refactoring, we have the following breaking changes:<\/p>\n<ul>\n<li>The assembly with standard Dev Proxy plugins is now named <strong>DevProxy.Plugins.dll<\/strong>. The assembly with shared code for building custom plugins is named <strong>DevProxy.Abstractions.dll<\/strong>.<\/li>\n<li>Custom plugin architecture has changed, introducing a different base class. We also no longer use events, but virtual methods which you can override in your custom plugins.<\/li>\n<li>Changed organization of shared code and other utilities in the DevProxy.Abstractions assembly.<\/li>\n<\/ul>\n<h2>Dev Proxy MCP server<\/h2>\n<p>We\u2019re excited to announce the release of the Dev Proxy MCP server! Use our server to:<\/p>\n<ul>\n<li>Create Dev Proxy configurations using natural language<\/li>\n<li>Get contextual help for working with Dev Proxy<\/li>\n<li>Discover Dev Proxy features and capabilities<\/li>\n<\/ul>\n<p>For a long time, we\u2019ve wanted to let you configure Dev Proxy using natural language. Dev Proxy offers many features and supports a wide range of scenarios, but if you\u2019re not using it regularly, it might take you a while to discover what\u2019s possible and how to correctly configure Dev Proxy.<\/p>\n<p>With the advancements in LLMs we\u2019ve been getting closer and closer to this ability. The recent support for MCP (Model Context Protocol) servers was the final piece of the puzzle that we needed. Using a custom MCP server, we can provide AI agents with the necessary information about Dev Proxy to help you configure it for your needs!<\/p>\n<p>Here are some examples of how you can use our MCP server with the GitHub Copilot agent in Visual Studio Code:<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" width=\"2500\" height=\"1686\" class=\"wp-image-24444\" src=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/06\/word-image-24434-1-2-scaled.png\" alt=\"GitHub Copilot in Agent mode creating a Dev Proxy configuration for simulating Microsoft Graph behaviors using the Dev Proxy MCP server\" srcset=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/06\/word-image-24434-1-2-scaled.png 2500w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/06\/word-image-24434-1-2-300x202.png 300w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/06\/word-image-24434-1-2-1024x691.png 1024w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/06\/word-image-24434-1-2-768x518.png 768w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/06\/word-image-24434-1-2-1536x1036.png 1536w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/06\/word-image-24434-1-2-2048x1381.png 2048w\" sizes=\"(max-width: 2500px) 100vw, 2500px\" \/> <em>GitHub Copilot in Agent mode creating a Dev Proxy configuration for simulating Microsoft Graph behaviors using the Dev Proxy MCP server<\/em><\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" width=\"2500\" height=\"1286\" class=\"wp-image-24445\" src=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/06\/word-image-24434-2-2-scaled.png\" alt=\"GitHub Copilot in Agent mode creating a Dev Proxy configuration for simulating latency on a public API using the Dev Proxy MCP server\" srcset=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/06\/word-image-24434-2-2-scaled.png 2500w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/06\/word-image-24434-2-2-300x154.png 300w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/06\/word-image-24434-2-2-1024x527.png 1024w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/06\/word-image-24434-2-2-768x395.png 768w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/06\/word-image-24434-2-2-1536x790.png 1536w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/06\/word-image-24434-2-2-2048x1054.png 2048w\" sizes=\"(max-width: 2500px) 100vw, 2500px\" \/> <em>GitHub Copilot in Agent mode creating a Dev Proxy configuration for simulating latency on a public API using the Dev Proxy MCP server<\/em><\/p>\n<p>If you use Visual Studio Code, you can get our MCP server by installing <a href=\"https:\/\/aka.ms\/devproxy\/toolkit\">Dev Proxy Toolkit<\/a> from the extension marketplace. Otherwise, get it from <a href=\"https:\/\/www.npmjs.com\/package\/@devproxy\/mcp\">npm<\/a> and follow the instructions for your MCP host to use it.<\/p>\n<p>Try it and let us know! We\u2019d love to hear from you what\u2019s working and what else we should consider to make it better for you.<\/p>\n<h2>Exposed Dev Proxy LM prompts<\/h2>\n<p>Dev Proxy uses language models to improve some of its features, such as generating OpenAPI specs or TypeSpec files. By default, we use llama3.2 on Ollama, but you can switch to any other language model and host. While researching language models we realized that when you use a different language model, you also need to update the prompt.<\/p>\n<p>Dev Proxy now exposes the language model prompts used in features like OpenAPI and TypeSpec generation. This gives you full control to tailor prompts when switching models. Our prompts are exposed in the <strong>prompt<\/strong> folder in Dev Proxy\u2019s installation directory. To let you easily test them, we store them as <a href=\"https:\/\/prompty.ai\">Prompty<\/a> files.<\/p>\n<p><img decoding=\"async\" class=\"alignnone wp-image-24446\" src=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/06\/word-image-24434-3-2-scaled.png\" alt=\"A Prompty file opened in Visual Studio Code editor\" width=\"2500\" height=\"1737\" srcset=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/06\/word-image-24434-3-2-scaled.png 2500w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/06\/word-image-24434-3-2-300x208.png 300w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/06\/word-image-24434-3-2-1024x712.png 1024w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/06\/word-image-24434-3-2-768x534.png 768w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/06\/word-image-24434-3-2-1536x1067.png 1536w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/06\/word-image-24434-3-2-2048x1423.png 2048w\" sizes=\"(max-width: 2500px) 100vw, 2500px\" \/><\/p>\n<h2>Improved logging with logger categories<\/h2>\n<p>Debugging just got easier. Dev Proxy now prints the logger category for debug and trace messages, helping you quickly identify where logs originate in the application.<\/p>\n<p><img decoding=\"async\" class=\"alignnone wp-image-24447\" src=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/06\/word-image-24434-4-1.png\" alt=\"Dev Proxy output in a terminal. Log messages printed with different severities. Each messages is prefixed with the category it belongs to.\" width=\"2258\" height=\"1778\" srcset=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/06\/word-image-24434-4-1.png 2258w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/06\/word-image-24434-4-1-300x236.png 300w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/06\/word-image-24434-4-1-1024x806.png 1024w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/06\/word-image-24434-4-1-768x605.png 768w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/06\/word-image-24434-4-1-1536x1209.png 1536w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/06\/word-image-24434-4-1-2048x1613.png 2048w\" sizes=\"(max-width: 2258px) 100vw, 2258px\" \/><\/p>\n<h2>Certificate cleanup on uninstall (Windows)<\/h2>\n<p>Uninstalling Dev Proxy on Windows now removes the root certificate that Dev Proxy uses for decrypting HTTPS traffic, ensuring a clean uninstall experience.<\/p>\n<h2>New version of Dev Proxy Toolkit<\/h2>\n<p>Dev Proxy Toolkit is a Visual Studio Code extension that makes it easy to create and update configuration files. Alongside the new release of Dev Proxy, we\u2019ve also released a new version of the toolkit, v0.26.0.<\/p>\n<p>In this version, we\u2019ve included:<\/p>\n<ul>\n<li>Dev Proxy MCP Server<\/li>\n<li>Updated snippets with 0.29 schema and new plugin DLL name<\/li>\n<li>Plugin path guidance and code action to identify and update old DLL references<\/li>\n<li>Generate JWT command<\/li>\n<\/ul>\n<p>We\u2019ve also updated the way we handle upgrades. When you choose to upgrade Dev Proxy via the upgrade toast notification, if you installed Dev Proxy via a package manager, we now upgrade Dev Proxy in the background for you.<\/p>\n<p>Checkout out the <a href=\"https:\/\/marketplace.visualstudio.com\/items\/garrytrinder.dev-proxy-toolkit\/changelog\">changelog<\/a> for more information on changes and bug fixes.<\/p>\n<h2>Try it now<\/h2>\n<p>Download <strong>Dev Proxy v0.29<\/strong> and try the new architecture, better customization, and improved diagnostics. Thanks again to <a href=\"https:\/\/github.com\/bartizan\">Artem Azaraev<\/a> for contributing to this release.<\/p>\n<p>Got feedback or ideas? <a href=\"https:\/\/github.com\/dotnet\/dev-proxy\/discussions\">Join us<\/a> and be part of the conversation.<\/p>\n<p><em>Follow us on <\/em><a href=\"http:\/\/twitter.com\/microsoft365dev\"><em>X,<\/em><\/a><a href=\"http:\/\/linkedin.com\/showcase\/microsoft365dev\"><em> LinkedIn<\/em><\/a><em>, and subscribe to our <\/em><a href=\"https:\/\/www.youtube.com\/microsoft365developer\"><em>YouTube<\/em><\/a> channel <em>to stay up to date on the latest developer news and announcements.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introducing Dev Proxy v0.29, with a major architectural overhaul, control over language model prompts, and improved diagnostics.<\/p>\n","protected":false},"author":74222,"featured_media":24443,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[186,289,398],"class_list":["post-24434","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-microsoft-365-developer","tag-net","tag-dev-proxy","tag-mcp"],"acf":[],"blog_post_summary":"<p>Introducing Dev Proxy v0.29, with a major architectural overhaul, control over language model prompts, and improved diagnostics.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts\/24434","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/users\/74222"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/comments?post=24434"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts\/24434\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/media\/24443"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/media?parent=24434"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/categories?post=24434"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/tags?post=24434"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}