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
- Cursor
- Claude
添加到您的 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>"
}
}
}
}
添加到您的 Cursor 配置文件 (.cursor/mcp.json
)
{
"mcpServers": {
"mlflow-mcp": {
"command": "uv",
"args": ["run", "--with", "mlflow>=3.4", "mlflow", "mcp", "run"],
"env": {
"MLFLOW_TRACKING_URI": "<MLFLOW_TRACKING_URI>"
}
}
}
}
添加到您的 Claude .claude/settings.json
{
"mcpServers": {
"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_HOST
和DATABRICKS_TOKEN
)配置身份验证。有关详细的设置说明,请参阅Databricks 身份验证指南。
可用工具
MLflow MCP 服务器提供全面的跟踪管理功能
工具 | 描述 | 关键参数 |
---|---|---|
search_traces | 搜索和过滤实验中的跟踪 | experiment_id 、filter_string 、max_results 、extract_fields |
get_trace | 获取详细的跟踪信息 | trace_id 、extract_fields |
delete_traces | 按 ID 或时间戳删除跟踪 | experiment_id 、trace_ids 、max_timestamp_millis |
set_trace_tag | 向跟踪添加自定义标签 | trace_id 、key 、value |
delete_trace_tag | 从跟踪中删除标签 | trace_id 、key |
log_feedback | 记录评估分数或判断 | trace_id 、name 、value 、source_type 、rationale |
log_expectation | 记录真实标签 | trace_id 、name 、value 、source_type |
get_assessment | 检索评估详细信息 | trace_id 、assessment_id |
update_assessment | 修改现有评估 | trace_id 、assessment_id 、value 、rationale |
delete_assessment | 删除评估 | trace_id 、assessment_id |
字段选择和过滤
MCP 服务器通过 extract_fields
参数支持复杂的字段选择,该参数在 search_traces
和 get_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 跟踪服务器 URLMLFLOW_EXPERIMENT_ID
:默认实验 ID- 云提供商(AWS、Azure、GCP)的身份验证变量
对于 Databricks 环境,请确保您已配置适当的身份验证(个人访问令牌、服务主体等)。