mqb · mq-bridge

io.github.marcomqPublished by GitHub account marcomqv1.4.0Updated Nov 6, 2026

Move data between 15+ databases, queues and files at high throughput, without it entering context

Overview

AI-generated overview

Local MCP server for mq-bridge that lets an assistant copy and bridge data between databases, queues and files without rows entering its context.

What you can do
  • Move data between databases, queues and files with one-line copy routes, keeping rows out of the model's context
  • Bridge and relay traffic across Kafka, RabbitMQ, NATS, SQS, MQTT, IBM MQ, HTTP, gRPC, ZeroMQ, MongoDB, SQL and filesystem endpoints
  • Apply middleware such as filters, transforms, retries, dead-letter queues, deduplication and rate limiting to a route
  • Resume long-running transfers from a native source position and run drain-then-exit batch jobs
  • Inspect runtime status and metrics for routes running on the machine
When to use it
Useful when an assistant needs to shift or relay bulk data between systems — for example Postgres to a JSONL file, or Kafka to another broker — without paying token cost per row. Also fits teams that already run mq-bridge routes and want an agent to trigger or inspect them.
Requirements
Runs as a local process over stdio; the manifest declares no environment variables, headers or authentication. Install the mq-bridge-app binary (Homebrew, cargo, or the container image) and register it with the agent, for example via its mcp install command. Endpoints need their own connection URLs and credentials, and network access to the brokers and databases involved.
Before you install
Routes read from and write to live databases, queues and files, so a misconfigured copy can overwrite or duplicate data. Connection URLs typically embed credentials such as database passwords; the tool offers config security modes and encryption at rest, but plain configs may hold secrets. Native plugins load shared libraries from the startup configuration, so only trusted plugin paths should be used. The UI layer is described as a working demo rather than production-ready.

Installation

In SourceWeft

  1. Open mqb · mq-bridge in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

mqb · mq-bridge-app

[Linux] [Windows] [macOS] [License] [Docs]

[mq-bridge-app]

crossing streams

mq-bridge-app is a fast, single-command ETL and data-movement tool built in Rust — and, on top of the same engine, a multi-protocol bridge and traffic workbench for messaging.

It ships in three forms that share one engine and one config format: a desktop app (visual workbench), a CLI / server (headless bridge and one-line copy), and a library (embed the engine in Rust, Python, or Node.js). Design a route once, run it anywhere — no rewrite in between.

Supported integration types include Kafka, RabbitMQ (AMQP), NATS, AWS SQS, MQTT, IBM MQ (optional), HTTP, gRPC, ZeroMQ, MongoDB, sqlx (MySQL, MariaDB, PostgreSQL), and filesystem endpoints.

📖 All documentation lives in the documentation book — installation, quick start, tutorials, cookbook, connector reference, CLI, MCP, and performance tuning. This README is only a short overview; the book is the single source of truth.

A quick taste

At its core is a zero-config copy command that moves data between databases, queues, and files in a single line of bash — no YAML, no pipeline definition, no code:

[mqb copy: a CSV file to S3 as zstd-compressed JSONL, a filtered Postgres table to NATS, and a ClickHouse table to Kafka — 1,000,000 rows each, one command per line]

bash
mqb copy \  'postgres://${PGUSER}:${PGPASSWORD}@localhost/db?table=src&sslmode=disable' \  'file://out.jsonl?format=raw' \  --filter 'amount > 100' \  --drain

The scheme selects the endpoint and query parameters configure it, so any source→sink pair (Postgres, MySQL, MariaDB, SQLite, NATS, Redis, MongoDB, files, …) is just one URL each. And it's quick.

Use --resume when the source has a safe native position (for example a Kafka consumer group, MongoDB change-stream cursor, Postgres CDC slot, or an explicitly configured SQL cursor). The legacy --from ... --to ... spelling remains supported.

→ Quick start · Connectors · Performance tuning

The three ways to run it

Test connections and dial in a route in the Postman-inspired UI, export the JSON/YAML, then run that config as a service or from library code. One engine, one config format.

FormWhat it isQuick install
Desktop app (UI)The visual workbench — build/test routes, run request/response traffic, inspect message historybrew install --cask marcomq/tap/mq-bridge
CLI / serverHeadless binary: a one-line copy, a drain-then-exit batch job, or a long-lived bridge (can also serve the same UI in a browser)brew install marcomq/tap/mq-bridge-app
LibraryThe engine embedded in your own code — native Rust, Python, or Node.js bindingscargo add mq-bridge · pip install mq-bridge · npm install mq-bridge

[mq-bridge UI - publishers]

Learn each form in the book: the three ways to run it · the desktop / web UI · CLI commands · MCP server · library bindings.

Install

brew is the quickest path on macOS and Linux:

bash
brew install marcomq/tap/mq-bridge-app         # CLI / serverbrew install --cask marcomq/tap/mq-bridge      # desktop app

On Windows, install the CLI with cargo binstall mq-bridge-app, or download the desktop installer / CLI from the Releases page. Also available via cargo install mq-bridge-app (from source) and the Docker image ghcr.io/marcomq/mq-bridge-app:latest.

