flux-mcp
🌀 Agentic MCP tools for Flux Framework
Related Projects
- 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?)
- flux-sched
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)
| File | Size | Uploaded | |
|---|---|---|---|
| flux_mcp-0.0.21.tar.gz | 66.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|