跳到主要内容

MLflow MCP 服务器

信息
  • 此功能尚处于实验阶段,未来版本可能会发生变更。
  • 需要 MLflow 3.4 或更高版本。

MLflow 模型上下文协议 (MCP) 服务器使 AI 应用程序和代码助手能够以编程方式与 MLflow 跟踪进行交互。MCP 是一种开放协议,为 Claude、VS Code 扩展和其他语言模型等 AI 工具提供了一种标准化的方式来访问外部数据源和工具。

MLflow MCP 服务器通过 MCP 协议公开所有 MLflow 跟踪管理操作,使 AI 助手能够

  • 搜索和检索跟踪数据
  • 分析跟踪性能和行为
  • 记录反馈和评估
  • 管理跟踪标签和元数据
  • 删除跟踪和评估

此集成使将 MLflow 跟踪功能轻松集成到 AI 驱动的开发工作流中,从而能够更智能地分析和管理您的 GenAI 应用程序。

先决条件

  • MLflow 版本 3.4 或更高版本
  • 兼容 MCP 的客户端 (VS Code、Cursor、Claude 等)

设置

通过将服务器配置添加到客户端的设置文件中,在您的 MCP 客户端中配置 MLflow MCP 服务器

添加到您的 VS Code 配置文件 (.vscode/mcp.json)

{
"servers": {
"mlflow-mcp": {
"command": "uv",
"args": ["run", "--with", "mlflow>=3.4", "mlflow", "mcp", "run"],
"env": {
"MLFLOW_TRACKING_URI": "<MLFLOW_TRACKING_URI>"
}
}
}
}

<MLFLOW_TRACKING_URI> 替换为您的 MLflow 跟踪服务器 URL

  • 本地服务器https://:5000
  • 远程服务器https://your-mlflow-server.com
  • Databricks:将跟踪 URI 设置为 databricks,并使用环境变量(如 DATABRICKS_HOSTDATABRICKS_TOKEN)配置身份验证。有关详细的设置说明,请参阅Databricks 身份验证指南

可用工具

MLflow MCP 服务器提供全面的跟踪管理功能

工具描述关键参数
search_traces搜索和过滤实验中的跟踪experiment_idfilter_stringmax_resultsextract_fields
get_trace获取详细的跟踪信息trace_idextract_fields
delete_traces按 ID 或时间戳删除跟踪experiment_idtrace_idsmax_timestamp_millis
set_trace_tag向跟踪添加自定义标签trace_idkeyvalue
delete_trace_tag从跟踪中删除标签trace_idkey
log_feedback记录评估分数或判断trace_idnamevaluesource_typerationale
log_expectation记录真实标签trace_idnamevaluesource_type
get_assessment检索评估详细信息trace_idassessment_id
update_assessment修改现有评估trace_idassessment_idvaluerationale
delete_assessment删除评估trace_idassessment_id

字段选择和过滤

MCP 服务器通过 extract_fields 参数支持复杂的字段选择,该参数在 search_tracesget_trace 工具中均可用。此参数接受使用点符号分隔的逗号分隔字段路径,允许您只检索所需的数据,从而减小响应大小并提高性能。extract_fields 参数允许您

  • 从跟踪数据中选择特定字段,而不是检索所有数据
  • 使用通配符 (*) 选择数组或对象中的所有项
  • 在单个请求中组合多个字段路径
  • 对包含点的字段名使用反引号

与工具一起使用的示例

# With search_traces
search_traces(
experiment_id="1",
extract_fields="info.trace_id,info.state,data.spans.*.name",
)

# With get_trace
get_trace(
trace_id="tr-abc123",
extract_fields="info.assessments.*,info.tags.*",
)

常见字段模式

跟踪信息

  • info.trace_id:唯一跟踪标识符
  • info.state:跟踪状态
  • info.execution_duration:总执行时间
  • info.request_preview:截断的请求预览
  • info.response_preview:截断的响应预览

标签和元数据

  • info.tags.*:所有跟踪标签
  • info.tags.mlflow.traceName:跟踪名称
  • info.trace_metadata.*:自定义元数据字段

评估

  • info.assessments.*:所有评估数据
  • info.assessments.*.feedback.value:反馈分数
  • info.assessments.*.source.source_type:评估来源

Span 数据

  • data.spans.*:所有 span 信息
  • data.spans.*.name:Span 操作名称
  • data.spans.*.attributes.mlflow.spanType:Span 类型 (AGENT, TOOL, LLM)

字段选择示例

# Get basic trace info
info.trace_id,info.state,info.execution_duration

# Get all assessments
info.assessments.*

# Get feedback values only
info.assessments.*.feedback.value

# Get span names
data.spans.*.name

# Get trace name (use backticks for dots in field names)
info.tags.`mlflow.traceName`

用例和示例

调试生产问题

使用 MCP 服务器快速识别有问题的跟踪

User: Find all failed traces in experiment 1 from the last hour
Agent: Uses `search_traces` with `filter_string="status='ERROR' AND timestamp_ms > [recent_timestamp]"`

性能分析

分析执行模式和瓶颈

User: Show me the slowest traces in experiment 2 with execution times over 5 seconds
Agent: Uses `search_traces` with `filter_string="execution_time_ms > 5000"` and `order_by="execution_time_ms DESC"`

质量评估工作流

记录和管理跟踪评估

User: Log a relevance score of 0.85 for trace tr-abc123 with rationale about accuracy
Agent: Uses `log_feedback` with appropriate parameters

数据清理

删除旧的或测试的跟踪

User: Delete traces older than 30 days from experiment 1
Agent: Uses `delete_traces` with timestamp-based filtering

环境配置

MCP 服务器遵循标准的 MLflow 环境变量

  • MLFLOW_TRACKING_URI:MLflow 跟踪服务器 URL
  • MLFLOW_EXPERIMENT_ID:默认实验 ID
  • 云提供商(AWS、Azure、GCP)的身份验证变量

对于 Databricks 环境,请确保您已配置适当的身份验证(个人访问令牌、服务主体等)。