返回市场
阿帕奇弗林克MCP服务器

阿帕奇弗林克MCP服务器

作者:Ashfaqbs10 星标更新:2025-10-03

项目介绍

Apache Flink MCP Server

这是一个针对Apache Flink的模型上下文协议(MCP)服务器实现,它使AI助手和大型语言模型能够通过自然语言接口与Flink集群进行交互。此服务器提供了全面的工具,用于监控、管理和分析Apache Flink流处理应用程序。

alt text

概述

Apache Flink MCP Server通过提供标准化的MCP接口,弥合了AI助手与Apache Flink集群之间的差距。它允许用户通过对话式AI执行复杂的Flink操作,使得流处理管理更加便捷和直观。

功能

🎯 核心能力

  • 集群监控:获取实时集群信息,包括作业、插槽和TaskManagers
  • 作业管理:列出、监控和分析Flink作业详情和指标
  • 异常追踪:检索并分析作业异常以进行调试
  • 资源管理:监控TaskManager资源和JAR文件部署
  • 指标收集:访问全面的作业和集群指标

🔧 可用工具:

  1. initialize_flink_connection – 连接到Flink REST API
  2. get_connection_status – 检查连接状态
  3. get_cluster_info – 获取Flink集群概览
  4. list_jobs – 列出所有Flink作业及其状态
  5. get_job_details – 通过ID获取详细作业信息
  6. get_job_exceptions – 获取作业级别的异常
  7. get_job_metrics – 获取作业指标
  8. list_taskmanagers – 列出带有资源的TaskManagers
  9. list_jar_files – 列出已上传的JAR文件
  10. send mail – (发送电子邮件通知)

🚀 优势

  • 自然语言界面:使用对话式AI与Flink交互
  • 实时监控:即时了解集群和作业状态
  • 调试支持:轻松访问异常日志和指标
  • 资源优化:监控跨TaskManagers的资源使用情况
  • 开发者生产力:减少在Flink Web UI中导航的时间

安装

先决条件

  • 正在运行且可访问的Apache Flink集群
  • Python 3.8或更高版本
  • 兼容MCP的客户端(如Claude Desktop、Continue等)

客户端配置

Continue.dev

添加到您的Continue配置文件(Flink-mcp-server.yaml):

name: 示例MCP
version: 0.0.1
schema: v1
mcpServers:
  - name: Flink MCP Server
    type: streamable-http
    url:   http://127.0.0.1:9090/mcp/

使用示例

基本集群监控

Human: 我的Flink集群状态如何?
AI: 我会为您检查Flink集群的状态。
[使用get_cluster_info工具获取集群概览]

作业分析

Human: 显示所有正在运行的作业及其性能指标
AI: 让我获取当前作业及其指标。
[使用list_jobs和get_job_metrics工具]

故障排除

Human: 我的作业ID abc123失败了。你能帮我调试吗?
AI: 我会检查作业abc123的详细信息和任何异常。
[使用get_job_details和get_job_exceptions工具]

资源管理

Human: 我的TaskManager资源是如何被利用的?
AI: 让我检查您的TaskManager状态和资源分配。
[使用list_taskmanagers工具]

API参考

可用的MCP工具

get_cluster_info

描述:获取Flink集群概览,包括作业、插槽和TaskManagers。 参数:无 返回值:包含资源信息的集群概览

list_jobs

描述:列出所有当前和最近的Flink作业及其状态。 参数:无 返回值:带有状态、开始时间和持续时间的作业列表

get_job_details

描述:获取特定Flink作业的详细信息。 参数

  • job_id (字符串,必需):Flink作业的唯一标识符

list_taskmanagers

描述:列出集群中注册的所有TaskManagers。 参数:无 返回值:带有资源信息的TaskManagers列表

get_job_exceptions

描述:获取指定作业中发生的异常。 参数

  • job_id (字符串,必需):Flink作业的唯一标识符

list_jar_files

描述:列出Flink集群中上传的所有JAR文件。 参数:无 返回值:可用JAR文件列表

get_job_metrics

描述:获取正在运行的Flink作业的选定有用指标。 参数

  • job_id (字符串,必需):Flink作业的唯一标识符

send_mail

描述:从Flink MCP服务器发送电子邮件通知,例如警报、状态更新或报告。

故障排除

常见问题

连接失败

  • 确认Flink集群正在运行且可访问
  • 确保网络连接到Flink JobManager

权限错误

  • 确认启用了Flink REST API
  • 检查是否需要对您的Flink设置进行身份验证

调试模式

启用详细日志记录:

export LOG_LEVEL=DEBUG
python mcp_server.py

贡献

我们欢迎贡献!请遵循以下步骤:

  1. 分叉仓库
  2. 创建功能分支:git checkout -b feature-name
  3. 进行更改并添加测试
  4. 提交更改:git commit -m "添加功能"
  5. 推送到您的分叉:git push origin feature-name
  6. 创建拉取请求

开发指南

  • 遵循PEP 8样式指南
  • 根据需要更新文档
  • 确保向后兼容性

许可证

本项目根据MIT许可证授权。

相关项目

支持

致谢

  • Apache Flink社区,为优秀的流处理框架
  • Model Context Protocol团队,为标准化接口
  • 本项目的贡献者和用户

注意:此MCP服务器默认提供对Flink集群信息的只读访问。对于写入操作,可能需要额外的配置和安全考虑。