Flux MCP函数部署服务

Flux MCP服务用于在Flux框架中部署和管理函数,适用于高性能计算集群环境。

  • by converged-computing
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 converged-computing/flux-mcp-server

使用说明

flux mcp服务器

🌀 为Flux Framework的MCP工具部署功能的服务

这个图书馆使用 通量mcp

看 设计思维 查看设计概述。

用法

目前预计此服务器将与Flux实例一起部署在集群上。 这意味着您需要flux python(随flux打包,或 pip install flux-python==<version>).

Flux实例

让我们模拟一个flux实例。在终端中执行通量启动:

flux start

得到 FLUX_URI 所以我们可以从另一个终端连接。

echo $FLUX_URI

您可能希望将服务器安装到本地环境中。

pip install -e . --break-system-packages

服务器

为了启动服务器,我们为它提供了一个配置文件,其中包含Flux的函数定义。

无SSL

flux-mcp-server --config ./configs/mcpserver.yaml
# or
python3 -m flux_mcp_server.server --config ./configs/mcpserver.yaml

使用SSL

从ssl开始,生成自签名证书(或生产证书):

mkdir -p ./certs
openssl req -x509 -newkey rsa:4096 -keyout ./certs/key.pem -out ./certs/cert.pem -sha256 -days 365 -nodes -subj '/CN=localhost'

# This adds the equivalent of --ssl-keyfile and --ssl-certfile
flux-mcp-server --config ./configs/mcpserver-ssl.yaml

客户端

接下来,我们可以运行一个测试,该测试将提交一个作业,然后查看事件(已保存到我们的数据库中)。 在另一个终端中,导出 $FLUX_URI 你看到上面了。

export FLUX_URI=local:///tmp/flux-aG87Ma/local-0

现在运行这个小演示。您可以根据服务器的配置选择是否使用SSL。如果您尝试访问 http 在SSL服务器上,它将无法工作。

# With SSL
export SSL_CERT_DIR=$(pwd)/certs
export SSL_CERT_FILE=$(pwd)/certs/cert.pem
python3 ./tests/test_submit_ssl.py

# Without SSL
python3 ./tests/test_submit.py
   ✅ Job ID: 359735320641536
⏳ Waiting for events to propagate to DB...
   found 1 events: {'submit'}
   found 7 events: {'start', 'submit', 'depend', 'alloc', 'priority', 'validate', 'annotations'}
   found 7 events: {'start', 'submit', 'depend', 'alloc', 'priority', 'validate', 'annotations'}
   found 11 events: {'start', 'submit', 'free', 'depend', 'finish', 'alloc', 'priority', 'validate', 'release', 'clean', 'annotations'}

📊 Event Log Analysis:
✅ Success! Recorded 11 events for Job 359735320641536.
   - [SUBMIT]
   - [VALIDATE]
   - [DEPEND]
   - [PRIORITY]
   - [ANNOTATIONS]
   - [ALLOC]
   - [START]
   - [FINISH]
   - [RELEASE]
   - [FREE]
   - [CLEAN]

如果您不小心杀死了服务器(并且端口仍然有效):

kill $(lsof -t -i :8089)

发展

apt-get install -y python3-build
pyproject-build

待办事项

  • [x] Fastmcp端点服务于Flux MCP功能
  • [x] 句柄应接收事件并写入数据库
  • [x] 数据库应该是接口(并且对不同的数据库灵活)
    • SQLAlchemy
  • []Auth也应该是与不同后端的接口
    • 最基本的是“none”,它只使用Flux句柄。
    • 接下来是简单的令牌,应该实现为fastmcp的中间件
    • 然后是OAuth2
    • 然后(自定义)一些传递OAuth2的东西,比如作为Flux用户提交。
  • [x] 示例:用户手动提交作业,可以查询数据库状态
  • []示例:代理提交工作,稍后可以找到状态。
  • [x] 迁移到容器,然后迁移到Flux Operator/KubeKubernetes服务。
  • []CI和自动构建中的测试。

许可证

HPCIC DevTools根据MIT许可证的条款进行分发。 所有新的贡献都必须根据此许可证进行。

看 许可证, 版权,以及 通知 了解详情。

SPDX 许可证标识符: (MIT)

LLNL-CODE-842614