Skip to main content

Agentic MCP tools for Flux Framework and HPC

Project description

flux-mcp

🌀 Agentic MCP tools for Flux Framework

PyPI version

img/flux-mcp-small.png

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

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

Testing

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

# 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

flux_mcp-0.0.15.tar.gz (53.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

flux_mcp-0.0.15-py3-none-any.whl (60.2 kB view details)

Uploaded Python 3

File details

Details for the file flux_mcp-0.0.15.tar.gz.

File metadata

  • Download URL: flux_mcp-0.0.15.tar.gz
  • Upload date:
  • Size: 53.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.2

File hashes

Hashes for flux_mcp-0.0.15.tar.gz
Algorithm Hash digest
SHA256 cca95fac7ab9c67a4206567fdbcfc2c7073f3aa28a83db375c40e823cbf891d5
MD5 74c233bbacf0f10df314a3a9838b359a
BLAKE2b-256 e8960e80a79dbf0a1ad75ab4ff858ff0c90c4a1dbd88b33177d18dce5d4072dc

See more details on using hashes here.

File details

Details for the file flux_mcp-0.0.15-py3-none-any.whl.

File metadata

  • Download URL: flux_mcp-0.0.15-py3-none-any.whl
  • Upload date:
  • Size: 60.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.2

File hashes

Hashes for flux_mcp-0.0.15-py3-none-any.whl
Algorithm Hash digest
SHA256 2c8458f34565aaf4addcc124c33cb87ffc81e97062aca56ba1328c71ad47db29
MD5 af059b3b787ca51b94c28f1a5159b40c
BLAKE2b-256 ef25b986040714bade57b04b4d9d9894f8658ba5c28eb1b94a32de65e420e2b0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page