Mercur

Read the code

The full marketplace engine – MIT-licensed, and yours to run. Built on Medusa, so any Node.js developer can clone it, ship it, and extend it.

Own the codeOwn the dataKeep what you build
mercur · terminal

git clone github.com/mercurjs/mercur

Cloning into 'mercur'...

cat SECURITY.md

Report privately · safe harbor · coordinated disclosure

secret-scanning ✓ Dependabot ✓ CodeQL ✓

bun run dev# your infra

api :9000 · admin /dashboard · vendor /seller

Everything a marketplace runs on

Open source · MIT

Mercur Open Source

The complete standalone marketplace engine – MIT-licensed and public. Test it, build on it, or launch a simpler marketplace yourself.

  • MIT-licensed and public
  • Complete standalone marketplace engine
  • See the code, architecture, and quality

Enterprise

Mercur Enterprise

Everything in open source, plus the production layer for a business that's actually operating – payments, compliance, trust, integrations, and support. Full source for licensees.

  • Financial control & settlement
  • Compliance & data residency
  • Trust, security & audit
  • Integrations to your stack
  • Enterprise support & SLA

MIT-licensed, and the core stays MIT.
Fork it, ship it, keep it. No relicense, no rug-pull.

Runs on the stack your team knows

Mercur is a set of Medusa v2 modules and plugins on Node.js and PostgreSQL.

API-first

A REST API across admin, vendor, and storefront scopes, with a typed client.

Event-driven

Workflows with compensation & rollback, links between modules, and subscribers for events.

Headless and modular

Mercur installs over Medusa v2 as a plugin. Your extensions live in your own repo.

Open

The code is on GitHub. Clone the repo and run it locally on Node and Postgres.

Your code
PluginsWidgetsRegistry blocks
Clients
StorefrontAdminVendor3rd-party
API · 3 scopes
/admin/vendor/store
Mercur modules
VendorCommissionPayoutBuyBox
Medusa v2
runtime · workflows · modules
Data
PostgreSQLRedis

What runs in Core

Split carts and per-vendor orders

Rule-based commissions

Vendor payouts through Stripe Connect

Offers, pricing, and per-vendor catalogs

Returns and RMA

Multi-vendor data isolation

Pluggable search (Algolia, Meilisearch)

Extend it without a fork

Add to the engine through a typed API across three scopes, registry blocks you copy into your own repo, a dashboard SDK, events, and custom fields – your changes live in your layer, and upgrades leave them intact.

scopes.http
# Admin, vendor and storefront scopes
GET /admin/sellers
POST /vendor/offers
PATCH /vendor/offers/:id
GET /store/offers?product_id=prod_01H8...

A generated API reference is on the way; today the typed client gives you the contracts.

Works with your coding agents

We publish AI-readable docs and run an MCP server. Your coding tools query the engine directly.

MCP serverAI-readable docsEvent-driven

Inspect the controls yourself

Secret scanning, dependency updates, and a disclosure policy live in the same public repository.

Automated scanning

Secret scanning and dependency updates on the repository.

Static analysis

Code scanning runs on every change.

A disclosure policy

A published security policy and private vulnerability reporting.

MIT, no relicense

Read it, fork it, keep it – the core stays MIT.

SECURITY.md

# Security Policy

Report privately to security@mercurjs.com.

Safe harbor for good-faith research.

Coordinated disclosure – no public report before a fix ships.

Secret scanningDependabotCodeQL
GitHub

Where to get help

When you take it to production

Core runs the marketplace. Running one at scale, under audit, across regions adds a layer – settlement, enforced access, integrations, and support. That layer is Enterprise.

In open sourceEnterprise adds
The 3P marketplace engineA settlement ledger, statements, and exports
Auth and per-vendor isolationSSO, enforced roles, and an audit trail
A self-hostable stackOn-prem delivery and reference architecture
Community supportSLAs and direct access

Start with the code

Clone it, run it locally, and see how it fits together.