dpdispatcher-mcp-server

dpdispatcher-mcp-server

1

The Dispatcher MCP Server provides a way to manage computational jobs using the dpdispatcher library. It enables language models and MCP clients to submit, track, and manage jobs on local or HPC systems, with support for interactive configuration and stdio transport.

Dispatcher MCP Server

An MCP (Model Context Protocol) server that acts as a wrapper around the dpdispatcher library. It allows language models or other MCP clients to submit and manage computational jobs on local machines or HPC clusters supported by dpdispatcher.

Features

  • Exposes dpdispatcher functionality via standard MCP tools.
  • submit_job: Submits a new computation job.
  • query_status: Checks the status of a submitted job.
  • cancel_job: Attempts to cancel a running or queued job.
  • fetch_result: Retrieves the paths of result files for a completed job.
  • Includes MCP Resources and Prompts to guide interactive job configuration.
  • Supports stdio transport for local integration (e.g., with Cline).

Setup

  1. Prerequisites:

    • Python 3.x
    • dpdispatcher library installed (pip install dpdispatcher)
    • mcp library installed (pip install mcp)
    • anyio library installed (pip install anyio)
  2. Clone/Place Files: Ensure fast_server.py and job_manager.py (and __init__.py) are within a directory (e.g., dispatcher_mcp_server).

  3. Configure dpdispatcher: If submitting to remote HPCs or Bohrium, ensure dpdispatcher itself is correctly configured (e.g., SSH keys, Bohrium credentials).

Running the Server

Navigate to the parent directory containing dispatcher_mcp_server and run:

python dispatcher_mcp_server/fast_server.py

The server will start and listen via stdio.

Integration with MCP Clients (e.g., Cline)

Add the following configuration to your client's MCP settings (e.g., mcp_settings.json for Cline), adjusting paths as necessary:

{
  "mcpServers": {
    "dispatcher-mcp-server": {
      "command": "python",
      "args": [
        "dispatcher_mcp_server/fast_server.py"
      ],
      "cwd": "/path/to/parent/directory/containing/dispatcher_mcp_server",
      "env": {
        "PYTHONPATH": "/path/to/parent/directory/containing/dispatcher_mcp_server"
      },
      "disabled": false
    }
  }
}

Restart the client to load the server.

Usage

Interact with the server using an MCP client. You can directly call tools like submit_job by providing the necessary arguments (machine config, resources config, task details), or use the configure_job prompt to guide an LLM through an interactive configuration process. Helper resources like dpd://examples/machine/{type} are available for context.