Skip to main content
Glama
hkbu-kennycheng

llama-diffusion-mcp

Llama Diffusion MCP Bridge

A robust, bidirectional Model Context Protocol (MCP) server that allows Large Language Models (like Claude) to seamlessly interact with diffusion-based LLMs (e.g., DiffusionGemma, LLaDA, RND1) via llama-diffusion-cli.

✨ Features

  • Bidirectional Interactive Chat: Spawns and manages a persistent background instance of llama-diffusion-cli to maintain conversation context and avoid reloading heavy GGUF weights on every turn.

  • Graceful Lifecycle Management: Includes tools for the LLM to cleanly terminate (/exit) and restart the background process when you ask to start a new chat session.

  • Zero-Setup Execution: Configured with uv and pyproject.toml so it can be run directly from the repository without manually managing virtual environments.

  • Fully Configurable: Supports all standard llama.cpp diffusion parameters (steps, algorithms, temperature, batch sizing) directly through initialization arguments.


Related MCP server: FLUX MCP Server

🛠️ Prerequisites

  1. Python 3.10+

  2. uv (Recommended package manager)

  3. llama-diffusion-cli: Must be compiled from the llama.cpp repository.


🚀 Quick Start & Installation

uv run --with git+https://github.com/hkbu-kennycheng/llama-diffusion-mcp.git llama-diffusion-mcp -hf unsloth/diffusiongemma-26B-A4B-it-GGUF:Q4_K_M -ngl 99 -n 128000

🔌 Connecting to Claude Desktop

To use this bridge with Claude Desktop (or any other MCP Client), add the server to your configuration file.

Path:

  • Mac: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Example Configuration (LLaDA 8B)

{
  "mcpServers": {
    "llama-diffusion-chat": {
      "command": "uv",
      "args": [
        "run",
        "--with", "git+https://github.com/hkbu-kennycheng/llama-diffusion-mcp.git",
        "llama-diffusion-mcp",
        "-hf", "unsloth/diffusiongemma-26B-A4B-it-GGUF:Q4_K_M",
        "-ngl", "99",
        "-n", "128000"
      ],
      "env": {
        "LLAMA_DIFFUSION_CLI_PATH": "/absolute/path/to/llama.cpp/build/bin/llama-diffusion-cli"
      }
    }
  }
}

Note: Restart Claude Desktop after updating the config.


⚙️ Configuration Options

The MCP server accepts standard llama-diffusion-cli arguments:

Argument

Description

-m, --model

(Required) Path to the GGUF model file.

-i, --interactive

Run in interactive mode (Highly recommended for this bridge).

-c, --ctx-size

Context size.

-ub, --ubatch-size

Maximum sequence length (ubatch size).

--diffusion-steps

Number of diffusion steps (e.g., 256).

--diffusion-algorithm

Algorithm for token selection (0-4).

--temp

Temperature for sampling.

Advanced MCP Settings

Argument

Description

--mcp-prompt-marker

The string the CLI prints when waiting for input (Default: > ). Determines when the server stops reading the stream.

LLAMA_DIFFUSION_CLI_PATH

Environment variable pointing to your CLI executable. Defaults to llama-diffusion-cli if in your system PATH.


🛠️ Exposed MCP Tools

Once connected, your LLM will have access to the following tools:

  1. chat_with_diffusion(prompt: str) Sends a message to the persistently running Diffusion LLM and returns the generated text.

  2. restart_chat_session() Gracefully exits the current chat process using the /exit command and spins up a fresh session. The LLM will use this if you ask it to clear context or start over.

Available Tools

1 tool
generate_diffusion_textA

Generates text using a diffusion-based LLM. This is a one-shot process.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesThe exact prompt or instruction to send to the model.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description mentions it's a one-shot process using a diffusion-based LLM, adding context beyond the name, but does not disclose other behavioral traits like speed or limitations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise with two sentences, no unnecessary words, and front-loads the key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the single parameter, no siblings, and presence of output schema, the description adequately covers the purpose and basic behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description does not add meaning beyond the input schema, which already describes the prompt parameter well. With 100% schema coverage, baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool generates text using a diffusion-based LLM, which is specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool vs alternatives, but the description implies it's for one-shot text generation with a diffusion model.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool updatev0.1.0
    • First observedgenerate_diffusion_text

TDQS

A4.1/5.0

Scored across 1 tool

Disambiguation5/5

With only one tool, there is no ambiguity. An agent can clearly identify the sole purpose of generating diffusion text.

Naming Consistency5/5

Although only one tool exists, its name 'generate_diffusion_text' follows a clear verb_noun pattern, which is consistent and predictable.

Tool Count4/5

A single tool is appropriate for a very narrow scope like one-shot text generation, but it borders on being too thin for a more general-purpose diffusion server.

Completeness5/5

The tool covers the entire stated purpose of generating diffusion-based text. There are no obvious missing operations given the 'one-shot' description.

Maintenance

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers