Skip to main content

flux-mcp

🌀 Agentic MCP tools for Flux Framework

PyPI version

https://github.com/converged-computing/flux-mcp/raw/main/img/flux-mcp-small.png

  • fractale-mcp: (fractale) MCP orchestration (agents, databases, ui interfaces).
  • hpc-mcp: HPC tools for a larger set of HPC and converged computing use cases.

Usage

These Flux MCP tools can be used via a standalone server, or combined with other tools. Note that along with flux-python (comes packaged with Flux, or pip install flux-python==<version> you can optionally install flux-sched-py for flux-sched functionality.

Server

We provide examples for fastmcp and a vanilla mcp (stdio) setup. Neither requirements are added to the install directly, so it's up to the user (you) to install. Tests are performed with fastmcp.

fastmcp

You will need fastapi and fastmcp installed.

# fastmcp
pip install fastmcp fastapi
# in the devcontainer
pip install fastmcp fastapi --break-system-packages

To start the demo server:

# Vanilla MCP (with cli)
echo '{"jsonrpc": "2.0", "id": 1, "method": "initialize", "params": {"protocolVersion": "2024-11-05", "capabilities": {}, "clientInfo": {"name": "test", "version": "1.0"}}}' | python3 -m flux_mcp.server | jq

# Initialize and list tools
(echo '{"jsonrpc": "2.0", "id": 1, "method": "initialize", "params": {"protocolVersion": "2024-11-05", "capabilities": {}, "clientInfo": {"name": "manual-test", "version": "1.0"}}}';
 echo '{"jsonrpc": "2.0", "method": "notifications/initialized"}';
 echo '{"jsonrpc": "2.0", "id": 2, "method": "tools/list"}') | python3 -m flux_mcp.server | jq

# FastMCP
python3 -m flux_mcp.server.fastmcp

Docker

We have a provided Dockerfile that builds and includes mcp-server to provide the basic set of Flux endpoints (submit, info, cancel, etc) via the configuration file flux-mcp.yaml. You can tweak that file and build, or just use from our GitHub packages registry.

docker build -t ghcr.io/converged-computing/flux-mcp:latest .
docker run -it -p 8089:8089 ghcr.io/converged-computing/flux-mcp:latest

Testing

You need pytest

pip install pytest --break-system-packages

I will add tools to git as I write tests for them. To test, start the fastmcp server in one terminal:

python3 -m flux_mcp.server.fastmcp

To test flux-sched, ensure libreapi_cli.so is on the LD_LIBRARY_PATH of the server:

export LD_LIBRARY_PATH=/usr/lib/flux/
python3 -m flux_mcp.server.fastmcp

In another terminal, run the test. You'll need to pip install pytest pytest-asyncio

pytest -xs tests/test_flux_validate.py
pytest -xs tests/test_flux_counts.py
pytest -xs tests/test_flux_job_delegation.py
pytest -xs tests/test_flux_job_core.py
pytest -xs tests/test_transformers.py
pytest -xs tests/test_flux_resource.py

# Requires libreapi_cli.so
pytest -xs tests/test_flux_sched.py

# or
pytest -xs tests/test_*.py

Tools

Tools to add:

  • flux
    • flux-sched
      • grow
      • shrink
      • create resource graph
      • match allocate
      • cancel
      • partial-cancel
      • satisfy
    • flux-core
      • submit jobs
      • job info
      • cancel job
      • validator
        • counter
        • batch jobs
        • canonical jobspec
        • json jobspec
    • topology?
    • delegation
    • local flux URI
    • translation (the transformers?)

TODO

  • Add annotated descriptions to all functions for LLM.

License

HPCIC DevTools is distributed under the terms of the MIT license. All new contributions must be made under this license.

See LICENSE, COPYRIGHT, and NOTICE for details.

SPDX-License-Identifier: (MIT)

LLNL-CODE- 842614

Metadata

Release files for flux-mcp 0.0.21

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for flux-mcp 0.0.21
File Size Uploaded
flux_mcp-0.0.21.tar.gz 66.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for flux-mcp 0.0.21
File Interpreter ABI Platform
flux_mcp-0.0.21-py3-none-any.whl Python 3 none any Details

Total release size: 144.8 kB

Release files / flux_mcp-0.0.21.tar.gz

Download URL flux_mcp-0.0.21.tar.gz
Size 66.7 kB
Tags Source
SHA-256 checksum
How to use checksums
11ace09b6e09b44bc92d616fcaadfd65b13e2c48c078a4c8b79eeac68bc02e3e
BLAKE2b-256 checksum
How to use checksums
0ee55b2c056ac14a76254462e437dca751f2b7e88175c45f51eacee9353bba37
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.2

Release files / flux_mcp-0.0.21-py3-none-any.whl

Download URL flux_mcp-0.0.21-py3-none-any.whl
Size 78.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
355ff23fc5375863f5e198731c5363ca0a3d4678fe8054a0fb797457734007b5
BLAKE2b-256 checksum
How to use checksums
e232e06c0cd266599302738c66dcc43700f5361f98f093e862347d202255501d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.2

Release history Release notifications | RSS feed

This release

0.0.21 This release

2 release files

0.0.18

2 release files

0.0.17

2 release files

0.0.16

2 release files

0.0.14

2 release files

0.0.13

2 release files

0.0.12

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page