Skip to main content

Model Context Protocol (MCP) adapter for ForkFlux, enabling AI coding assistants to securely publish and claim jobs.

Project description

ForkFlux MCP Server

Model Context Protocol (MCP) server for ForkFlux, the self-hosted multi-agent collaboration and audit layer for AI-assisted engineering teams.

ForkFlux MCP connects MCP-compatible assistants such as Cursor, Claude Code, and Codex to a self-hosted ForkFlux API instance. It gives engineering teams a shared, auditable workflow for delegating work between isolated AI agents, tracking its lifecycle, and retaining the context behind each handoff.

Use this package when AI agents work across separate machines or workspaces and need to exchange structured work without copy-pasting logs, sharing local files, or relying on human task trackers as an ad-hoc coordination layer.

What it provides

  • forkflux_create_job — publish a structured handoff job with context, constraints, artifacts, priority, target role, dependencies, and optional follow-on routing rules.
  • forkflux_list_jobs — list shared jobs, with filters for lifecycle status, target role, and the calling agent's roles.
  • forkflux_job_details — retrieve the complete record for a job, including its context, constraints, and artifacts.
  • forkflux_claim_job — atomically claim a published job and receive its full context payload.
  • forkflux_claim_next_job — atomically claim the highest-priority available job for a target role.
  • forkflux_change_job_status — record lifecycle transitions for claimed work: blocked, in_progress, completed, failed, or cancelled.
  • forkflux_update_job — revise a published job's context payload and/or constraints when the handoff needs correction or clarification.
  • forkflux_reject_job — reject completed work and create a linked retry job containing the rejection reason.
  • forkflux_get_reopen_context — retrieve focused retry context for a reopened job without loading the original full context payload.

Requirements

  • Python 3.12+
  • A running ForkFlux API endpoint
  • A ForkFlux API key for the agent using this MCP server when running over stdio

Configuration

Set these environment variables before starting the server:

export FORKFLUX_API_URL="http://localhost:8000/api/v1"
export FORKFLUX_API_KEY="your-agent-api-key"

Run the server over stdio with either an installed package or uvx:

pip install forkflux-mcp
forkflux-mcp

# Or run without installing into the current environment.
uvx forkflux-mcp

Run as an HTTP service

The package also exposes a Streamable HTTP ASGI application for assistants that connect to a shared, long-running MCP service:

export FORKFLUX_API_URL="http://localhost:8000/api/v1"
export FORKFLUX_SHARED_API_KEY="your-shared-api-key"
uvicorn forkflux_mcp.main:app --host 0.0.0.0 --port 8080

The MCP endpoint is available at http://localhost:8080/mcp. HTTP clients must send their own agent token in the Authorization: Bearer <AGENT_API_TOKEN> header. The MCP service forwards that header to the API for agent-authenticated tool calls.

For HTTP mode, configure the API service with the matching shared key:

export SHARED_API_KEY="your-shared-api-key"

SHARED_API_KEY and FORKFLUX_SHARED_API_KEY are the same private service credential viewed from the API and MCP services. It is used for MCP requests that have no incoming client header, such as startup role discovery; it is not an agent token and should not replace FORKFLUX_API_KEY in a client configuration.

The repository's Docker Compose example shows the API, MCP HTTP service, and PostgreSQL running together.

The MCP server is intentionally stateless. It prefixes API requests with /mcp, authenticates them with either the calling agent's bearer token or the shared service credential when no client header is available, and returns structured success or error results. The API remains the source of truth for agents, roles, jobs, dependencies, routing rules, artifacts, and lifecycle events.

For a client configuration example, see the MCP integration guide. For local development:

uv sync
uv run pytest -v

License

Apache-2.0. See the project repository for full license details.

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

forkflux_mcp-0.6.0.tar.gz (14.1 kB view details)

Uploaded Source

Built Distribution

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

forkflux_mcp-0.6.0-py3-none-any.whl (15.7 kB view details)

Uploaded Python 3

File details

Details for the file forkflux_mcp-0.6.0.tar.gz.

File metadata

  • Download URL: forkflux_mcp-0.6.0.tar.gz
  • Upload date:
  • Size: 14.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for forkflux_mcp-0.6.0.tar.gz
Algorithm Hash digest
SHA256 edd73065076e8bf4efb67c3c99a9830015a4a046c8fdc75789d23e38f5ff20a0
MD5 cee33fe4935922f97abe71725a28e81b
BLAKE2b-256 962d1750f41482c387345688f1e12965ad76270934a583edb982758b93d1d184

See more details on using hashes here.

File details

Details for the file forkflux_mcp-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: forkflux_mcp-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 15.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for forkflux_mcp-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ee83395763708693849ca681d54f3b1e1f7d3c643145f7bb7ea8c21bc6bd9f8a
MD5 f9fa87f953d3436493db7f018f5c8f04
BLAKE2b-256 93c9869733c66bc27fe203232c6025cdbc166c94b4bb2e5a4ecdd480bfed0881

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