→ Every install method and platform (including the IBM MQ build and Docker) is in the Install guide; to compile from source see Building.

Use it from an AI agent

The same binary is an MCP server, so an agent can move data without the rows passing through its context:

bash
mqb mcp install          # register with Claude Code / Claude Desktop / Cursor
  • MCP Registry name: mcp-name: io.github.marcomq/mq-bridge

→ Tools, transports, and the token-cost measurement: MCP server.

Features

  • Multi-protocol bridging — Kafka, IBM MQ, NATS, AMQP (RabbitMQ), MQTT, AWS SQS, gRPC, ZeroMQ, MongoDB, sqlx (MySQL/MariaDB/PostgreSQL), HTTP, and files. Act as an HTTP server and client, with full request-response support.
  • Middleware chains — retries, dead-letter queues, deduplication, rate limiting, buffering, transforms, weak-join correlation, and more, wrapping any endpoint.
  • Built-in web UI — Svelte-based management for publishers, consumers, routes, runtime status, presets, and imports; the same UI the CLI serves in a browser.
  • Native plugins — load an endpoint or middleware this binary never compiled (Pulsar, an in-house transport) from a shared library, via plugins: in the config or --plugin <path>, and use it by name in routes. No special build needed; plugin paths are read only at startup, so adding one means editing the trusted startup configuration and restarting: Native plugins.
  • Observability — structured JSON logging, a Prometheus metrics endpoint, and mqb status for a live table of everything running on the machine.
  • Flexible configuration — hierarchical files (YAML/JSON/TOML) plus environment variables, suited to Container/Kubernetes.
  • Security & storage — config security modes (plain / extracted secrets / encrypted config / persistent encrypted history), encryption at rest, and local-first operation.
  • High performance — Rust + Tokio: low latency, high concurrency, small memory footprint.

Why not just an API client?

mq-bridge-app's UI overlaps with API clients like Postman, Bruno, Insomnia, and Hoppscotch, but its center of gravity is different: message bridging, runtime operation, and long-lived route management rather than just request composition. Exact feature sets vary by product and edition; this captures the difference in emphasis.

Capabilitymq-bridgePostmanBrunoInsomniaHoppscotch
Basic HTTP/API requests✓✓✓✓✓
Scripting—✓✓✓✓
Cookie jarNot yet✓✓✓~
Multipart forms—✓✓✓✓
Hex-level payload debugging✓————
Broker pub/sub workflow✓MQTT——MQTT
Long-lived consumers/routes✓————
Bridge traffic between protocols✓————
Replay messages✓~——~
Local-first workspace✓~✓✓~
Git-friendly config✓~✓✓~
Cloud sync by default—✓—OptionalOptional
AI / agent features—✓—~~
Encrypted config✓~~~~

Use Postman/Bruno when your main job is crafting and sharing API requests; use mq-bridge-app when you need to connect systems, move messages between protocols, inspect live traffic, and manage bridge-style runtime configuration.

Performance

A CSV → JSONL conversion hit 3,134,796 rows/s (mq-bridge 0.4.20) — ~1.5x DuckDB's all-core copy of the same file, on fewer cores and ~18x less memory. The same job through an MCP tool call ran at 3,108,517 rows/s (mq-bridge 1.2.0), level with that session's 3,076,923 rows/s CLI baseline: the MCP interface adds a small fixed request/response cost, not a per-row tax. It costs an agent a flat ~385 tokens regardless of row count, because the rows never enter the model's context.

On a Kafka → file relay using mq-bridge-app's default file format and no transform, the same engine was ~78% faster than Sea Streamer comparing both on the mimalloc allocator (~82% against its default-allocator build); the native file-format caveats are detailed in the linked benchmark documentation.

→ Full numbers, methodology, and knobs: Performance tuning and benches/etl/README.md.

Test on nats / kafka / postgres ....

For testing, docker-compose files are available for supported backends:

bash
docker-compose -f https://raw.githubusercontent.com/marcomq/mq-bridge/main/tests/integration/docker-compose/postgres.yml up

How it's built

mq-bridge-app uses the mq-bridge engine on itself — the management UI is served through the engine's own HTTP-request/response routing, and the UI form is generated from the Rust config schema (no hand-written form code). See How the app is built.

Status

Active development. Originally the reference implementation and testbed for the mq-bridge engine. The UI/Tauri layer is a working demo rather than a reference implementation — test before relying on it in production.

License

mq-bridge-app is dual-licensed under either the MIT license or the Apache License, Version 2.0, at your option. Third-party terms for the CLI and desktop distributions are in THIRD_PARTY_LICENSES.txt.

Source: apps/mq-bridge-app/README.md at commit b72abce

Tools

0
SourceWeft started this package once in an isolated sandbox, without credentials, to list its tools. That failed: the package type cannot run in the sandbox.

Version history

6
  1. v1.4.0LatestNov 6, 2026
  2. v1.3.0Nov 1, 2026
  3. v1.2.1Oct 29, 2026
  4. v1.2.0Oct 25, 2026
  5. v1.1.0Oct 23, 2026
  6. v1.0.3Oct 20, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts