{"id":25265,"date":"2026-01-29T04:16:19","date_gmt":"2026-01-29T12:16:19","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/?p=25265"},"modified":"2026-01-29T04:16:19","modified_gmt":"2026-01-29T12:16:19","slug":"dev-proxy-v2-1-with-configuration-hot-reload-and-stdio-proxying","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/dev-proxy-v2-1-with-configuration-hot-reload-and-stdio-proxying\/","title":{"rendered":"Dev Proxy v2.1 with configuration hot reload and stdio proxying"},"content":{"rendered":"<div>We&#8217;re excited to announce the release of <strong>Dev Proxy v2.1.0!<\/strong>\u00a0This release brings two major productivity features that developers have been asking for: automatic configuration hot reload and stdio traffic proxying &#8211; perfect for testing MCP servers and other stdio-based tools.<\/div>\n<div><\/div>\n<div>In this version:<\/div>\n<ul>\n<li><strong>Configuration hot reload<\/strong>\u00a0&#8211; Dev Proxy automatically restarts when you change the config file<\/li>\n<li><strong>Stdio traffic proxying<\/strong> &#8211; Intercept, inspect, and mock stdin\/stdout\/stderr traffic<\/li>\n<li>New <code>--api-port<\/code> command-line option<\/li>\n<li>LatencyPlugin now supports delays greater than 10 seconds<\/li>\n<li>CORS support for the Dev Proxy web API<\/li>\n<li>Multiple bug fixes and improvements<\/li>\n<\/ul>\n<h2>Configuration hot reload<\/h2>\n<div>No more manual restarts when tweaking your proxy configuration. Dev Proxy now watches your configuration file and automatically restarts when you save changes.<\/div>\n<p>&nbsp;<\/p>\n<div>This was one of our oldest feature requests &#8211; dating back to April 2023. Whether you&#8217;re adjusting failure rates, adding plugins, or changing URL patterns, your changes take effect immediately. Just save the file and keep working.<\/div>\n<h3>Why this matters:<\/h3>\n<div>When you&#8217;re iterating on your proxy configuration &#8211; fine-tuning error rates, adjusting mock responses, or testing different plugin combinations &#8211; stopping and restarting the proxy breaks your flow. With hot reload, your development loop gets tighter and more productive.<\/div>\n<h2>Stdio traffic proxying<\/h2>\n<div>Modern AI development increasingly relies on tools that communicate via stdin\/stdout\/stderr &#8211; particularly MCP (Model Context Protocol) servers. Now you can intercept and manipulate this traffic just like you do with HTTP.<\/div>\n<h3>How it works:<\/h3>\n<div>Wrap any executable with Dev Proxy:<\/div>\n<div><\/div>\n<div><code>devproxy stdio npx my-mcp-server<\/code><\/div>\n<p>&nbsp;<\/p>\n<div>Dev Proxy proxies all stdin, stdout, and stderr traffic, letting you:<\/div>\n<ul>\n<li><strong>Inspect messages<\/strong> in Chrome DevTools Network tab (appear as <code>stdio:\/\/<\/code> URLs)<\/li>\n<li><strong>Mock responses<\/strong> using the new <strong>MockStdioResponsePlugin<\/strong><\/li>\n<li><strong>Simulate latency<\/strong> with the existing <strong>LatencyPlugin<\/strong><\/li>\n<li><strong>Use placeholders<\/strong> like <code>@stdin.body.id<\/code>\u00a0in your mock responses<\/li>\n<\/ul>\n<div>This opens up Dev Proxy to an entirely new category of applications &#8211; anywhere you need to test, debug, or mock stdio-based communication.<\/div>\n<h2>New <code>--api-port<\/code> command-line option<\/h2>\n<div>Running multiple Dev Proxy instances? Need the default port 8897 for something else? You can now configure the API port directly from the command line:<\/div>\n<div><\/div>\n<div><code>devproxy --api-port 9000<\/code><\/div>\n<p>&nbsp;<\/p>\n<div>No need to create a separate config file just to change the port.<\/div>\n<h2>LatencyPlugin improvements<\/h2>\n<div>Previously, the LatencyPlugin schema artificially limited <code>maxMs<\/code>\u00a0to 10,000 milliseconds (10 seconds). This restriction never existed in the actual code &#8211; it was just a schema limitation.<\/div>\n<h3>What changed:<\/h3>\n<div>The schema now allows any value for <code>maxMs<\/code>, letting you simulate delays of any duration &#8211; useful for testing timeout handling and slow network conditions.<\/div>\n<h2>CORS support for Dev Proxy web API<\/h2>\n<div>Building browser-based developer tools that interact with Dev Proxy? The API on port 8897 now supports cross-origin requests, so your web applications can call endpoints like <code>\/proxy\/jwtToken<\/code> without CORS errors.<\/div>\n<h2>Bug fixes<\/h2>\n<ul>\n<li><strong><code>-e<\/code>\u00a0flag now works correctly<\/strong> &#8211; Starting Dev Proxy with environment variable presets no longer throws a <code>FormatException<\/code><\/li>\n<li><strong>AuthPlugin ApiKey validation fixed<\/strong> &#8211; The plugin no longer incorrectly reports missing <code>ApiKey.Parameters<\/code>\u00a0when they&#8217;re properly configured<\/li>\n<li><strong>GenericRandomErrorPlugin method matching<\/strong>\u00a0&#8211; Error responses without a specified HTTP method now correctly match all methods (GET, POST, PUT, DELETE, etc.) instead of only GET<\/li>\n<li><strong>MockResponsePlugin Content-Type handling<\/strong>\u00a0&#8211; No more spurious JSON parsing warnings when using form data or other non-JSON content types<\/li>\n<li><strong>CRUD API data file hot reload<\/strong>\u00a0&#8211; Data file changes now take effect immediately without restarting Dev Proxy<\/li>\n<\/ul>\n<h2>Dev Proxy Toolkit 1.12.0<\/h2>\n<div><a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=garrytrinder.dev-proxy-toolkit\">Dev Proxy Toolkit<\/a> is an extension that makes it easier to work with Dev Proxy from within Visual Studio Code.<\/div>\n<div><\/div>\n<div>This release focuses on configuration validation and developer experience improvements:<\/div>\n<ul>\n<li><strong>Custom installation paths<\/strong> \u2014 New <code>devProxyPath<\/code>\u00a0setting for non-standard Dev Proxy locations<\/li>\n<li><strong>Smarter config validation<\/strong>\u00a0\u2014 Config section properties are now validated against the Dev Proxy schema, catching invalid values, unknown properties, and schema version mismatches<\/li>\n<li><strong>Enhanced diagnostics<\/strong> \u2014 More precise highlighting, unique diagnostic codes with documentation links, and new warnings for empty <code>urlsToWatch<\/code> and optional plugin configurations<\/li>\n<li><strong>More quick fixes<\/strong>\u00a0\u2014 Add optional or missing plugin config sections, update schema versions across files, and remove unknown properties<\/li>\n<li><strong>Better plugin support<\/strong> \u2014 <code>AuthPlugin<\/code> and <code>LanguageModelFailurePlugin<\/code> fixes, plus new snippets for <code>GraphConnectorGuidancePlugin<\/code> and <code>MockStdioResponsePlugin<\/code><\/li>\n<\/ul>\n<div>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.<\/div>\n<h2>Why upgrade to v2.1.0?<\/h2>\n<ul>\n<li><strong>Faster iteration<\/strong>\u00a0&#8211; Configuration hot reload means no more manual restarts<\/li>\n<li><strong>MCP server testing<\/strong>\u00a0&#8211; Inspect, mock, and debug stdio traffic with familiar workflows<\/li>\n<li><strong>More flexibility<\/strong>\u00a0&#8211; Runtime port configuration and unlimited latency simulation<\/li>\n<li><strong>Cleaner experience<\/strong>\u00a0&#8211; Multiple bug fixes reduce friction and noise<\/li>\n<\/ul>\n<h2>Try it now<\/h2>\n<div>Download <strong>Dev Proxy v2.1.0<\/strong>\u00a0today and build better API-connected applications with confidence!<\/div>\n<div><\/div>\n<div>Thanks to <a href=\"https:\/\/github.com\/niteshsinghal85\">Nitesh Singhal<\/a> for contributing to this release.<\/div>\n<div><\/div>\n<div>Got feedback or ideas? <a href=\"https:\/\/github.com\/dotnet\/dev-proxy\/discussions\">Join us<\/a> and be part of the conversation.<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Introducing Dev Proxy v2.1 with configuration hot reload and stdio proxying<\/p>\n","protected":false},"author":74222,"featured_media":25266,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[186,289],"class_list":["post-25265","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-microsoft-365-developer","tag-net","tag-dev-proxy"],"acf":[],"blog_post_summary":"<p>Introducing Dev Proxy v2.1 with configuration hot reload and stdio proxying<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts\/25265","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=25265"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts\/25265\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/media\/25266"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/media?parent=25265"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/categories?post=25265"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/tags?post=25265"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}