1"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([["11273"],{13733(e,t,s){s.r(t),s.d(t,{assets:()=>i,contentTitle:()=>o,default:()=>c,frontMatter:()=>l,metadata:()=>a,toc:()=>d});var a=s(37625),n=s(74848),r=s(28453);let l={title:"MLflow 3.15.0 Highlights: MCP Registry, a Smarter Assistant, and Multimodal Judges",sidebar_label:"MLflow 3.15.0",slug:"3.15.0",authors:["mlflow-maintainers"]},o,i={authorsImageUrls:[void 0]},d=[{value:"1. <strong>MCP Registry</strong>",id:"1-mcp-registry",level:2},{value:"2. <strong>A Smarter, Easier MLflow Assistant</strong>",id:"2-a-smarter-easier-mlflow-assistant",level:2},{value:"3. <strong>Shareable Table Views</strong>",id:"3-shareable-table-views",level:2},{value:"4. <strong>Proxy-less Artifact Upload & Download</strong>",id:"4-proxy-less-artifact-upload--download",level:2},{value:"5. <strong>Multimodal Attachments in LLM Judges</strong>",id:"5-multimodal-attachments-in-llm-judges",level:2},{value:"Full Changelog",id:"full-changelog",level:2},{value:"What's Next",id:"whats-next",level:2},{value:"Get Started",id:"get-started",level:3}
1,{value:"Share Your Feedback",id:"share-your-feedback",level:3},{value:"Learn More",id:"learn-more",level:3}];function h(e){let t={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.p,{children:["MLflow 3.15.0 is all about making GenAI development faster and more collaborative. This release introduces a centralized ",(0,n.jsx)(t.strong,{children:"MCP Registry"})," for managing Model Context Protocol servers, a significantly upgraded ",(0,n.jsx)(t.strong,{children:"MLflow Assistant"})," with multi-provider support and a friction-free setup, ",(0,n.jsx)(t.strong,{children:"shareable table views"})," for the Runs table, ",(0,n.jsx)(t.strong,{children:"proxy-less artifact transfers"})," for big files, and ",(0,n.jsx)(t.strong,{children:"multimodal LLM judges"})," that can finally ",(0,n.jsx)(t.em,{children:"see"})," the images in your traces. Here's what's new."]}),"\n",(0,n.jsxs)(t.h2,{id:"1-mcp-registry",children:["1. ",(0,n.jsx)(t.strong,{children:"MCP Registry"})]}),"\n",(0,n.jsx)("img",{src:"/img/releases/3.15.0/mcp-registry-server-list.png",width:"100%",style:{display:"block",marginBottom:24}}),"\n",(0,n.jsxs)(t.p,{children:["Model Context Protocol servers are quickly becoming the connective tissue between agents and the tools they use \u2014 but until now, keeping track of them meant passing around config snippets and hoping everyone had the right version. The new ",(0,n.jsx)(t.strong,{children:"MCP Registry"})," gives you a single, centralized catalog to register, version, and share MCP servers across your team."]}),"\n",(0,n.jsxs)(t.p,{children:["Every server gets semantic-versioned configs, promotable aliases (think ",(0,n.jsx)(t.code,{children:"@production"})," and ",(0,n.jsx)(t.code,{children:"@staging"}),"), and tags for easy organization. MLflow auto-discovers each server's tools so you always know what a given version exposes, and it generates ready-made connection instructions for both Claude Code and ",(0,n.jsx)(t.code,{children:".mcp.json"})," \u2014 copy, paste, and you're connected. Manage the whole thing however you prefer: through the UI, the REST API, or Python."]}),"\n",(0,n.jsxs)(t.h2,{id:"2-a-smarter-easier-mlflow-assistant",children:["2. ",(0,n.jsx)(t.strong,{children:"A Smarter, Easier MLflow Assistant"})]}),"\n",(0,n.jsx)("video",{controls:!0,autoplay:!0,muted:!0,loop:!0,playsinline:!0,width:"100%",style:{display:"block",marginBottom:24},children:(0,n.jsx)("source",{src:s(84782).A,type:"video/webm"})}),"\n",(0,n.jsx)(t.p,{children:"The MLflow Assistant just got a major upgrade, and the theme is simple: less setup, more power."}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.strong,{children:"Bring your own model."})," The Assistant now supports multiple LLM providers \u2014 Claude Code, Codex, and API/Gateway endpoints \u2014 all selectable from a single settings page. Use the model that fits your workflow."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.strong,{children:"Setup in seconds."})," Getting started is now as easy as pasting an API key directly into the pane. MLflow stores it securely in the Gateway's LLM Connections, so there's no fiddling with environment variables or config files."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.strong,{children:"Full transparency as it works."})," Tool calls, approvals, and token costs are now displayed inline, so you can see exactly what the Assistant is doing \u2014 and what it's costing you \u2014 as it happens."]}),"\n"]}),"\n",(0,n.jsxs)(t.h2,{id:"3-shareable-table-views",children:["3. ",(0,n.jsx)(t.strong,{children:"Shareable Table Views"})]}),"\n",(0,n.jsx)("img",{src:"/img/releases/3.15.0/3-15-new-switching-saved-view.gif",width:"100%",style:{display:"block",marginBottom:24}}),"\n",(0,n.jsx)(t.p,{children:'Everyone builds their Runs table a little differently \u2014 the columns that matter, the sort order, the filters that cut through the noise. In 3.15.0, you can capture all of it. Save a named view that remembers your columns, their order and widths, your filters, and your sort \u2014 then share it with a teammate by simply sending them the URL. No more "here\'s how to set up your table" walkthroughs; just send the link.'}),"\n",(0,n.jsxs)(t.h2,{id:"4-proxy-less-artifact-upload--download",children:["4. ",(0,n.jsx)(t.strong,{children:"Proxy-less Artifact Upload & Download"})]}),"\n",(0,n.jsxs)(t.p,{children:["Large artifact transfers no longer have to funnel through the tracking server. Using presigned URLs, MLflow can now talk ",(0,n.jsx)(t.strong,{children:"directly"})," to your cloud storage (e.g. S3), cutting server load and eliminating the timeouts that plagued big-file uploads and downloads. It's faster for you and lighter on your infrastru
1cture \u2014 and if presigned URLs aren't available, MLflow automatically falls back to the proxied transfer path, so existing setups keep working without any changes."]}),"\n",(0,n.jsxs)(t.h2,{id:"5-multimodal-attachments-in-llm-judges",children:["5. ",(0,n.jsx)(t.strong,{children:"Multimodal Attachments in LLM Judges"})]}),"\n",(0,n.jsx)("img",{src:"/img/releases/3.15.0/multimodal-judge.png",width:"100%",style:{display:"block",marginBottom:24}}),"\n",(0,n.jsxs)(t.p,{children:["LLM judges have been great for evaluating text \u2014 but a lot of real-world agents work with images, screenshots, and other visual content. Now your judges can see them too. ",(0,n.jsx)(t.code,{children:"{{ trace }}"})," judges created with ",(0,n.jsx)(t.code,{children:"make_judge()"})," gain a new ",(0,n.jsx)(t.code,{children:"get_span_image"})," tool that fetches image attachments captured in trace spans, encodes them as base64 data URLs, and passes them straight to a multimodal model."]}),"\n",(0,n.jsx)(t.p,{children:"With support for Anthropic, Gemini, and OpenAI-compatible models (vi
1a litellm), you can now write judges that evaluate vision tasks, assess generated or captured screenshots, and reason about any visual content flowing through your traces \u2014 unlocking a whole new class of automated evaluation."}),"\n",(0,n.jsx)(t.h2,{id:"full-changelog",children:"Full Changelog"}),"\n",(0,n.jsxs)(t.p,{children:["For a comprehensive list of changes, see the ",(0,n.jsx)(t.a,{href:"https://github.com/mlflow/mlflow/releases/tag/v3.15.0",children:"release change log"}),"."]}),"\n",(0,n.jsx)(t.h2,{id:"whats-next",children:"What's Next"}),"\n",(0,n.jsx)(t.h3,{id:"get-started",children:"Get Started"}),"\n",(0,n.jsx)(t.p,{children:"Upgrade to try these new features:"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-bash",children:"pip install mlflow==3.15.0\n"})}),"\n",(0,n.jsx)(t.h3,{id:"share-your-feedback",children:"Share Your Feedback"}),"\n",(0,n.jsx)(t.p,{children:"We'd love to hear about your experience with these new features:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.a,{href:"https://github.com/mlflow/mlflow/issues",children:"GitHub Issues"})," - Report bugs or request features"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.a,{href:"https://github.com/mlflow/mlflow/discussions/19855",children:"MLflow Roadmap"})," - See what's coming next and share your ideas"]}),"\n",(0,n.jsxs)(t.li,{children:["\u2B50 ",(0,n.jsx)(t.a,{href:"https://github.com/mlflow/mlflow",children:"Star us on GitHub"})," - Show your support for the project"]}),"\n"]}),"\n",(0,n.jsx)(t.h3,{id:"learn-more",children:"Learn More"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["Check out the ",(0,n.jsx)(t.a,{href:"https://mlflow.org/docs/latest",children:"MLflow documentation"})," for detailed guides"]}),"\n"]}),"\n",(0,n.jsxs)(t.p,{children:["For a comprehensive list of changes, see the ",(0,n.jsx)(t.a,{href:"https://github.com/mlflow/mlflow/releases/tag/v3.15.0",children:"release change log"}),", and check out the latest documentation on ",(0,n.jsx)(t.a,{href:"http://mlflow.org/",children:"mlflow.org"}),"."]})]})}function c(e={}){let{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},84782(e,t,s){s.d(t,{A:()=>a});let a=s.p+"assets/medias/assistant-demo-7b9729ca180442da4c45af5aa0742b96.webm"},28453(e,t,s){s.d(t,{R:()=>l,x:()=>o});var a=s(96540);let n={},r=a.createContext(n);function l(e){let t=a.useContext(r);return a.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:l(e.components),a.createElement(r.Provider,{value:t},e.children)}},37625(e){e.exports=JSON.parse('{"permalink":"/releases/3.15.0","source":"@site/releases/2026-07-31-3.15.0-release.mdx","title":"MLflow 3.15.0 Highlights: MCP Registry, a Smarter Assistant, and Multimodal Judges","de
1scription":"MLflow 3.15.0 is all about making GenAI development faster and more collaborative. This release introduces a centralized MCP Registry for managing Model Context Protocol servers, a significantly upgraded MLflow Assistant with multi-provider support and a friction-free setup, shareable table views for the Runs table, proxy-less artifact transfers for big files, and multimodal LLM judges that can finally see the images in your traces. Here\'s what\'s new.","date":"2026-07-31T00:00:00.000Z","tags":[],"readingTime":3.96,"hasTruncateMarker":false,"authors":[{"name":"MLflow maintainers","title":"MLflow maintainers","url":"https://github.com/mlflow/mlflow.git","imageURL":"https://github.com/mlflow-automation.png","key":"mlflow-maintainers","page":null}],"frontMatter":{"title":"MLflow 3.15.0 Highlights: MCP Registry, a Smarter Assistant, and Multimodal Judges","sidebar_label":"MLflow 3.15.0","slug":"3.15.0","authors":["mlflow-maintainers"]},"unlisted":false,"prevItem":{"title":"MLflow 3.16.0 Highlights: Build-Your-Own Trace Views, a Redesigned Trace Explorer, and Span Links","permalink":"/releases/3.16.0"},"nextItem":{"title":"MLflow 3.14.0 Highlights: One-Line Agent Onboarding, Review Queues, Pytest Integration, and the LLM Playground","permalink":"/releases/3.14.0"}}')}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.